KoMaDo   VISIO SQUARE : VB/VBA  ■ Headline ■ HOME    

VB/VBAトップへ ▼カッ飛び最後 

  pdfファイルへ出力

01: 名前:rumi投稿日:2003/09/17(水) 18:07
「印刷」ダイアログの「ファイルへ出力」コマンドで
Adobe Distillerを使用してpdfファイルを作成できますよね。
これをVBAから行なうことはできないでしょうか。
Visio2002 + Acrobat 5.0を使用しています。
※Visio2000でも行なえるとなおありがたいです。

02: 名前:yoda投稿日:2003/09/17(水) 23:42
自分で確かめた訳ではありませんが
ここがご参考になりそうです。
http://www.terra-intl.com/pdf.html [source] [check]

03: 名前:なか投稿日:2003/09/18(木) 08:38
↑の方法でいけそうです。
但し、Visio2000では駄目そうです。
(理由:ActivePrinterプロパティが2002からしか用意されていないから)

04: 名前:rumi投稿日:2003/09/19(金) 15:31
アドバイスありがとうございます。

Excel VBAでは↑の方法でできたのですが
Visioではできませんでした。
「印刷中」のプログレスは表示されるのですが
その後 保存先選択のダイアログも表示されませんし
ファイルも作成されないのです。

ちなみにこのようなコードを書きました。

Dim objDoc As Visio.Document
Dim objPage As Visio.Page
Dim objTemp As Object
Dim strRet As String

Set objDoc = ThisDocument
Set objPage = ActivePage
objDoc.Printer = "Acrobat Distiller"
Set objTemp = objPage
strRet = objTemp .Print

Distillerの設定は以下のようにしています。
 Distillerへフォントを送信しない … OFF
 AcrobatでPDFを表示 … ON
 PDFファイルの保存先を確認 … ON
 成功したジョブのログファイルを削除 … OFF
 既存のPDFファイルの上書きを確認 … ON

Visio2000ではやはりダメですか…。
ActivePrinterに替わる何かがあればと思ったのですが。

05: 名前:yoda投稿日:2003/09/20(土) 15:12
私の場合、Visio2000ですが、
Acrobatがないので、
redmonとgs8.0の組み合わせで、
rumiさんの場合と少し違いますが、
その組み合わせに使うプリンタを
通常使用する、にしておけば、
VisioHELPのprintメソッドの、
例にあるコード

Dim docObj As Visio.Document
Dim docObjTemp As Object
Dim dummy As String
Set docObj = ActiveDocument
Set docObjTemp = docObj
dummy = docObjTemp.Print

で、PDF出力できますので、
私には、よく分りませんが、
VB6.0か、API で、プリンタの設定を
通常使用に切り替えることが出来れば、
(これはもうVisioの話題ではないのですが)
rumiさんの場合も解決するのでは
ないかと思います。

06: 名前:rumi投稿日:2003/09/24(水) 14:21
yodaさん、ありがとうございます。

お客さんがDistillerを使いたい&ghostを諾としないので
姑息ですがSendKeyを使って
印刷のショートカットキーをVisioに送ることにしました。
根本的な解決にはなっていませんが
そこそこ動作します。(苦笑)

ghostではできるというのがわかりましたので
別の機会に使わせていただこうと思います。

本当にありがとうございました。

07: 名前:rumi投稿日:2003/09/24(水) 14:25
追伸:
プリンタの設定は、仰る通りAPIで行なおうと思います。


VB/VBAトップへ ▲カッ飛び先頭