我在不同的打印机上打印时遇到不同的行为。 在我的打印机上,PDF打印是正确的,但使用“Brother”打印机时,相同的PDF打印为乱码(文件的内容被打印)。如果使用Adobe Reader将相同的PDF文件直接发送到打印机,它也会在兄弟打印机上正确打印。
要打印PDF文件,我使用LoadFromFile函数读取TMemoryStream对象中的内容。指定的docinfo值如下 -
DocInfo.pDocName := pChar('My Document');
DocInfo.pOutput := Nil;
DocInfo.pDatatype := pChar('RAW');
之后使用WritePrinter函数,命令被发送到打印机句柄。
让我觉得兄弟打印机无法读取PDF编码格式。
对此方面的任何帮助表示赞赏。
P.S:我的应用程序在Delphi4中。
答案 0 :(得分:3)
WritePrinter适用于sending raw printer specific data to a printer。
有些打印机了解PDF,有些则不懂。
您应该有一个了解PDF的应用程序将其打印到打印机。
许多应用程序都可以做到这一点,当然最突出的是Adobe Reader。
This answer shows three ways of doing that:Adobe Reader ActiveX,Adobe Reader应用程序,GhostView / GhostPrint。它还引用了其他一些方法。