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