【问题标题】:VB.NET PrintDialog Print to fileVB.NET PrintDialog 打印到文件
【发布时间】:2012-03-12 22:06:22
【问题描述】:

我正在使用 .NET (VB) Graphics 以预定义的格式(如税表)打印/预览报告,效果很好。

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

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

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

TIA 你的时间。

【问题讨论】:

  • 为什么不直接使用PDF打印机呢?喜欢PDFCreatorBullZip
  • 我会考虑使用 PDF 打印机。它们可以在任何 Windows 平台上轻松安装(以编程方式)吗?不幸的是,这两个链接都相当可疑。 PDFCreator 因与 Babylon Toolbar 的集成而受到非常糟糕的评价,并且 BullZip 链接不可用。
  • 对于 PDFCreator 我不能说。几年前因为太重而被拒绝,对于 BullZip,我今天非常满意地使用它。现在测试了链接,效果很好。 “以编程方式安装”?我认为不,您应该在您的应用程序中包含他们的设置并在安装应用程序期间启动或指导您的客户如何安装。如果您在网上搜索“PDF 打印机”,您会找到其他解决方案的链接。
  • 哎呀...现在阅读有关 PDFCreator 及其工具栏的信息...没办法。请忽略我对 PDFCreator 的建议。
  • 谢谢史蒂夫。我会研究 BullZip(有趣的名字)和其他人。将此建议作为答案,我会投赞成票。

标签: .net vb.net pdf printing xps


【解决方案1】:

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

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

【讨论】:

  • 谢谢汉斯。我收到拒绝访问错误,但至少它似乎正在尝试写入文件。您是否知道解决此错误的方法?
  • 传递另一个文件名,我猜。使用 appdata 路径。
  • 写入文件并打开后,XPS 查看器报告无法打开此文档。这是因为它是使用 Graphics 对象编写的吗?
  • 您需要就此提出一个新问题,请务必正确记录。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 2023-04-09
    • 2013-07-31
    • 2013-09-30
    相关资源
    最近更新 更多