- ベストアンサー
VBからPDFファイル自動生成するには
VBから印刷イメージを自動にPDFファイルに変換し指定フォルダに保存するにはどのようにすればよいのでしょうか? いろいろ調べても良くわかりません。 できればサンプルプログラムもあれば幸いです。 現在は、通常使うプリンタにAcrobat PDFWriterを指定し手動でPDFファイルを作っている次第です。 環境としてはWindows2000、VB6.0、Acrobat4.05です。 どんな情報でも結構です。お待ちしております。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
サンプルです。 Option Explicit '開発環境: VB6SP5 Acrobat4.0 '参照設定:Adobe Acrobat 4.0 Type Library ' 参照設定初回設定時は「Acrobat」と表示されています ' 一度チェックをつけ、もう一度参照設定ダイアログを開くと「Adobe Acrobat 4.0 Type Library」になっているはずです。 Sub TEST() Dim acroApp As CAcroApp 'CAcroAppオブジェクト Dim acroPDDoc As CAcroPDDoc 'CAcroPDDocオブジェクト Dim acroExchAVDoc As CAcroAVDoc 'CAcroAVDocオブジェクト Dim blnRtn As Boolean '戻り値 Dim lngAVDocNum As Long 'インスタンス生成 Set acroApp = CreateObject("AcroExch.APP") Set acroPDDoc = CreateObject("AcroExch.PDDoc") Set acroExchAVDoc = CreateObject("AcroExch.AVDoc") 'デバッグ用 acroApp.Show 'ファイルオープン blnRtn = acroExchAVDoc.Open("c:\test.bmp", "") If blnRtn Then MsgBox "オープンエラー" GoTo PGMEND: End If '変換処理中の待機処理 Do While lngAVDocNum = acroApp.GetNumAVDocs DoEvents Loop '変換済みのアクティブPDFファイルオブジェクト取得 Set acroExchAVDoc = acroApp.GetActiveDoc() Set acroPDDoc = acroExchAVDoc.GetPDDoc() 'PDFファイルとしてセーブ blnRtn = acroPDDoc.Save(PDSaveFull Or PDSaveCollectGarbage Or PDSaveLinearized, "c:\test.pdf") If Not blnRtn Then MsgBox "セーブエラー" GoTo PGMEND: End If PGMEND: '閉じる blnRtn = acroExchAVDoc.Close(False) acroApp.Exit '開放 Set acroExchAVDoc = Nothing Set acroPDDoc = Nothing Set acroApp = Nothing End Sub
その他の回答 (1)
- osaosa42
- ベストアンサー率60% (20/33)
ソースが長いので簡単にやり方だけ書きます。 (1)レジストリ(HKEY_CURRENT_USER\SOFTWARE\Adobe\Acrobat PDFWriter\PDFFileName)に作成するPDFファイル名を書き込む (2)ShellExecute(Me.hwnd, "Print", strPath, "", "", 0)で関連付けされたアプリで印刷する。 これで、PDFファイルが作成されるはず・・・。 もし、デフォルトプリンタをPDFにしていない場合、失敗します。
お礼
詳しいサンプルまで頂きまして、大変助かりました。すごいですね!また何かありましたらよろしくお願いいたします。