以编程方式将Power Point演示文稿转换为.net中的PDF

时间:2016-03-11 16:18:41

标签: .net vb.net pdf ms-office powerpoint

经过一番搜索,我仍然没有得到我需要的东西。我尝试使用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)

它仍然会收到错误

1 个答案:

答案 0 :(得分:1)

在尝试使用ExportAsFixedFormat的COM版本后,我认为COM对象中存在错误。我找到了一个可行的解决方案

NULL

我不确定版本兼容性是什么。我有Office 2010。