Adr*_*lie 3 vb.net vba office-interop excel-interop
如何将Excel电子表格导出为 PDF/ A (ISO 19005-1)?
编辑:我要求 PDF/A,而不是普通的旧 PDF 1.5,因为它默认导出。我什至在我原来的问题中强调了A。
我已经可以使用该ExportAsFixedFormat()功能将 Word 和 PowerPoint 文档导出为 PDF/A,因为 Word 和 PowerPoint 功能都有一个可选UseISO19005_1参数,但 Excel 版本非常不同,并且缺少很多参数。
我似乎找不到任何使用 COM Interop导出 PDF/ A 的方法。
这是我用来从 docx 导出的代码:
Dim ExportFormat As WdExportFormat = WdExportFormat.wdExportFormatPDF
Dim OpenAfterExport As Boolean = False
Dim OptimizeFor As WdExportOptimizeFor = WdExportOptimizeFor.wdExportOptimizeForPrint
Dim Range As WdExportRange = WdExportRange.wdExportAllDocument
Dim Item As WdExportItem = WdExportItem.wdExportDocumentWithMarkup
Dim IncludeDocProps As Boolean = True
Dim KeepIRM As Boolean = False
Dim CreateBookmarks As WdExportCreateBookmarks = WdExportCreateBookmarks.wdExportCreateWordBookmarks
Dim DocStructureTags As Boolean = True
Dim BitmapMissingFonts As Boolean = True
Dim UseISO19005_1 As Boolean = False
If exportPDFA Then
UseISO19005_1 = True
Dim wordApp As New Word.Application()
Dim doc As Word.Document = wordApp.Documents.Open(FileName)
doc.ExportAsFixedFormat(pathToDestFile, ExportFormat, OpenAfterExport, OptimizeFor, Range, 0, 0, Item, IncludeDocProps, KeepIRM, CreateBookmarks, DocStructureTags, BitmapMissingFonts, UseISO19005_1)
End If
Run Code Online (Sandbox Code Playgroud)
但是对于 xlsx,该ExportAsFixedFormat()函数接受非常不同的参数(这直接取自 Microsoft.Office.Interop.Excel 类):
Sub ExportAsFixedFormat(Type As XlFixedFormatType, Optional Filename As Object = Nothing, Optional Quality As Object = Nothing, Optional IncludeDocProperties As Object = Nothing, Optional IgnorePrintAreas As Object = Nothing, Optional From As Object = Nothing, Optional [To] As Object = Nothing, Optional OpenAfterPublish As Object = Nothing, Optional FixedFormatExtClassPtr As Object = Nothing)
Run Code Online (Sandbox Code Playgroud)
小智 5
Excel 允许用户在保存对话框的选项中选择是否将文件保存为 PDF/A。此设置作为 LastISO19005-1 (REG_DWORD) 存储在注册表中的 HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\FixedFormat 下。(用正确的版本替换 12.0。)ExportAsFixedFormat 函数也遵守此设置。您可以在调用 ExportAsFixedFormat 之前将此值设置为 1,以使 Excel 将文件导出为 PDF/A。
我知道这个解决方案并不漂亮,因为它使用全局状态来解决局部问题。完成后考虑恢复以前的值。
| 归档时间: |
|
| 查看次数: |
3739 次 |
| 最近记录: |