2014-10-04 68 views
0

我的函數需要讀取MS Word文檔,替換某些文本,然後另存爲PDF。 閱讀和保存PDF的效果很好。 但我不知道如何使用Word對象模型替換文本。如何使用Word對象模型以編程方式替換Word文檔中的文本

這是我的word_to_PDF()函數完成的。

Function word_to_PDF(Word_source_filepath, PDF_destin_filepath) 

Dim wordApplication As ApplicationClass = New ApplicationClass() 
Dim wordDocument As Document = Nothing 

Dim paramExportFilePath As String = PDF_destin_filepath 
Dim paramExportFormat As WdExportFormat = _ 
    WdExportFormat.wdExportFormatPDF 
Dim paramOpenAfterExport As Boolean = False 
Dim paramExportOptimizeFor As WdExportOptimizeFor = _ 
    WdExportOptimizeFor.wdExportOptimizeForPrint 
Dim paramExportRange As WdExportRange = _ 
    WdExportRange.wdExportAllDocument 
Dim paramStartPage As Int32 = 0 
Dim paramEndPage As Int32 = 0 
Dim paramExportItem As WdExportItem = _ 
    WdExportItem.wdExportDocumentContent 
Dim paramIncludeDocProps As Boolean = True 
Dim paramKeepIRM As Boolean = True 
Dim paramCreateBookmarks As WdExportCreateBookmarks = _ 
    WdExportCreateBookmarks.wdExportCreateWordBookmarks 
Dim paramDocStructureTags As Boolean = True 
Dim paramBitmapMissingFonts As Boolean = True 
Dim paramUseISO19005_1 As Boolean = False 


    ' Open the source document. 
    On Error Resume Next 
    wordDocument = wordApplication.Documents.Open(Word_source_filepath)  ' Microsoft.Office.Interop.Word.Document 
    If Err.Number Then 
     Debug.WriteLine(Err.Description) 
     log_fault("word_to_PDF:  Err# " & Err.Number & "  " & Err.Description) 
     Stop '!!! 
    Else 
     ' Export it in the specified format. 
     If Not wordDocument Is Nothing Then 

     Dim FindObject As wordDocument.Find = Application.Selection.Find <<<<<<<<<<<<<<< THIS GETS ERROR: "wordDocument.Find is not defined" 
     With FindObject 
      .ClearFormatting() 
      .Text = "find me" 
      .Replacement.ClearFormatting() 
      .Replacement.Text = "Found" 
      .Execute(Replace:=Word.WdReplace.wdReplaceAll) 
     End With 




      wordDocument.ExportAsFixedFormat(paramExportFilePath, _ 
       paramExportFormat, paramOpenAfterExport, _ 
       paramExportOptimizeFor, paramExportRange, paramStartPage, _ 
       paramEndPage, paramExportItem, paramIncludeDocProps, _ 
       paramKeepIRM, paramCreateBookmarks, _ 
       paramDocStructureTags, paramBitmapMissingFonts, _ 
       paramUseISO19005_1) 
     Else 
      '!!! ERR 
      stop_if_debug() 
     End If 
    End If 

    ' Close and release the Document object: 
     If Not wordDocument Is Nothing Then 
      wordDocument.Close(False) 
      wordDocument = Nothing 
     End If 

     ' Quit Word and release the ApplicationClass object. 
     If Not wordApplication Is Nothing Then 
      wordApplication.Quit() 
      wordApplication = Nothing 
     End If 

     GC.Collect() 
     GC.WaitForPendingFinalizers() 
     GC.Collect() 
     GC.WaitForPendingFinalizers() 

Return True 

回答

相關問題