打印机打印尺寸

时间:2010-10-05 13:28:21

标签: delphi delphi-7

如何在不显示对话框的情况下按代码设置打印尺寸(宽度和高度)? 感谢

4 个答案:

答案 0 :(得分:3)

请参阅MSDNGetPrinterSetPrinter文档。您可以在Delphi herehere中找到它们的基本示例。第二个示例具有设置纸张尺寸的特定代码。

答案 1 :(得分:3)

从您的评论到其他答案,您似乎想要选择纸张类型(A4,法律等) - 是吗?

This page表示要选择纸张类型,您需要使用Printer.GetPrinter函数获取打印机的设备句柄,然后使用GlobalLock获取可以访问的指针,强制转换为PDeviceMode。然后有一个PaperSize TDeviceMode成员,指针指向可以是A4,合法等等。

这一切都是通过谷歌发现的。 Scroll to 'Printer Properties' on this page我收到此信息的地方。此页面也提到了changing the tray

元注

顺便说一下,从所有的答案和你的评论 - 例如,一句话:

  

这不是我想要的。谢谢 -   Armin

     

@Armin:也许吧   你应该更清楚地说出你的意思   真的想要。 - Ken White

很明显,您需要学习如何提出明确的问题。当你第一次提出关于SO的问题时,你应该是directed to this page。如果您跳过它,请返回并阅读它。如果你确实阅读了它,你可能会发现这个'Asking better questions'页面也很有用。

这是为了您的利益 - 如果您想要一个解决方案,并且我们假设您这样做是因为您询问了它,那么您可以尽力做到让您的问题变得清晰,非 - 混淆,易于理解,以便他们能够回答。没有人有义务回答 - 我们只是因为我们想要出于任何原因而这样做。不要让它变硬或在路上放置不必要的障碍。

例如,你写了“打印尺寸”和“我的意思(我说的)纸张格式。我想改变它(改变纸张宽度和高度)”。这些可能意味着几件事。边距的大小?分辨率,或更改您打印的单位?如果打印机支持多种选项,纸张类型,即您要打印的纸张的物理尺寸?您需要明确您想要的内容。你可能看起来很清楚,但那是因为你一直在考虑它 - 我们对你的问题的唯一知识就是你所写的,所以你需要在你写的东西中包括我们需要知道的,从头到尾,到了解问题。

答案 2 :(得分:1)

这里有很多......

这是一个有助于确保字体大小正确的小块:

Printer.Canvas.Font.PixelsPerInch:=GetDeviceCaps(Printer.Canvas.Handle,LOGPIXELSY);

答案 3 :(得分:0)

“打印尺寸”究竟是什么意思?如果您的打印机装有不同格式的纸张,您的意思是要选择要打印的纸张类型吗?然后我不知道。

如果您只是想改变边距,这很容易,但取决于您的打印方式。

如果您手动打印(使用Printer.BeginDoc等),那么您只需从边缘进一步绘制priter的画布!如果使用TRichEdit进行打印,则可以更改PageRect属性。