0

C++ アプリケーションは、カップを使用して、XRT の XrtTblVaDrawPS コマンドで生成されたポストスクリプト ファイルを出力します。しかし、2 部印刷し、カップ丁合いオプションを設定すると、ファイルは丁合いどおりに印刷されません。

4

1 に答える 1

0

私たちのプロジェクトは XRT モチーフ ライブラリを使用して、モチーフを使用したテーブル レイアウトからポストスクリプト ファイルを生成します。XrtTblVaDrawPS によって生成されたポストスクリプト ファイルはカップを使用して印刷されましたが、テスト中に複数のコピーを印刷すると、カップの丁合いオプションが機能しないように見えました。Web 検索では、ps ファイルが照合されない理由は何も返されませんでしたが、多くの実験の後、cups が期待どおりに機能しない理由がわかりました。ps ファイルを生成する XrtTblVaDrawPS 呼び出しと、使用されたオプションの 1 つは、Postscript ファイルを印刷するコピー数を設定するための "XRTTBL_PS_NUM_COPIES, 2" でした。cups クラスでは、cupsAddOption("copies", "2",.. および cupsAddOption("Collat​​e", "True", ..) コマンドを実行していました (以下の例を参照)。コマンドは、2 に設定すると Collat​​ing を強制終了していました。オリエンテーション ポストスクリプト/カップの競合と同様に、照合を機能させるには、カップ コピーの値を 1 に設定する必要があります。Postscript ファイルは、たとえば 2 部印刷することを既に認識しています。照合したくない場合は、カップのコピー数を 2 に設定します。Postscript ファイルを別の方法で生成している場合、この問題は発生しない可能性がありますが、XrtTblVaDrawPS 呼び出しを使用している場合は発生します。

pgs = XrtTblVaDrawPS(myTable, fp, XRTTBL_PS_NUM_COPIES, num, <= set to 2 XRTTBL_PS_CELL_RANGE, rng, XRTTBL_PS_COLOR, clr, XRTTBL_PS_ORIENTATION, ornt, XRTTBL_PS_SCALE, FIT_TO_PAGE_HEIGHT, XRTTBL_PS_SHOW_ROW_LABELS, XRTTBL_PS_ALL, XRTTBL_PS_SHOW_FROZEN_ROWS, XRTTBL_PS_ALL, XRTTBL_PS_SHOW_COL_LABELS, XRTTBL_PS_ALL, XRTTBL_PS_SHOW_FROZEN_COLS, XRTTBL_PS_ALL, XRTTBL_PS_PAPERSIZE_WIDTH , media_sz.width, XRTTBL_PS_PAPERSIZE_HEIGHT, media_sz.length, XRTTBL_PS_MARGIN_LEFT, 1.00, XRTTBL_PS_MARGIN_RIGHT, 1.00, XRTTBL_PS_MARGIN_TOP, 0.75, XRTTBL_PS_MARGIN_BOTTOM, 0.75, XRTTBL_PS_HEADER_FONT, "Adobe 10", XRTTBL_PS_HEADER, hdr, XRTTBL_PS_HEADER_MARGIN, 0.55, XRTTBL_PS_FOOTER_FONT, "Adobe 10", XRTTBL_PS_FOOTER 、「ページ番号」、XRTTBL_PS_FOOTER_MARGIN、0.25、NULL);

myNumOptions = cupsAddOption("Collat​​e", "True", myNumOptions, &myOptions); myNumOptions = cupsAddOption("コピー", oss.str().c_str(), myNumOptions, &myOptions);

oss.str().c_str() は「2」で照合に失敗し、(1-1-2-2) を取得します oss.str().c_str() は「1」で照合が機能し、(1- 2-1-2) oss.str().c_str() は "2" で、カップの照合は "False" に設定されています。期待どおり (1-1-2-2) を取得します。

于 2015-06-25T16:55:42.867 に答える