2010-09-15 237 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