0

我正在使用 TD 4.1 编写的 ERP 程序通过 QRP 生成各种发票、运输清单和类似文件。当我的客户只是定期将这些从程序打印到普通打印机时,它们会很好地打印出来。客户还通过 FreePDF XP 将它们打印为 PDF,这发生在打印对话框中(FreePDF XP 被选为打印机)。这会导致部分右侧和页脚被切断。

格式方面,报告使用纸张样式 A4,页边距顶部 = 0.8,底部 = 0.85,左侧 = 0.95,右侧 = 1.0。PDF 打印机也设置为 A4,但没有可用的边距设置。

我在这里抓住了稻草,但是有什么方法可以从报告中或可能以编程方式完成这项工作,或者这纯粹是在打印机驱动程序方面?

哦,遗憾的是,减小这些文件的宽度/高度不是一个选项。

4

2 回答 2

0

可惜你没有使用更新的版本。使用 TD5 和更新版本,您可以使用集成的报表生成器创建 PDF,因此您不需要任何第三方工具。几个想法:

  • SalReportPrintToFile() 并通过电子邮件发送文件。
  • SalPrtSetParmNum( PRT_nMarginTop, nMargin) (即通过 TD 应用程序为 PDF 调整页边距)
  • 为 PDF 提供一个单独的 .qrp,在 qrp 中已经预设了较大的边距。
于 2019-11-05T23:32:56.610 回答
0
  1. 是否也可以在另一台 pdf 打印机上尝试输出?如果可能,请尝试在其他 pdfprinters 上输出,例如 PDF24Creator。
  2. 如果在 4.1 版中可用,请查看 SalReportSetPrinterSettings( ) 函数及其参数。bOk = SalReportSetPrinterSettings (hWndReport, strPrinterName, nOrientation, nPaperType, nWidth, nHeight)

SalReportSetPrinterSettings 函数在运行时设置打印机属性。该函数可以从 SAM_ReportStart 消息的消息动作中调用。在参数中传递无效值会导致该参数被忽略,而将使用默认设置。

3.如果可行可以尝试第三方付费工具,如BullZipPDFPrinter.apt,您可以加入TD。

于 2019-11-07T23:47:50.777 回答