2012-01-10 10 views
-1

単語文書を開き、いくつかのブックマークを編集して新しい.docファイルに保存する短いvbscriptを作成しました。vbscriptをWord文書をpdfに変換する

これをPDFファイルに変換する必要があります。これは、cutePDF(バーチャルプリンタに送信する)のようなものには簡単ですが、その手順を自動化したいと思います。

この手順に必要なvbscriptのアイデアは、誰でも印刷ステップの自動化や別の方法で助けてください。

感謝

デイブ

+0

私は、迅速なGoogle検索は、このhttp://bytescout.com/products/を見つけましたdeveloper/pdfdocscoutsdk/pdfdocscout_example_vbscript.html –

+0

これはコードからpdfを作成するためのものですが、すでに持っているdocという言葉を変換する必要があります。 – Dave

答えて

0

MSによると、あなたが/としてアドオンなしのWord 2010でPDFに保存することができます。 Word 2007にはアドオンが必要です.VBScriptコードについてはhereを参照してください。どちらの場合でも、

objDoc.SaveAs <FullPathToOutputFile>, wdFormatPDF 

のようなものは、「プリンタ」を使わなくてもこのトリックを行う必要があります。

  1. 更新ワード
  2. レコードのVBScript
  3. にPDFプリンタとポートコードに印刷のマクロ:オプションは、(努力/利得比の順に)のWordのバージョンのアンティーク

+0

残念ながら、私は2003という単語を使用していると言及していませんでした。プリンタメソッドでこれを行う方法はありますか? – Dave

1

私はかつてblog article on this matterと書いていました。

Function DocToPdf(docInputFile, pdfOutputFile) 

    Dim fileSystemObject 
    Dim wordApplication 
    Dim wordDocument 
    Dim wordDocuments 
    Dim baseFolder 

    Set fileSystemObject = CreateObject("Scripting.FileSystemObject") 
    Set wordApplication = CreateObject("Word.Application") 
    Set wordDocuments = wordApplication.Documents 

    docInputFile = fileSystemObject.GetAbsolutePathName(docInputFile) 
    baseFolder = fileSystemObject.GetParentFolderName(docInputFile) 

    If Len(pdfOutputFile) = 0 Then 
    pdfOutputFile = fileSystemObject.GetBaseName(docInputFile) + ".pdf" 
    End If 

    If Len(fileSystemObject.GetParentFolderName(pdfOutputFile)) = 0 Then 
    pdfOutputFile = baseFolder + "\" + pdfOutputFile 
    End If 

    ' Disable any potential macros of the word document. 
    wordApplication.WordBasic.DisableAutoMacros 

    Set wordDocument = wordDocuments.Open(docInputFile) 

    ' See http://msdn2.microsoft.com/en-us/library/bb221597.aspx 
    wordDocument.SaveAs pdfOutputFile, wdFormatPDF 

    wordDocument.Close WdDoNotSaveChanges 
    wordApplication.Quit WdDoNotSaveChanges 

    Set wordApplication = Nothing 
    Set fileSystemObject = Nothing 

End Function 

ファイルを閉じることは重要です。これを行うには、Word 2007 with PDFプラグインまたはWord 2010+が必要です。

0

RafaelCreateObject("Word.Application")新しいMSWordプロセスの作成に使用します。私のシステムでは、このコードはワードプロセスを正しく閉じません。 word2pdf.vbsに保存するこのコードは、それはCMDで、このコマンドによって呼び出された場合、このコードが正しい

Const wdExportAllDocument = 0 
Const wdExportOptimizeForPrint = 0 
Const wdExportDocumentContent = 0 
Const wdExportFormatPDF = 17 
Const wdExportCreateHeadingBookmarks = 1 

if Wscript.Arguments.Count > 0 Then 
    ' Get the running instance of MS Word. If Word is not running, Create it 
    On Error Resume Next 
    Set objWord = GetObject(, "Word.Application") 
    If Err <> 0 Then 
     Set objWord = CreateObject("Word.Application") 
    End If 
    On Error GoTo 0 

    Set objFSO = CreateObject("Scripting.FileSystemObject") 
    Set objFile = objFSO.GetFile(WScript.Arguments(0)) 
    Set objDoc = objWord.Documents.Open(WScript.Arguments(0),,TRUE) 

    'Export to PDF using preferred settings 
    pdf = objWord.ActiveDocument.ExportAsFixedFormat(_ 
     WScript.Arguments(1), _ 
     wdExportFormatPDF, False, wdExportOptimizeForPrint, _ 
     wdExportAllDocument,,, _ 
     wdExportDocumentContent, _ 
     False, True, _ 
     wdExportCreateHeadingBookmarks _ 
    ) 

    'Quit MS Word 
    objWord.DisplayAlerts = False 
    objWord.Quit(False) 
    set objWord = nothing 
    set objFSO = nothing 
Else 
    msgbox("You must select a file to convert") 
End If 

に動作しますが、:

wscript word2pdf.vbs input.docx output.pdf 
関連する問題