gpt4 book ai didi

vb.net - 使用 Office.Interop.Excel 将文件另存为 PDF/A

转载 作者:行者123 更新时间:2023-12-04 02:04:44 24 4
gpt4 key购买 nike

如何将 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

但对于 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)

最佳答案

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。

我知道这个解决方案并不完美,因为它使用全局状态来解决局部问题。完成后考虑恢复之前的值。

关于vb.net - 使用 Office.Interop.Excel 将文件另存为 PDF/A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44409918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com