目前,我正在使用pdfcreator将报告转换为pdf格式。由于这必须手动完成,我正在寻找一种解决方案来自动将报告保存为pdf文件。该代码应该在访问2000和更新版本中工作。将报告保存为pdf
回答
我们正在使用Stephen Lebans' ReportToPDF生成PDF文件。
我们使用Access 2003,它适用于A2000,2002和2003(A2007具有开箱即用的PDF支持)。
它由只需要在您的应用程序文件夹或%windir%\system32
文件夹和他们不需要注册两个DLL组成。
我们倾向于使用此解决方案而不是PDF打印机,因为只需复制两个文件比在每台计算机上安装PDF打印机更简单。
我曾经使用过这种方法:http://bytes.com/topic/access/answers/204362-howto-automate-printing-access-reports-pdf-files
这是我用于自动化Microsoft Access的印刷方法 报告为PDF格式,即无人值守,没有恼人的“另存为...”对话框 ,以及 - 更重要的是 - 无需使用Adobe Acrobat等商业程序及其相关API。
该技术使用Ghostscript和重定向端口监视器 - 两个免费的 程序用于创建由Russell Lang免费提供的PDF文档。 实际自动化需要使用FileSystemObject,WScript.Network(Windows脚本主机网络对象)和Access 自动化进行VBA编码。
说明:
1)安装Ghostscript的 - 重定向端口监视器 - - 为PostScript语言及PDF http://www.cs.wisc.edu/~ghost/
2)安装雷德曼解释器重定向特殊的打印机端口的程序(如 Ghostscript) http://www.cs.wisc.edu/~ghost/redmon/
3)设置虚拟PDF打印机使用的Ghostscript和雷德曼 - 这里有两个网页,讲解如何安装上面的 工具: http://masterdev.dyndns.dk/know/freepdf.html http://stat.tamu.edu/~henrik/GSWriter/GSWriter.html
4)配置 - 输出:在 使用的PDF虚拟打印机以下mannter雷德曼打印机端口“程序处理输出” - 新的PDF文件应始终保存到同一文件即 C:\ TEMP \输出.pdf
将此用于“程序参数”设置: @c:\ gs \ pdfconf.txt -sOutputFile = “C:\ TEMP \输出.pdf” -c .setpdfwrite -f -
(注意文字的文件路径,而不是 “%1”)
5)写自己的Visual Basic代码打印报告至pdf ,然后使用FileSystemObject将其复制到您的名称/位置 选择。使用WScript.Network对象将默认打印机 从通常的默认打印机更改为PDF打印机,然后再次返回。
示例代码(访问的Visual Basic):
Sub PrintReportToPDF(strReport as String, _
strOutputPath as String)
Const PDF_PRINTER as String = "PDF Printer"
Const ORIGINAL_PRINTER as String = "\\OFFICE\HP1320"
Const TEMP_PATH as String = "C:\temp\output.pdf"
Dim net as WScript.Network
Dim fso as Scripting.FileSystemObject
Set net = new WScript.Network
net.setDefaultPrinter PDF_PRINTER
DoCmd.OpenReport strReport
Set fso = New Scripting.FileSystemObject
fso.CopyFile TEMP_PATH, strOutputPath, True
fso.DeleteFile TEMP_PATH
Set fso = Nothing
net.setDefaultPrinter ORIGINAL_PRINTER
Set net = Nothing
End Sub
对于上述代码中Access 2000中工作,你必须 引用添加到Microsoft脚本运行时和Windows脚本宿主 对象模型。
我的经验,到目前为止是子程序DoCmd.OpenReport()完成 输出为PDF格式的报告非常快......但是,如果你有一个非常大的 报告输出.pdf可能在那里当FileSystemObject的 去移动/重命名它。因此,您可能需要使用Windows的Sleep()函数。 请参阅< http://support.microsoft.com/kb/q162150/>
编写打印出多个报告的例程作为 练习留给读者。就个人而言,我宁愿将我的报告保存在名为“Settings_Reports”的 表中,而不是将报告名称 硬编码到我的VBA模块中。
其他提示:
使用
DoCmd.SendObject()
自动化的新创建 报告经理发送电子邮件。使用PDF工具包不同的PDF报告合并成一个文件 URL:http://www.accesspdf.com/pdftk 这也可以使用VBA Shell()函数通过
WScript.Shell.Run()
方法自动化的,或在 的VBScript使用VBScript使Excel自动化,就像Excel或Word一样。 请参见下面的Microsoft知识库文章: ACC:使用Microsoft Access作为自动化服务器 http://support.microsoft.com/kb/q147816/
代码片段(VBScript)的:
dim acc
set acc = CreateObject("Access.Application")
with acc
..OpenCurrentDatabase "C:\Reports\Sales.mdb"
' Call the customer subroutine we defined earlier
..Run("PrintReportToPDF", "rptSalesFigures_Monthly", _
"N:\Marketing\Reports\SalesSummary" _
& Year(Date()) & Format(Month(Date()),"00")
[Etc...]
不用说,有很多可以用这种方法来完成。 最好的部分是你不必学习另一个API(其他 比标准的Windows Script Host和Microsoft Scripting Runtime 库,你真的应该知道这些)。最好的是它是完全免费的 !
建立PDF打印机: 下面是安装和配置 虚拟PDF打印机更详细的说明 - 那儿剽窃从: < http://masterdev.dyndns.dk/know/freepdf.html>
安装的Ghostscript到C:\ http://www.ghostscript.com/doc/AFPL/index.htm
创建一个文本文件(c:\ gs \ pdfconf.txt)并添加以下文本:
-Ic:\ GS \ gs8.11 \ lib中; C:\ GS \字体 -sDEVICE = pdfwrite -dNOPAUSE -dSAFER
注意,第一行点的8.11版Ghostscript的。如果 您有不同的版本,或将其安装到不同的 位置,请进行适当的更改。
下载,解压缩,并安装雷德曼(重定向PortMonitor) http://www.cs.wisc.edu/~ghost/redmon/index.htm
- 当你运行setup.exe你只会看到一个消息框。
转到Windows中的“开始”按钮下的“打印机/传真”菜单,然后 添加一台新打印机。
- 打印机的驱动程序必须用于打印机/色彩postscript/ 打印机。我选择于HP Color LaserJet 4550 PS
- 设置打印机端口到RPT1:(重定向端口)
配置端口重定向 港:“C:\ GS \ gs8.11 \ BIN \ gswin32c .EXE “ (更新这一行来反映你的 Ghostscript的版本和位置,如果不同)
参数对这一计划的是: @c:\ GS \ pdfconf.txt -sOutputFile =” %1 “-c .setpdfwrite -f -
输出:“提示输入文件名” 运行“正常运行”
- 尝试打印彩色的东西到这台打印机。如果一切正常 正确,您将被提示输入一个文件名,该文件将保存在 下(不要忘记添加.PDF扩展名)。 ' 希望这可以帮助别人!
- 1. 保存访问报告为PDF/Binary
- 2. 贾斯珀报告保存为PDF
- 3. 使用图表生成报告并将其保存为pdf
- 4. 如何将Extjs4图表图像保存为PDF报告?
- 5. 将报告呈现为pdf
- 6. JSF 2.0打开PDF报告(不保存)
- 7. 将水晶报告保存为图片
- 8. 如何在Codeignitor中打印预设报告并保存为PDF
- 9. 在服务器上保存jasper报告为pdf
- 10. 如何将JIRA报告导出为PDF?
- 11. SQL ServerReporting Services - 将报告导出为PDF
- 12. Delphi - 如何将多个Rave报告保存为一个pdf文件?
- 13. 将PDF保存为文件
- 14. 将Open XML保存为PDF
- 15. 将多页保存为PDF
- 16. 以编程方式将RDLC报告另存为PDF
- 17. 将报告保存到数据库
- 18. 将PDF DataUri保存为pdf with jsPDF
- 19. 使用SQL报告服务密码保护的PDF/Excel报告
- 20. Cognos 10 BI:保存报告
- 21. 使用Python生成报告:将PDF或HTML生成为PDF
- 22. 使用BIRT保存pdf数据库报告
- 23. 生成PDF报告
- 24. SonarQube 6.0 pdf报告
- 25. PDF报告生成
- 26. PDF报告在JMeter
- 27. SSRS仅报告PDF
- 28. 如何将报告Pdf文件保存到我的本地文件夹
- 29. 如何将报告参数保存在SSRS中的导出pdf/excel中
- 30. 执行Access 2007报告并以编程方式将该报告导出为PDF?