如何将MS Access报告另存为PDF / A(PDF ISO 19005的存档版本)

时间:2019-02-07 23:24:09

标签: ms-access pdf access-vba

我的客户要求我将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。

1 个答案:

答案 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

我并没有花费很多时间进行编码,所以如果这行得通,请告诉我,然后我可以对其进行润饰。