0

現在の大学のプロジェクトで特定のラベルプリンター用に何かを印刷しようとすると、このエラーが発生します。

java.awt.print.PrinterException: Paper's imageable width is too small.
    at sun.print.RasterPrinterJob.printPage(Unknown Source)
    at sun.print.RasterPrinterJob.print(Unknown Source)
    at sun.print.RasterPrinterJob.print(Unknown Source)
    at Printer.print(Printer.java:91)
    at Printer.<init>(Printer.java:43)
    at VisitorDBTest.main(VisitorDBTest.java:10)

しかし、その理由はわかりません。私はこの特定のプリンターの正確なラベルコードを持っています、ラベルの幅と高さは正しいです。画像サイズを正確なラベルサイズ(1/72インチ)に設定してから、運が悪かったので小さく設定してみました。このコードは、A4ページで通常のインクジェットに印刷するときに正常に機能します。(異なるPaperオブジェクトとPageFormatオブジェクトを使用して)DYMO 450ラベルプリンターに印刷しようとすると、エラーが発生するだけです。グーグルの結果を見ると、このエラーが発生したのは私だけです。

編集:画像化可能な幅を画面に印刷した後、次の結果が得られます:

Paper imageable width is 196.0
PageFormat imageable width is 151.0
PrinterJob imageable width is -65.0267716535433

私の理解では、PageFormatはPaperから画像化可能な幅を取得し、PrinterJobはPageFormatから画像化可能な幅を取得します。私は明らかにここで何かが欠けています。

4

2 に答える 2

5

私はそれを追加して解決します

    PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();

    aset.add(OrientationRequested.PORTRAIT);
    aset.add(MediaSizeName.INVOICE);


        job.print( aset);
于 2012-12-28T12:53:52.787 に答える
1

Dymo420Pでも同じ問題が発生しました。

画像領域を用紙と同じサイズに設定し、原点を0,0にしてみてください。その後、ページフォーマットPrinterJob.printDialog()で呼び出しPrinterJob.validatePage()ます。適切な画像領域を備えた有効なページフォーマットを返します。

于 2012-09-15T16:47:04.840 に答える