2012-03-12 149 views
1

我正在使用.NET(VB)图形以预定义的格式(如纳税表单)打印/预览报告,这很适用。VB.NET PrintDialog打印到文件

我还希望能够累积一个或多个不同的报告并将它们保存到文件中以便稍后转换为PDF或使用XPS打印驱动程序来打印它们。

当我检查“打印到文件”框(对于常规激光打印机或XPS打印驱动程序),并单击“打印”时,我没有打开文件对话框,因为本文建议我应该(http://www.functionx.com/vcnet/controls/print.htm) 。该操作似乎正常进行,但我不知道在哪里可以找到该文件,如果实际上创建了该文件。

我错过了什么?任何人都可以提供一个积累图形报告和打印或打印到文件的替代方法吗?

TIA为您的时间。

+0

为什么不直接使用PDF打印机?像[PDFCreator](http://sourceforge.net/projects/pdfcreator/)或[BullZip](http://www.bullzip.com/)? – Steve 2012-03-12 23:04:10

+0

我会考虑一个PDF打印机。他们可以轻松地安装(以编程方式)在任何Windows平台上?不幸的是,这两个链接都相当可疑。 PDFCreator对于与Babylon Toolbar进行整合的评价很差,BullZip链接不可用。 – 2012-03-12 23:47:19

+0

对于PDFCreator我不能说。刚刚被拒绝,因为它很沉重,因为我今天非常满意地使用BullZip。现在测试链接并运行良好。 '以编程方式安装'?我认为不,你应该在你的应用程序安装过程中将他们的设置包含在你的内部,或指导你的客户如何安装。如果您在网上搜索'PDF Printer',您可以找到其他解决方案的链接。 – Steve 2012-03-12 23:50:52

回答

1

打印对话框实际上是否与PrintDocument实例关联?这样的代码效果很好:

private void button1_Click(object sender, EventArgs e) { 
     printDocument1.PrinterSettings.PrintToFile = true; 
     printDocument1.PrinterSettings.PrintFileName = @"c:\temp\test.xps"; 
     printDocument1.Print(); 
    } 
+0

感谢汉斯。我得到一个拒绝访问错误,但至少它似乎试图写入一个文件。你碰巧知道这个错误的解决办法吗? – 2012-03-13 00:54:30

+0

通过另一个文件名,我想。使用appdata路径。 – 2012-03-13 01:00:16

+0

写入文件并打开后,XPS Viewer报告无法打开此文档。这是因为它是使用Graphics对象编写的吗? – 2012-03-13 01:05:13

0

为什么不使用PDF打印机?在网络上你会找到许多免费的解决方案。
我更喜欢的是BullZip,但还有其他选择。如果您寻找这种解决方案,请注意死胡同(例如广告软件工具栏或奇怪的许可条款)。
但是,这种情况具有一定的优势,就像您可以将文件夹定义为文档库一样,并且每次打印时,PDF打印机都会记住要在哪里创建PDF文档。