PDF作成の自動化・省力化 [2] (CtrlSaveas.exeをVBから使う)
[1]のプログラム(CtrlSaveas.exe)をVB6から使います。
doc = "PDF化対象ドキュメントファイルパス"
pdf = "出力PDFファイルパス"
dir = "......."
' 印刷前にCtrlSaveas.exeを起動しておく。
ctrlsaveas = ".....\CtrlSaveas.exe "
ctrlsaveas = ctrlsaveas & """" & pdf & """"
ctrlsaveas = ctrlsaveas & " 60" ' タイムアウト
Shell ctrlsaveas ' VB関数
' 印刷実行:事前に"通常使うプリンタ"をPDFプリンタに設定しておく。
ShellExecute 0, "print", doc, vbNullString, dir, SW_HIDE ' Win32 API
---------------------------------------------------------------------------
これで動きました。(PDFプリンタとして"いきなりPDF Professional"と"クセロPDF2"でテスト)
しかしドキュメントの種類と環境によっては問題がありそうです。
エクセルドキュメントならば印刷が終わるまでShellExecuteで止まっていて、ShellExecuteを抜けた時点でPDFが生成されています。
ところが(自分の環境においてですが)テキストドキュメントを上記のコードで印刷する(PDF化する)とテキストエディタMifesの印刷設定ダイアログが表示されるのですが、その時点でShellExecuteを抜けてしまっています。しかしPDFはまだ生成されていません。
ShellExecuteを抜けても印刷の開始と終了とを待たなければPDFファイルを利用(ファイルコピーなど)できないことになります。
そのため「名前を付けて保存」ダイアログを操作するプログラムCtrlSaveas.exeを改良してみます。
« PDF作成の自動化・省力化 [1] (「名前を付けて保存」を外から操作する) | トップページ | PDF作成の自動化・省力化 [3] (「名前を付けて保存」を外から操作するプログラムの改良版) »
「ソフトウエア」カテゴリの記事
- PIC18用Cコンパイラ(PCH)メモ (3) 【const修飾子】(2015.05.10)
- PIC18用Cコンパイラ(PCH)メモ (2) 【関数ポインタ】(2015.05.10)
- PIC18用Cコンパイラ(PCH)メモ (1)(2015.05.06)
- PIC用Cコンパイラを開発元から直接購入(2015.05.04)
- オライリー「JavaScript」(2014.01.16)
« PDF作成の自動化・省力化 [1] (「名前を付けて保存」を外から操作する) | トップページ | PDF作成の自動化・省力化 [3] (「名前を付けて保存」を外から操作するプログラムの改良版) »
コメント