打印到pdf

时间:2009-05-29 10:30:03

标签: .net delphi pdf printing

现有系统有很多报道。使用像dopdf或cutepdf这样的免费pdf打印机,用户可以打开报告,选择pdf打印机,输入文件名并将报告保存为pdf文件。这看起来有点单调乏味

将报告直接保存为pdf文件,只需点击一下按钮即可。 遗憾的是,报告工具组件没有pdf导出功能。 。有没有办法使用第三方组件以编程方式执行此功能。

打印应该是静默的,这样就不会要求用户输入文件名。单击时,将显示一个名为c:\ 1.pdf的文件。 这样的事情 ActivatePdfPrinter(C:\次数1.pdf); printreport; ClosePdfPrinter;

或任何其他方法。

我使用的是delphi,但是如果你建议使用其他编程语言的其他工具,那么我可以搜索正确的方向。

9 个答案:

答案 0 :(得分:8)

免费的开源PDFCreator可以作为虚拟打印机使用,但也可以通过COM使用。默认设置甚至包括COM示例。

您可以在此处检查SourceForge SVN存储库中的COM示例:http://pdfcreator.svn.sourceforge.net/viewvc/pdfcreator/trunk/COM/

Delphi和ActiveX相处得非常好,所以你不应该有太多麻烦。

答案 1 :(得分:1)

安装Adobe Acrobat Professional并选择“Adobe PDF”作为打印机。

答案 2 :(得分:0)

Pragnaan有一个ReportBuilder的PDF导出设备: Report Builder Export Devices

答案 3 :(得分:0)

您没有说明如何生成报告,但Gnostice有许多可能对您有所帮助的工具。

答案 4 :(得分:0)

跟随Stijn Sanders的回复:Digital Metaphors的最新版ReportBuilder现在包括原生PDF导出,以及PDF的“静音”保存以及报告的电子邮件。但是,您是正确的,因为您必须将所有报告转换为ReportBuilder。但是,根据项目中报告的复杂性和数量,可能值得研究。我们从Rave Reports转换了我们,并且从未回头。

答案 5 :(得分:0)

我使用PDFFactory。与其他软件类似的软件是否像虚拟打印机一样工作。 不是很贵。 特殊之处在于您可以控制(使用Windows注册表)一些参数来打印任何文档而无需用户干预。

我在我的Delphi应用程序中使用它。

  1. 选择默认打印机(PDFFactory)
  2. 在注册表项上编写FileName,...
  3. 发送至打印。
  4. 用户不应该写任何内容而不能查看任何配置窗口。

答案 6 :(得分:0)

Anna,你在评论中提到你使用的是旧版本的ReportBuilder - 你看过Waler TExtraDevices组件吗?我没有把它拿到手但我似乎回想起当天我们使用它来从ReportBuilder输出到PDF,并且由于它使ReportBuilder认为它是文本设备的方式,你可以做到这一点,无需任何预览或最终用户的互动。

话虽如此,您正在寻找一种适用于QuickReport和Excel的通用方法。我真的认为你最终会得到某种“PDF打印机”并强制你的报告到这个“命名打印机”。您可以设置PDF Factory,使其从文档标题中获取输出文件名等 - 但我认为无论您如何努力,您总是会有一些用户交互。 : - (

让我们知道你做了什么,因为这是我自己的一个问题,从来没有提供过一个非常令人满意的解决方案。我有兴趣看看你选择做什么!

答案 7 :(得分:0)

Win2PDF还有print to PDF with no user interaction的注册表API。从Delphi,您只需要将“PDFFileName”注册表项设置为PDF文件,然后打印到Win2PDF打印机。

答案 8 :(得分:0)

Win2PDF 10可以完成所有所有这些工作。

检查注册表功能:

https://www.win2pdf.com/doc/registryoverview.html

功能比较表:

https://www.win2pdf.com/features.html#Win2PDF-Product-Comparison

我在家里和在工作的工作站上使用Win2PDF Pro至少已有20年了;并一直发现它可靠且快速。我刚刚下载了最新版本的Service Pack,并且将在下次重新引导时更新我的​​安装。享受。