喫茶XRAYトップページ

[スレッド全体
]

[12615] Re4:Plprevで特殊サイズの用紙返信 削除
2019/3/5 (火) 18:47:25 Noel
▼ Mr.XRAYさん
> こんなところを参考にするとか・・・
>
> [ ユーザ定義用紙の作成と削除]
> http://mrxray.on.coocan.jp/Delphi/plSetPrinter/M_SetUserPaper.htm
>
> [プリントサーバのプロパティで任意サイズの用紙作成]
> http://mrxray.on.coocan.jp/Delphi/plSetPrinter/B_FreeSizePaper.htm
>
> [テストプログラム UserSizePaper]
> http://mrxray.on.coocan.jp/Delphi/plSetPrinter/T_UserSizePaper.htm


いつもご教授ありがとうございます。
プリンター関連は、さっぱりなので、先人の足跡をたどっております。

さて、用紙の追加については、なんとか手動で、プリントサーバーの設定から行えました。

で、いろいろとDelphi-MLの過去ログも読み漁っていたら、NKPrinterを使ってPaperNumberを取得する方法が書いてありました(Delphi-ML:47725からのスレッド)
それをもとに、コードを書いてみて、プレビューの大きさがそれっぽく変わっていることを確認できました。

以下コードですが、テストに使ったものを手打ちで書き込んでいるので、誤字などあるかもしれません。
Delphi環境が、ネットに繋がっていないもので・・・。
Button1をクリックして、ComboBox1で選択すると、用紙のPageNumberが表示されるので、その番号をSetPaperNumberにセットするといけるようです。

間違いがあれば、ご指摘くださいませ。


use NkPrinters;

procedure TForm1.Button1.Click(Sender:TObject);
var
   N: TNkPrinter;
begin
   N := TNkPrinter.Create;
   try
      ComboBox1.Clear;
      ComboBox1.Items.AddStrings(N.PaperSizeNames);
   finally
      N.Free
   end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var
   N : TNkPrinter;
   S1 : String;
begin
   N := TNkPrinter.Create;
   try
      S1 := ComboBox1.Items[ComboBox1.ItemIndex];
      ShowMessage(S1 + ' = ' + IntToStr(N.PaperSizeNumbers[ComboBox1.ItemIndex]));
   finally
      N.Free;
   end;
end;

procedure TForm1.Button2.Click(Sender: TObject);
begin
   // 今回のユーザー定義用紙サイズは102x216mm
   plPrev1.DesignedPaperSize(1020, 2160);   //適宜変更
   plPrev1.plSetPrinter.SetPaperNumber(146);  //適宜変更。ComboBox1で選択した時に表示される番号を入れる

   plPrev1.BeginDoc;
   plPrev1.EndDoc;
   plPrev1.ShowModal;
end;


[12616] Re5:Plprevで特殊サイズの用紙返信 削除
2019/3/5 (火) 19:46:51 Mr.XRAY
> 間違いがあれば、ご指摘くださいませ。

プログラムは,「勝てば官軍,動けば正義」です.ハイ.


[12617] Re6:Plprevで特殊サイズの用紙返信 削除
2019/3/6 (水) 16:34:35 Noel
▼ Mr.XRAYさん
> > 間違いがあれば、ご指摘くださいませ。
>
> プログラムは,「勝てば官軍,動けば正義」です.ハイ.


あ、NkPrinterは、生成&破棄する必要ないですね・・・。
寝ぼけてました・・・。


[12618] Re7:Plprevで特殊サイズの用紙返信 削除
2019/3/6 (水) 17:44:48 Mr.XRAY
> あ、NkPrinterは、生成&破棄する必要ないですね・・・。
> 寝ぼけてました・・・。


あっ,ホントに.
スミマセンね.全くチェックしていませんです.ハハハッ (← 笑ってごまかすな !!)


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82