2010-09-15 183 views
0

我正在编程VB.Net中的Microsoft Word插件,并且我有一个调用函数以将文档另存为PDF(Office 2007)的代码。Word未能将文档保存为PDF

我用了两个功能:

Public Sub SaveLandscape_CallBack(ByVal Control As Office.IRibbonControl) 
    SaveEbook(True) 
End Sub 

而且

Public Sub SaveEbook(ByVal ForceLandscape As Boolean) 
    Try 
     Dim FilePath As String = Globals.ThisAddIn.Application.ActiveDocument.Path & "\" & Globals.ThisAddIn.Application.ActiveDocument.Name & ".ebook.pdf" 
     Try 
      Globals.ThisAddIn.Application.ActiveDocument.ExportAsFixedFormat(OutputFileName:=FilePath, ExportFormat:=Word.WdExportFormat.wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:=Word.WdExportOptimizeFor.wdExportOptimizeForPrint, Range:=Word.WdExportRange.wdExportAllDocument, Item:=Word.WdExportItem.wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:=Word.WdExportCreateBookmarks.wdExportCreateHeadingBookmarks, DocStructureTags:=True, BitmapMissingFonts:=True, UseISO19005_1:=True) 
     Catch ex As Exception 
      MsgBox(ex.ToString) 
     End Try 
    Catch Ex As Exception 
     MsgBox(Ex.ToString) 
    End Try 

我修剪第二个了很多,这就是为什么有这个未使用的参数。
第一个功能与一个功能区按钮相关联。每次我运行它时,ExportAsFixedFormat都会返回一个错误,说明文件正在使用中,无论使用什么名称。

有什么想法?

谢谢,
CFP。

编辑:我发现问题与http://social.msdn.microsoft.com/Forums/en-US/worddev/thread/95c5b101-0d98-49f8-a92b-7b444e61cca8/完全一样。任何想法的人?

+0

您是否检查输出PDF文档未在PDF查看器中打开? – 2010-09-16 19:23:28

+0

我做了,当然:) – 2010-09-17 15:25:45

+0

只是想跟进,看看下面是否回答你的问题。 – 2011-02-18 19:51:03

回答

1

尝试在Globals...行之前放Globals.ThisAddIn.Application.ActiveDocument.Saved = True行。

+0

不,它不工作。实际上,完整的代码会在写入pdf文件之前检查文档是否已保存。 – 2010-09-17 15:26:32

+0

@CFP - 我已经在VBA中复制了你的上面的代码,它没有问题。我现在唯一能想到的就是你可能使用的Service Pack - 你是SP2还是更早的SP?或者根本没有? – 2010-09-18 20:53:57

+0

所以我有我在Windows 7上,没有SP =)你看到我的新链接?这个问题似乎与ISO _...属性有关,并且它不会一直发生...... – 2010-09-18 22:12:20