[WR3.0]指定プリンターでのプレビュー印刷

HOME › フォーラム › 旧サポート掲示板 › [WR3.0]指定プリンターでのプレビュー印刷

  • このトピックは空です。
11件の投稿を表示中 - 1 - 11件目 (全11件中)
  • 投稿者
    投稿
  • #1013
    前迎
    ゲスト

    Delphi5 で WR3 を使用しています
    サンプルプログラム(Sample2)で印刷イメージを表示と
    指定したプリンターで印刷がありますが
    あれこれサンプルを修正して
    指定したプリンターでイメージ表示後印刷を行いたいのですが
    うまくいきません。通常使用するプリンターならイメージ後は印刷できるのですが

    waxPrinter := form1.WR3AXCL1.CreatePrinterform1.cboPrinter.Text);
    を指定しているのですがどうもうまくいきません

    ポイントを教えてください

    #1014
    松嶋@ソフトウィング
    ゲスト

    お世話になっております。

    >指定したプリンターでイメージ表示後印刷を行いたい

    プログラムから指定したプリンターでしょうか?
    CreatePrinterで指定する文字列は、プリンター名です。Win95等
    ではプリンター設定Windows(プリンターの追加等を行う)で表示さ
    れている名称となります。また、レポートに設定されているプリン
    ターを使用する場合は、「CreateReportPrinter」をご使用くだ
    さい。

    以上です。よろしくお願いいたします。

    #1015
    前迎
    ゲスト

    >プログラムから指定したプリンターでしょうか?
    そうです
    御社のサンプルプログラムで
    ボタン式で
    1.通常使うプリンターで印刷
    2.印刷イメージを表示
    3.指定したプリンターで印刷
    とありますが
    印刷イメージを表示そのイメージ画面から
    指定したプリンターに印刷を行いたいのです
    プリンター名はcboPrinter(EnabledをTrueにしました)を取得するようにしました。

    waxPrinter := form1.WR3AXCL1.CreatePrinterform1.cboPrinter.Text);
    がうまく反映されていないようです
    もしくは指定している場所が間違っているんでしょうか

    ちなみに OSはNT4です

    #1016
    松嶋@ソフトウィング
    ゲスト

    お世話になります。

    CreatePrinterのパラメータとして、直接プリンター名を指定した
    場合はいかがでしょうか?

    例)
     EPSON LP-8300

    ※ローカルプリンターの場合です。

    以上です。よろしくお願いいたします。

    #1017
    前迎
    ゲスト

    サンプルの87行目に直接記述してみましたがうまくいきません。
    ちなみに 通常使うプリンターは 他のプリンターになっています。 LP-8200 を通常にした場合は問題なく印刷されます
    プリンターはローカルプリンターです

    try

    {‘●プレビューオブジェクトの設定}
    If nPrintMode = PRTMODE_PREVIEW Then begin
    //以下の1行を追加
    waxPrinter := form1.WR3AXCL1.CreatePrinter(‘EPSON LP-8200’);
    {‘プレビューオブジェクトを作成します}
    prwaxPreview := form1.WR3AXCL1.CreatePreview;
    With prwaxPreview do begin
    {‘プレビューモードを設定します}
    PreviewMode := wrPREVDSPMODE_SINGLE;
    {‘プレビューのタイトルを設定します}

    >※ローカルプリンターの場合です。
    ネットワークプリンターの場合は特別な処理が必要なのでしょうか?

    プリンター名がserver\\prn1の場合同じように記述にすればそのまま出力は可能ですか

    #1018
    松嶋@ソフトウィング
    ゲスト

    お世話になります。

    正常に動作しない件了解いたしました。
    ところで、お話が前後して申し訳ないのですが、CreatePrinter
    でエラーは発生していないのでしょうか?正常に処理が終了して
    印刷が正常に行えないと言うことなのでしょうか?

    大変申し訳有りませんが、よろしくお願いいたします。

    #1019
    前迎
    ゲスト

    >ところで、お話が前後して申し訳ないのですが、CreatePrinter
    >でエラーは発生していないのでしょうか?正常に処理が終了して
    >印刷が正常に行えないと言うことなのでしょうか?

    画面上は特にエラーは出ていません。
    プリントがちゃんと出ないだけです。

    V2から御社のソフトを使用していますが大変重宝しています
    今後ともよろしくお願い申し上げます

    #1020
    松嶋@ソフトウィング
    ゲスト

    お世話になります。

    >プリントがちゃんと出ないだけです。

    何らかの印刷は行われるのでしょうか?全く印刷されないのでしょ
    うか?また、プログラム中で例外処理を行っている様に見受けられ
    るのですが、(tryの部分)例外処理は行われていませんか?
    v3.0(OCX)の場合は、WingReport側ではエラー表示は行われませ
    んので注意してください。

    以上です。よろしくお願いいたします。

    #1021
    前迎
    ゲスト

    >何らかの印刷は行われるのでしょうか?全く印刷されないのでし>ょうか?

    印刷は行われています 文字化けで出てきます
    私の感じたところでは、プリンター指定をしても通常のプリンターで出力しているのではないかなと(CreatePrinterが機能していない)思っています。
    あり得ないプリンターを指定した場合はエラーが出るので完全に機能していないわけでもなさそうですが

    それともプレビューの処理段階で通常のプリンターに戻るような処理が内部的に行われているのか?

    >また、プログラム中で例外処理を行っている様に見受けられるのですが、(tryの部分)例外処理は行われていません?
    >v3.0(OCX)の場合は、WingReport側ではエラー表示は行われませ
    >んので注意してください。

    プログラムのほとんどは(当方の1行以外は)
    御社のサンプルプログラムで行っています
    例外処理は行われていません(エラーは出ていません)
    ソースから実行というように行っていますので例外が発生すればすぐにわかるはずです。
    あり得ないプリンターを指定した場合はエラーが発生します。

    こちらの環境は NT4 SP6 +Delphi5(エンタープライズ版) です。

    #1022
    松嶋@ソフトウィング
    ゲスト

    お世話になります。

    エラーの発生は無く、CreatePrinterも正常に行われているとのこ
    とですので、何故そのような現象となるのか分かりませんが、
    「ShowDlg」メソッドを使用してプリンターを指定した場合の結果
    はいかがでしょうか?

    以上、よろしくお願いいたします。

    #1023
    前迎
    ゲスト

    サンプルプログラムはプレビューの段階で
    プリンターを初期値に戻していることがわかりましたので(462行)
    ここを入れ替えることによりうまくいきました
    463行目に挿入
    ShowDlgで確認しても問題なく切り替わっていました。

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

    procedure TForm1.WR3AXCL1PreviewPrint(Sender: TObject;
    const Preview: IWRPreview; StartPage, EndPage: Integer);

    var
    waxPrinter:WRPrinter;
    nPage:Integer;
    bPrtOpen:Boolean;

    begin

    bPrtOpen:=False;

    try

    {‘プリンターオブジェクトを作成します}
    // waxPrinter := Form1.WR3AXCL1.CreatePrinter;
    //以下を追加
    waxPrinter := form1.WR3AXCL1.CreatePrinter(‘EPSON LP-8200’);
    //チェック用
    if waxPrinter.ShowDlg(form1.handle,wrPRTDLGITEM_DIS_CHANGEPAPER) then
    Showmessage(‘OK’) else Showmessage(‘PrintCancel’);

    bPrtOpen:=True;

    {‘プリンターをオープンします}
    waxPrinter.OpenPrinter(Form1.Handle);

11件の投稿を表示中 - 1 - 11件目 (全11件中)
  • フォーラム「旧サポート掲示板」には新規投稿および返信を追加できません。