请问大家一下,在自定义纸张过程中将pDMode^.DMPAPERWIDTH :=4000,这里的单位是什么?实际纸张又为了多少厘米?

cherrylin 2004-11-12 11:03:34
1.部分内容设置如下:
begin
pdmode:=GlobalLock(hdmode);
//获取指向打印机DevMode 结构的指针
if pdmode<>nil then
try
pdmode^.dmFields:=pdmode^.dmFields or DM_PAPERSIZE;
pdmode^.dmPaperSize:=DMPAPER_LEGAL;
pdmode^.dmFields := pdmode^.dmFields or
DM_PAPERSIZE or
DM_PAPERWIDTH or
DM_PAPERLENGTH ;
pdmode^.dmPaperSize:=DMPAPER_USER;
pdmode^.dmPaperWidth:=2000; //这里的数字单位为什么,实际纸张的大小是多少?
pdmode^.dmPaperLength:=4000;
pdmode^.dmFields:=pdmode^.dmFields or DMBIN_MANUAL;

pdmode^.dmDefaultSource:= DMBIN_MANUAL
finally
GlobalUnlock(hdmode);
end;
2.如用Printer.PageWidth 得到4735,这个数又代表什么?

以上两个问题请各位大哥帮我看一下!谢谢!
...全文
340 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
数字蛋糕 2005-04-04
  • 打赏
  • 举报
回复
要看分辨率的设定。

1cm = 1 / 2.54 inch = 1 * dpi / 2.54 pixel
Wyi23 2005-04-04
  • 打赏
  • 举报
回复
顺便问一下,1CM=??像素啊
cherrylin 2004-11-15
  • 打赏
  • 举报
回复
up!
数字蛋糕 2004-11-15
  • 打赏
  • 举报
回复
就算是同一种纸,不同打印机的有效打印范围都不一样。
sunkevin 2004-11-15
  • 打赏
  • 举报
回复
不同的打印机自定义纸张的大小也不一样。
cherrylin 2004-11-13
  • 打赏
  • 举报
回复
谢谢各位的解释,我自已经理解了,请想请教一个问题:
在打印机属性中发现,自定义纸张大小时,纸张的宽度最大有21.59cm,长度有35.56cm,不同的打印机这个限值是否也不一样?
数字蛋糕 2004-11-12
  • 打赏
  • 举报
回复
Printer.PageWidth和PageHeight是逻辑单位。

你要通过GetDeviceCaps(Printer.Handle, LOGPIXELSX)取得dpi然后换算成实际单位。

简单的来说,你可以把它理解为像素,但是只是对图形而言。在文本输出的时候,你要注意Font.Height与Font.Size的区别。对于同一Size的字体,在不同的dpi下像素高度Height是不同的。

对于更高级的应用,你还必须了解设备单位与逻辑单位的区别和转换以及适用范围(比如Region使用的永远是设备单位)。看看SetWindowExtEx,SetViewportExtEx的系列帮助或者专门的Windows编程书籍吧。
sunkevin 2004-11-12
  • 打赏
  • 举报
回复
在计算机中常用的单位还有Twips,在有些报表中默认的单位就是Twips。具体是Twips还是mm。你可以打印出来测量一下。换算公式是:1 Twip = 1/20 Pointer = 1/1440 Inch = 1/567 mm
ksaiy 2004-11-12
  • 打赏
  • 举报
回复
Printer.PageWidth的单位也是0.01mm
ksaiy 2004-11-12
  • 打赏
  • 举报
回复
pdmode^.dmPaperWidth:=2000;
pdmode^.dmPaperLength:=4000;
这两个值是在你字定义纸张的时候使用,表示纸张的长度与宽度,单位为:0.01mm

Printer.PageWidth则是打印机的纸宽.
jinjazz 2004-11-12
  • 打赏
  • 举报
回复
像素吧

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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