PDF直接印刷でページ数、用紙サイズを設定するには?


サブリナ  2006-11-26 02:58:33  No: 24068

過去ログをみましたがわかりません。
XRAYさんの印刷プレビューコンポーネントのような使い方はできないのでしょうか?

shellexecuteのprintでは直接印刷できましたが、
用紙サイズや、印刷対象のページを設定できませんでした。

shellexecuteでは出来ないのでしょうか?
ご教授くださいm()m


えーとね  2006-11-26 20:01:47  No: 24069

DDE を使用して、Acrobat Reader の印刷ダイアログを起動するというのは、どうでしょう?

var
  Command: array[0..255] of Char;
begin
  DdeClientConv1.ConnectMode := ddeManual;
  if DdeClientConv1.SetLink('acroview', 'control') then
    if DdeClientConv1.OpenLink then
    begin
      StrPCopy(Command,'[FilePrintEx("C:\andy.pdf")]');
      DdeClientConv1.ExecuteMacro(Command, true) then
    end;
end;


Mr.XRAY  URL  2006-11-26 22:40:53  No: 24070

具体的にどのような動作仕様が必要なのかわかりませんが、Acrobatの印刷の
際の印刷のダイアログを表示したい、というのであれば以下の手順でもできます。

[コンポーネントのインストール][ActiveXの取り込み]
[Acrobat Control for ActiveX (Version1.X)]
で[ユニット作成][インストール]を実行します。

[ActiveX]タブに[Pdf(PdfLib_TLB]ができます。

これを新規作成プロジェクト(必ず新規です)のFormに配置します。
WidthとHeightプロパティを1にします(見えないように)。
TButtonを一つ配置します。
TOpenDialogを一つ配置します

以下のコードを実行します。
動作確認は WindowsXP + Delphi7 + Acrobat5.0 です。

procedure TForm1.Button1Click(Sender: TObject);
begin
     with OpenDialog1 do begin
       DefaultExt:='PDF';
       Filter:='PDF|*.PDF';
        Options:=[ofReadOnly];
       if Execute then Pdf1.src:=FileName;
     end;
     if Pdf1.src<>'' then Pdf1.printWithDialog;
end;


サブリナ  2006-11-28 10:01:53  No: 24071

言葉足らずで申し訳ありません。
えーとねさん、XRAYさん、アドバイス有難う御座います。

Delphi6を使用しておりまして、
PDFファイル中の1ページ分だけをまとめて印刷したいと考えています。

できれば印刷ダイアログを出さない形でまとめて印刷がしたいのですが、
shellexecuteでは出来ませんでした。。

ダイアログでその都度Userに判断させない代わりに、
プログラム上で直接指定をして印刷することはできますでしょうか?

#印刷ダイアログのソースを張っていただき有難うございましたm()m


えーとね  2006-11-28 19:03:26  No: 24072

> shellexecuteでは出来ないのでしょうか?
出来ないと思います。
EXE のオプションには、印刷するプリンタの選択しかありません。

用紙サイズ・・・プリンタの設定をAPI で変更。
印刷対象のページ・・・Pdf.ocx のPrintPages メソッド。


サブリナ  2006-11-29 07:03:04  No: 24073

えーとねさんありがとうございます。
shellでは出来ないとのことで了解いたしました。

コンポーネントを用いればダイアログを出さない形で印刷可能なのでしょうか?


Mr.XRAY  URL  2006-11-29 07:36:06  No: 24074

>コンポーネントを用いればダイアログを出さない形で印刷可能なのでしょうか?

とにかく、やってみることです。
やってみなければ先には進めません。


サブリナ  2006-11-29 12:15:52  No: 24075

XRAYさんありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加