Curl Global Community
連続した印刷 - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: 連続した印刷 (/showthread.php?tid=657)



連続した印刷 - umemura - 12-03-2012

Curlで連続した帳票などの印刷を行う際、どのようなコーディングをすべきでしょうか。

仮に、同じ大きさのオブジェクトAとBを、それぞれ高さ200mmとし、
A4縦(高さ290mm想定)で印刷する想定としたときに、
単純にVBoxに入れてprint-graphic に渡してしまうと、AとBの上部が1枚目に表示されてしまい、
かつ、Bの下部が2枚目に印刷されると思います。

これを、1枚目にA、2枚目にBをそれぞれ印刷させるによい方法があれば、
教えてください。



RE: 連続した印刷 - umemura - 12-04-2012

思いついたのは、2通り。

■案1:
A4 での印刷を前提としたのFrame(縦298mm?)を用意し、
それぞれAとBを格納して VBox で縦に並べる。

【デメリット】
印刷ページにオブジェクトがまたがってしまう可能性がある
(大量部数で、大きさに誤差がでるなどした場合)
余白の設定や用紙サイズごとに印刷ページの大きさを制御する必要がある

■案2:
print-graphic をAとBで個別にコールする

【デメリット】
print-graphic のページ設定などが利用できない
印刷ダイアログが複数化表示されないように制御する必要がある
部数の数だけ印刷ジョブが流れる(?)


どちらの案を利用するにせよ、印刷ページ用のレイアウト設計が必要です。
Curlの {page-break} が利用できれば楽そうなんですがね・・・。




RE: 連続した印刷 - fukuta - 12-06-2012

print-graphic の multi-part? と printing-frame で制御できませんか?
print-graphic のAPIリファレンスの最初に出てくる example を見てみてください。


RE: 連続した印刷 - umemura - 12-11-2012

ヘルプに書かれている print-graphic を複数回呼ぶ方法は、ページ番号を自分で振る必要があるという問題以上に、
print-graphic を実行した回数だけ印刷ジョブが流れる(と勝手に私が思っていた)ため、
そうすると、ほぼ同時にAさんとBさんが100枚ぶんの帳票印刷を行った場合に、
AさんとBさんの帳票が混ざって印刷されてしまうてしまう可能性があるという問題があると思っていました。

プリンタのジョブの仕組みを理解していないのが悪いのですが、
print-graphic が実行されても、multi-part? が true として設定されている限りは、
印刷ジョブが次のフレームを待ち続けてくれ、
multi-part?=false で設定したprint-graphic を実行して初めて、
これまでのフレームをまとめて、シーケンスなひとつのジョブだとしてプリンタのキューに投げてくれる、
ということになる・・・という理解で正しいのかしら?

ヘルプはよく読むべきですね。すいません。

あと multi-part?=false で設定した print-graphic を実行しないままにすると、
クライアントの印刷ジョブを占有して、ほかのアプリからの印刷を待たせ続けてしまいそうなので、
気をつけないといけませんね。