3

java を使用した Brother QL-560 でマージンの問題が発生しました。xhtml-printable ソリューションと pdf-renderer ソリューションのいずれかを既にテストしました。

xhtml-printable ソリューションを使用すると、イメージング可能領域の左上隅が x=0 および y=0 に設定されていても、コンテンツは一定量の左マージンと上マージンで印刷されます (PORTRAIT モードと LANDSCAPE モードのいずれか)。 .

結果は次のとおりです。

ここに画像の説明を入力

余白の問題を強調するために、黒い境界線が挿入されています。印刷に使用される Java コードは、この投稿で示したものと同じですが、Java に変換されています。

2 番目の解決策を使用すると、XHTML コードから PDF ファイルを生成する際に問題が発生します。具体的には、最初に iText ライブラリを使用して PDF ファイルを生成し、次に PDF Renderer ライブラリを使用してこのファイルを読み込んで印刷します (PDFPrintPage クラスを介して "print" メソッドを呼び出します)。この場合、生成されたページのサイズが大きすぎて、コンテンツが紙面からはみ出してしまいます。

印刷に使用した完全なコード (XHTML または XHTML) を詳細に説明できますか?

前もって感謝します。

______________ アップデート _________________________

だから、私は設定しました:labelPaper.setImageableArea(+50,+50,paperWidth, paperHeight);。結果は次のとおりです。 ここに画像の説明を入力

どうして???プラスの値を入れました... +50 (x) と +50 (y) ... たぶん、なぜポートレートを使用したのでしょうか? これは私のコードです:

public void print(PrintService service){

        try{
            float paperWidth = 62.0f;
            float paperHeight = 62.0f;
            paperWidth *= 2.83;
            paperHeight *= 2.83;

            //val printJob = PrinterJob.getPrinterJob
            PrinterJob printJob = PrinterJob.getPrinterJob();
            printJob.setPrintService(service);

            PageFormat pageFormat = printJob.defaultPage();
            pageFormat.setOrientation(PageFormat.PORTRAIT);
            Paper labelPaper = pageFormat.getPaper();
            labelPaper.setSize(paperWidth, paperHeight);
            labelPaper.setImageableArea(+50,+50,paperWidth, paperHeight);
            pageFormat.setPaper(labelPaper);

            Book book = new Book();
            book.append(this.createRender(), pageFormat);
            printJob.setPageable(book);

            PrintRequestAttributeSet attributeSet = new HashPrintRequestAttributeSet();
            attributeSet.add(new PrinterResolution(300, 300, ResolutionSyntax.DPI));
            printJob.print(attributeSet);

こちらも少し余裕が・・・なんで?0x & 0y オフセットが必要です。

4

0 に答える 0