- PR -

PDF印刷時に出力先プリンタを指定するには

1
投稿者投稿内容
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2007-12-21 11:05
Visual Studio 2005(C#), Acrobat 8.0を使用して、PDFファイルを印刷する処理を作成しています。

以下のようにしてPDFを印刷しています。

コード:
string path = @"c:\foo.pdf";

CAcroApp application = new AcroAppClass();
CAcroAVDoc document = new AcroAVDocClass();
CAcroPDDoc pd = new AcroPDDocClass();

document.Open(path, "test");
pd = (CAcroPDDoc)document.GetPDDoc();

document.PrintPagesSilent(0, pd.GetNumPages(), 3, 1, 0);

document.Close(1);
application.Exit();


しかし、この場合ですと通常使うプリンタにしか出力できません。

ちなみに、コマンドラインからの印刷の場合、出力先のプリンタは/tオプションで指定できますが
これだとプリンタのデフォルトの用紙サイズで出力されてしまうので、要求仕様に合いません。

コマンドラインからの印刷でも”PDFのページサイズに合わせて用紙を選択”を指定できればいいのですが...

OLE使用で出力先のプリンタを指定する方法をご存知の方はいませんでしょうか?
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2007-12-21 13:03
「c# プリンタ 指定」とかぐぐる。
ハツキタツミ
大ベテラン
会議室デビュー日: 2005/05/24
投稿数: 108
投稿日時: 2007-12-21 13:12
改めて、ググってみましたが参考になる情報がないようです。
kom1
会議室デビュー日: 2004/04/14
投稿数: 9
投稿日時: 2008-05-22 14:58
C#のことは良く分かりませんがVCでは以下のように出来ます。

EnumPrinters等で使えるプリンタを列挙し、その中から
印刷かける前にデフォルトプリンタを目的のプリンタに
変更すれば出来るはずです。

SetDefaultPrinter(Win32API)

印刷が終われば元のプリンタに戻しても良いし。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-05-22 17:28
引用:

ハツキタツミさんの書き込み (2007-12-21 13:12) より:

改めて、ググってみましたが参考になる情報がないようです。


こたえは普通に見つかるようですが、どのページが参考にならなかったのでしょうか。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)