目前,我正在使用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. 使用圖表生成報告並將其保存爲pdf
- 5. 如何將Extjs4圖表圖像保存爲PDF報告?
- 6. 將報告呈現爲pdf
- 7. JSF 2.0打開PDF報告(不保存)
- 8. 將水晶報告保存爲圖片
- 9. 在服務器上保存jasper報告爲pdf
- 10. 如何在Codeignitor中打印預設報告並保存爲PDF
- 11. 將HTML報告轉換爲PDF
- 12. 如何將JIRA報告導出爲PDF?
- 13. SQL ServerReporting Services - 將報告導出爲PDF
- 14. Delphi - 如何將多個Rave報告保存爲一個pdf文件?
- 15. 我可以將訪問2003中的報告/表單保存爲PDF格式嗎?
- 16. 報告pdf庫爲nodejs
- 17. 將PDF保存爲文件
- 18. 將Open XML保存爲PDF
- 19. 使用Reporting Services將SSRS報告另存爲pdf
- 20. 以編程方式將RDLC報告另存爲PDF
- 21. 將報告保存到數據庫
- 22. 將PDF DataUri保存爲pdf with jsPDF
- 23. 使用SQL報告服務密碼保護的PDF/Excel報告
- 24. 保存訪問報告
- 25. Cognos 10 BI:保存報告
- 26. 使用Python生成報告:將PDF或HTML生成爲PDF
- 27. 自動保存/生成報告(PDF)到服務器磁盤
- 28. 使用BIRT保存pdf數據庫報告
- 29. 以PDF格式呈現和保存SSRS報告
- 30. PDF報告生成