C# iTextSharp打印可变长度文档

C# iTextSharp打印可变长度文档,c#,printing,report,itextsharp,C#,Printing,Report,Itextsharp,在尝试了尽可能多的可能性但没有成功的结果后,下面是我关于iTextsharp组件的问题。 我需要创建一个票证,我决定使用iTextSharp库 我在具有固定长度文档的java和.net项目上使用了这个库,没有任何问题,但在本例中,文档是可变长度的。文档的创建非常完美,符合规范。创建PDF后,我使用动词“PrintTo”将其发送到打印机。由于票据的可变长度性质,在打印机上设置固定的纸张长度是不够的,因此我使用以下行指示打印机确定文档大小(根据Manning iText第二版,第140页),但它似乎

在尝试了尽可能多的可能性但没有成功的结果后,下面是我关于iTextsharp组件的问题。 我需要创建一个票证,我决定使用iTextSharp库

我在具有固定长度文档的java和.net项目上使用了这个库,没有任何问题,但在本例中,文档是可变长度的。文档的创建非常完美,符合规范。创建PDF后,我使用动词“PrintTo”将其发送到打印机。由于票据的可变长度性质,在打印机上设置固定的纸张长度是不够的,因此我使用以下行指示打印机确定文档大小(根据Manning iText第二版,第140页),但它似乎无法正常工作

writer.AddViewerPreference(PdfName.PICKTRAYBYPDFSIZE, new PdfBoolean(true));
关于如何将文档发送到打印机,指示打印机将纸张大小调整为文档大小,有何想法


提前感谢,

通过使用
GhostScript
(GHS)和
mswinpr2
作为打印设备,我们能够打印到操作系统(Windows)认可的几乎任何打印机上

要确定纸张尺寸,在调用GHS命令行实用程序(gswin32c)时,需要设置以下参数:

  • dFIXEDMEDIA
  • dDEVICEWIDTHPOINTS=值
  • DDevicheightpoints=值
  • sOutputFile=“%printer%printer\u NAME”