一个有关打印机分辨率的问题!

shxyz 2003-07-04 10:27:38
不同打印机的分辨率不同,如何实现不同分辨率之间的转换,使得在所有打印机上打印出的效果一致呢
...全文
57 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhusa 2003-07-09
  • 打赏
  • 举报
回复
void __fastcall TForm1::GetPrinterScal(HDC hDC,float &fScalX,float &fScalY)
{
// point size
int WidthInPixel,HeightInPixel;
WidthInPixel = GetDeviceCaps(hDC,HORZRES);
HeightInPixel = GetDeviceCaps(hDC,VERTRES);
//mm size
int WidthInMill,HeightInMill;
WidthInMill = GetDeviceCaps(hDC,HORZSIZE);
HeightInMill = GetDeviceCaps(hDC,VERTSIZE);
//scale value
fScalX = ((float)WidthInPixel)/WidthInMill;
fScalY = ((float)HeightInPixel)/HeightInMill;
}
用这个函数取得当前环境的打印机的分辨率
然后设定一个初始的打印机分辨率做为基准

然后在每次的字体环境设置上进行相应的比例换算

参见http://expert.csdn.net/Expert/topic/1888/1888463.xml?temp=.0189783
bluebear88 2003-07-09
  • 打赏
  • 举报
回复
取得打印机分辨率后,转换成实际的长度单位,然后输出到打印机。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧