用html创建的pdf不会水平打印

问题描述 投票:0回答:1

我想将html文档打印为pdf并水平打印,但不能水平打印。

以html创建的文档的大小为51mm x 15mm(宽x高)。

我已经成功地从该html制作了pdf。

但是,当我将此pdf打印到打印机时,它以纵向打印。

如何打印风景?

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="ko">
<head>
<title></title>
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<style>
*{
font-family: NanumBarunGothic;
margin:0 0 0;
}

@page {
    size:  5.1cm 1.5cm; 
    margin: 0 0 0 2mm;
}

/* print */
@media print {
    body {
        margin: 0 0 0;
        ms_positioning: GridLayout;
    }
    .paper {
        page-break-after: always
    }
    .bg_waybill {
        display: none
    }
}
</style>
</head>
<body>
    <table cellpadding="0" style="border-spacing: 0;width: 51mm;height: 15mm;">
        <tbody>
            <tr>
                <td><img src="http://localhost:8088/barcode/123456789012.png" style="width: 5cm; height: 1cm" /></td>
            </tr>
            <tr>
                <td style="line-height: 1; text-align: center; font-size: 8px">(LB8/LB8+)MyTest Uniq BarType-Navi(Silver)</td>
            </tr>
            <tr>
                <td style="text-align: center; font-size: 8px">$ 12.000</td>
            </tr>
        </tbody>
    </table>
</body>
</html>
PDDocument document = makePdf(htmlContent);             
printDocument(this.getBarcodePrinterName(), document, barcodeForm.getCnt());
    private PDDocument makePdf(String htmlContent) {
        ITextRenderer renderer = new ITextRenderer();
        ITextFontResolver ifr =  renderer.getFontResolver();
        try {
            ifr.addFont(serverUrl + "/resources/fonts/NanumBarunGothic.ttf", BaseFont.IDENTITY_H, true);
            ifr.addFont(serverUrl + "/resources/fonts/NanumBarunGothicBold.ttf", BaseFont.IDENTITY_H, true);
            renderer.setDocumentFromString(htmlContent);
            renderer.layout();
            ByteArrayOutputStream os = new ByteArrayOutputStream();
            renderer.createPDF(os);
            renderer.finishPDF();
            os.close();
            PDDocument document = PDDocument.load(os.toByteArray());
            return document;
        } catch (DocumentException | IOException e) {
            logger.error(e.getMessage(), e);
        }
        return null;
    }
private void printDocument(String printerName, PDDocument document, int copies) throws PrinterException {
        PrintService myPrintService = findPrintService(printerName);

        PrinterJob job = PrinterJob.getPrinterJob();
        // job.setPageable(new PDFPageable(document, Orientation.LANDSCAPE));
        job.setPageable(new PDFPageable(document));
        job.setPrintService(myPrintService);
        job.setCopies(copies);
        job.print();
}

这里是创建的PDF文档。https://n.devmon.kr/~chaehoon/bar.pdf

Printer output

java pdf printing html-to-pdf
1个回答
0
投票

您是否绝对确定这不是打印机设置,而不是代码中的某些设置?当我在打印机设置中选择水平方向时,我看到的是水平方向的pdf文件,并且我已经像这样打印了。]

© www.soinside.com 2019 - 2024. All rights reserved.