如何在不显示对话框的情况下按代码设置打印尺寸(宽度和高度)? 感谢
答案 0 :(得分:3)
请参阅MSDN和GetPrinter的SetPrinter文档。您可以在Delphi here和here中找到它们的基本示例。第二个示例具有设置纸张尺寸的特定代码。
答案 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
属性。