2

可能重复:
Delphi:如何在不显示的情况下打印 PDF?

在不同的打印机上打印时遇到不同的行为。在我的打印机上,PDF 打印是正确的,但是对于“Brother”打印机,相同的 PDF 打印为乱码(文件内容被打印)。如果使用 Adob​​e Reader 将相同的 PDF 文件直接发送到打印机,则在兄弟打印机上也可以正确打印。

为了打印 PDF 文件,我使用 LoadFromFile 函数读取了 TMemoryStream 对象中的内容。指定的 docinfo 值如下 -

DocInfo.pDocName := pChar('My Document');
DocInfo.pOutput := Nil;
DocInfo.pDatatype := pChar('RAW');

之后使用 WritePrinter 函数,将命令发送到打印机句柄。

在我看来,好像兄弟打印机无法读取 PDF 编码格式。

感谢您在这方面的任何帮助。

PS:我的应用程序在 Delphi4 中。

4

1 回答 1

3

WritePrinter用于将原始打印机特定数据发送到打印机

有些打印机可以理解 PDF,有些则不能。

您应该有一个可以理解 PDF 的应用程序将其打印到打印机。

许多应用程序都可以做到这一点,最突出的当然是Adob​​e Reader

这个答案显示了三种方法:Adobe Reader ActiveX、Adobe Reader 应用程序、GhostView/GhostPrint。它还引用了其他一些方法。

于 2012-10-07T06:39:43.617 回答