2017-09-14 27 views
2

フォルダ内に複数の.rtf(リッチテキストファイル)をPDFに変換する方法を知りたい場合は、RまたはSASの範囲内にありますか?フォルダ内のrtfファイルをPDFに変換する方法

私は自分のPCにアプリケーションをインストールすることができますので、ソリューションは上記の2つのプログラムの中にある必要があります。

がここに寛大に@Reezaによって提供されたコードに修正されています

bRecursive = False 
sFolder = "C:\PATH" 
Set oFSO = CreateObject("Scripting.FileSystemObject") 
Set oWord = CreateObject("Word.Application") 
oWord.Visible = True 

Set oFolder = oFSO.GetFolder(sFolder) 
ConvertFolder(oFolder) 
oWord.Quit 

Sub ConvertFolder(oFldr) 
    For Each oFile In oFldr.Files 
    If LCase(oFSO.GetExtensionName(oFile.Name)) = "rtf" Then 
     Set oDoc = oWord.Documents.Open(oFile.path) 
     Str = left(oFile,instr(1,oFile,".")-1) 
     oWord.ActiveDocument.SaveAs Str, 17 
     oDoc.Close 
    End If 
Next 

If bRecursive Then 
    For Each oSubfolder In oFldr.Subfolders 
     ConvertFolder oSubfolder 
    Next 
End If 
End Sub 

上記.VBSコードは動作しますが、約10 rtfはそれだけで、残りの開閉を保つpdfドキュメントを行う変換した後、私は、フォルダ内の50個のファイルを持っているし、サークル内のファイル(それは思われます)。どんな手掛かり?ありがとう。

+0

RTF形式は、Microsoft Wordが –

+0

が修正... ...そのリッチテキストファイルをファイルではありません、感謝 – Maximilian

+0

はすでにあなたをしました'pandoc'を見ますか?それは様々なフォーマット(とラテックスを使用してPDF)に変換することができます。 'rmarkdown :: pandoc_convert'はユーティリティが' rmarkdown'パッケージに含まれているので、Rからpandocを呼び出すのに使うことができます – cderv

答えて

2

私はこれをテストし、私のシステムで正常に動作します。 Windows 7のエンタープライズ VBSスクリプトは.vbsとして保存され、SASはXコマンドまたは%SYSEXECを使用して呼び出すことができます。

VBSスクリプトは次のとおりです。

SASで次に
bRecursive = False 
sFolder = "C:\_LOCALDATA\temp\_rtf_test\" 
Set oFSO = CreateObject("Scripting.FileSystemObject") 
Set oWord = CreateObject("Word.Application") 
oWord.Visible = True 

Set oFolder = oFSO.GetFolder(sFolder) 
ConvertFolder(oFolder) 
oWord.Quit 

Sub ConvertFolder(oFldr) 
    For Each oFile In oFldr.Files 
    If LCase(oFSO.GetExtensionName(oFile.Name)) = "rtf" Then 
     Set oDoc = oWord.Documents.Open(oFile.path) 
     Str = left(oFile,instr(1,oFile,".")-1) 
     oWord.ActiveDocument.SaveAs Str & ".pdf", 17 
     oDoc.Close 
    End If 
Next 

If bRecursive Then 
    For Each oSubfolder In oFldr.Subfolders 
     ConvertFolder oSubfolder 
    Next 
End If 
End Sub 

%sysexec "C:\_LOCALdata\SAMPLE.VBS"; 
関連する問題