我有一个简单的WPF应用程序,显示和打印一些报告与FixedDocument。
如何使用免费和开放的解决方案(如iTextSharp )来生成PDF文件?
发布于 2010-08-19 02:58:20
WPF FixedDocument,也称为XPS文档,是对PDF的明显改进。它有很多PDF所缺少的功能。在大多数情况下,最好将文档分发为XPS而不是PDF,但有时有必要从XPS转换为PDF,例如,如果您需要在只支持PDF的设备上打开文档。不幸的是,大多数从XPS到PDF的免费工具,如CutePDF和BullzipPDF,都需要安装打印机驱动程序,或者不是开源的。
一个好的开源解决方案是使用"gxps“工具,它是GhostPDL的一部分。GhostPDL是Ghostscript项目的一部分,并且是在GPL2下获得开源许可的。
将gxps.exe可执行文件作为内容复制到项目中,并从代码中调用它
您的代码可能如下所示:
string pdfPath = ... // Path to place PDF file
string xpsPath = Path.GetTempPath();
using(XpsDocument doc = new XpsDocument(xpsPath, FileAccess.Write))
XpsDocument.CreateXpsDocumentWriter(doc).Write(... content ...);
Process.Start("gxps.exe",
"-sDEVICE=pdfwrite -sOutputFile=" +
pdfPath +
"-dNOPAUSE " +
xpsPath).WaitForExit();
// Now the PDF file is found at pdfPath发布于 2010-08-11 11:54:04
一种简单的方法,它很容易,但可能不是最有效的方法是将固定的文档渲染为图像,然后使用iTextSharp将图像嵌入到PDF中。
我以前成功地用过这种方法。最初,我试图将控制基元(形状)转换为PDF等效项,但事实证明这太难了。
发布于 2010-08-18 08:50:55
如果您可以将其从WPF导入到图像中,则可以将其导入到iTextSharp中,就像本文中所做的那样。如果您将文件系统写入MemoryStream,然后使用该文件系统而不是FileStream,您甚至可以避免所有这些文件系统。
http://www.mikesdotnetting.com/Article/87/iTextSharp-Working-with-images
https://stackoverflow.com/questions/3386147
复制相似问题