複数のWordファイルをPDFに変換してページ指定して印刷する
一つ20MB弱のWordファイルを50いただきました。
サイズが大きすぎるせいか印刷すると一部の画像が真っ黒になります。
よくある話ではあるようで。
http://okwave.jp/qa/q6238331.html
PDFにすることで真っ黒は避けられることがわかりましたがファイル数が多い。
しかも印刷したいのはファイルのごく一部のページのみ。
ということで一旦PDFで保存した上でさらにページ指定を印刷をかけた。
PDFで保存する。
まずPDFで片っ端から保存する。これはVBA。WordVBA。
Sub savePDF() Dim finput, foutput As String Dim i As Integer For i = 1 To 50 finput = "C:\Users\hoge\Desktop\" & i & ".doc" foutput = "C:\Users\hoge\Desktop\" & i & ".pdf" 'ファイルを開く Documents.Open FileName:=finput 'ファイルを保存する ActiveDocument.ExportAsFixedFormat OutputFileName:= foutput, _ ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _ wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _ Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _ CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _ BitmapMissingFonts:=True, UseISO19005_1:=False 'ファイルを閉じる ActiveDocument.Close Next End Sub
PDFをコマンドラインからページ指定して印刷をかける
で、コマンドプロンプトでPDFビューワを立ち上げてページ指定して印刷をかける。
コマンドラインでAcrobatを叩くのはなんだか面倒だったのでPDF-XChange Viewerを使った。
http://www.forest.impress.co.jp/library/software/pdfxchange/
コマンドラインのパラメータはこちらから。
http://help.tracker-software.com/eu/default.aspx?pageid=PDFXView25:command_line_options
なお用紙通りに印刷できない場合は用紙の変倍などプリンタの設定を調整しておくこと。
以下は109ページを指定した場合のコード。
for /l %i in (1,1,50) do "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" /print:pages=109 C:\Users\hoge\Desktop\%i.pdf