经过一番搜索,我仍然没有得到我需要的东西。我尝试使用VB.Net将各种文件转换为PDF,并将各种MS Office组件(如Word / Excel / PowerPoint)引用为COM对象或使用PIA(Office Interop Assemblies)。最后,我想使用COM方法,因为它与版本无关,而且非常重要。
对于Word和Excel,我可以双向工作。但是对于PowerPoint,我遇到了一些问题并希望得到一些建议。
这里有两种方法
COM
Dim appPP As Object = CreateObject("PowerPoint.Application")
Dim docPP As Object = appPP.Presentations.Open(strAttachmentFileName)
'2 is Microsoft.Office.Interop.PowerPoint.PpFixedFormatType.ppFixedFormatTypePDF
docPP.ExportAsFixedFormat(strNewFileName, 2)
docPP.Close()
appPP.Quit()
此方法在导出行中出错 - 类型不匹配。 (HRESULT异常:0x80020005(DISP_E_TYPEMISMATCH))
PIA - 这没关系
Imports Microsoft.Office.Interop
' PowerPoint requires this, to add a reference use COM - MS Office Type Library of same version as interop
Imports Microsoft.Office.Core
Dim appPP As New PowerPoint.Application
Dim docPP As PowerPoint.Presentation = appPP.Presentations.Open(strAttachmentFileName)
docPP.ExportAsFixedFormat(strNewFileName, PowerPoint.PpFixedFormatType.ppFixedFormatTypePDF)
docPP.Close()
appPP.Quit()
修改
同样在COM版本中,我尝试了完全限定版本,包括像这样的PIA和Office Core的引用
docPP.ExportAsFixedFormat(strNewFileName,PowerPoint.PpFixedFormatType.ppFixedFormatTypePDF,PowerPoint.PpFixedFormatIntent.ppFixedFormatIntentScreen,MsoTriState.msoFalse,PowerPoint.PpPrintHandoutOrder.ppPrintHandoutVerticalFirst,PowerPoint.PpPrintOutputType.ppPrintOutputSlides,MsoTriState.msoFalse,没什么,PowerPoint.PpPrintRangeType.ppPrintAll,& #34;",False,False,False,False,False)
它仍然会收到错误
答案 0 :(得分:1)
在尝试使用ExportAsFixedFormat的COM版本后,我认为COM对象中存在错误。我找到了一个可行的解决方案
NULL
我不确定版本兼容性是什么。我有Office 2010。