我的客户要求我将MS-Access报告输出为PDF / A(PDF ISO 19005的存档版本)。我发现2008年有一个旧线程,说可以在Word,Excel,PPT,Publisher,Visio和Infopath中执行此操作,但不能在Access中执行此操作。我希望有人可以进行最近的更新。
当前我的代码是
'output report to pdf
DoCmd.OutputTo acOutputReport, strReportName, acFormatPDF, strPDF, False, , , acExportQualityPrint
非常适合创建普通的PDF。
答案 0 :(得分:0)
这是一个远景,虽然不优雅,但也许可以为您工作:
将报告导出为常规pdf文件,然后通过Word自动化打开文件并将其导出为PDF / A。
在某种程度上,格式在此过程中是混乱的,因此请在访问报告中将其最小化。
Sub ExportPDF_A()
' Set references in VBA IDE to MS Word before executing this code
' Declare object variables
Dim wordApp As New Word.Application
Dim wordDoc As Word.Document
' Declare other variables
Dim strReportName As String
Dim strPDF As String
' Customize variables
strReportName = "TableReport"
strPDF = "E:\Temp\pdfreport.pdf"
'output report to pdf
DoCmd.OutputTo acOutputReport, strReportName, acFormatPDF, strPDF, False, , , acExportQualityPrint
' Temporary set word visible (because there are some confirmation in the next step)
wordApp.Visible = True
' Here are some additional confirmations that you'd have to figure out how to overcome them
Set wordDoc = wordApp.Documents.Open(FileName:=strPDF, Format:="PDF Files", ConfirmConversions:=False)
' Export to the desired format
wordDoc.ExportAsFixedFormat OutputFileName:="E:\Temp\pdfreportPDFA.pdf", ExportFormat:=WdExportFormat.wdExportFormatPDF, OpenAfterExport:=True, UseISO19005_1:=True
End Sub
我并没有花费很多时间进行编码,所以如果这行得通,请告诉我,然后我可以对其进行润饰。