我在打印时遇到了一些困难,当我将报告打印到物理打印机时,文本完全居中,但是当我将相同的报告打印到 PDF 打印机(例如,cutePDF)或 XPS 文档编写器时,左边距变为 0。同时当我尝试调整页边距它在 PDF 和 XPS 中工作正常,但物理打印打印的页面有一些额外的左边距。我无法找出这种差异,我也尝试仅为非物理打印设置边距,但无法做到这一点。
如果可以根据打印机选择设置 marige,那就太好了,例如如果我将选择 PDF 打印机或 XPS 写入器,则边距会更改。我正在使用 Printer.canvas.textout(),打印文本的过程。
任何人都可以帮我解决这个问题。
最佳答案
一些值得强调的点:
TPrinter.Canvas
) POV,有 没有绘图期间的边距等概念:整个纸张大小可用于 Canvas - 例如,X=0 将指向纸张的绝对最左侧部分; GetDeviceCaps
API calls ; 所以这里有一些可能的解决方案:
见 this article关于使用 Delphi 进行一般打印(一些信息是旧的,但大多数仍然是准确的),或正确设置您的报告引擎。
关于delphi - 用delphi打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8062569/