java 设置纸张大小设置_java 用itext设置pdf纸张大小操作

1f76b5a2b45ffb54defe6c81b8358f16.png

做快递面单打印模板,快递要求纸张大小100 x 150mm。

PageSize.A4=595 x 842

A4尺寸=210mm×297mm

故设置纸张大小:

public static final Rectangle EXP = new RectangleReadOnly(283.0F, 425.0F);

补充:解决iText生成pdf文件过大的问题

为iText生成的pdf文件瘦身。

原来生成pdf文件,即使是纯文本内容,无论内容再如何少,文件体积总是在7M多,导致传输速度很慢。经排查,是在pdf生成的时候,选用了第三方中文字体造成的。

原生成PDF代码中,有如下语句:

bfChinese = BaseFont.createFont("c://windows//fonts//SIMFANG.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

这种情况下,iText会将字体TTF文件一同打包进pdf文件中,造成文件很大。

解决方法

是把这句改写为:

BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);

同时,需要引入itext-asian,使用maven:

com.itextpdf

itext-asian

5.2.0

这样,原来7M多的文件,现在只有100K左右了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持云海天教程。如有错误或未考虑完全的地方,望不吝赐教。

iTextPDF是一个流行的用于生成PDF文档的Java库。如果你想在iTextPDF设置打印纸张的底色,这通常是通过使用PdfPageEventHelper来添加一个自定义的页面处理程序,并在其中对每个开始的新页设置背景颜色。 以下是一个简单的示例,展示如何在每一页的开始时设置一个底色: ```java import com.itextpdf.text.*; import com.itextpdf.event.PdfPageEvent; import com.itextpdf.event.PdfPageEventEnd; import com.itextpdf.layout.DocumentBuilder; public class BackgroundColorExample { private static final BaseColor DEFAULT_BACKGROUND_COLOR = BaseColor.WHITE; // 设置默认背景为白色 public void setPaperBackgroundColor(PdfDocument pdfDocument) { PdfDocumentEvent documentEvent = new PdfDocumentEvent(pdfDocument); PdfCopy copy = new PdfCopy(pdfDocument, null); // 假设你不需要输出到特定的物理打印机 PdfPageEvent pageEvent = new MyPdfPageEvent(documentEvent, copy) { @Override protected void onOpenPage(PdfDocumentEvent(pdfDocumentEvent, PdfWriter writer, PdfImportedPage page) { try { ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, new Phrase("Custom Background Color"), 0, 750, DEFAULT_BACKGROUND_COLOR, 1); } catch (Exception e) { e.printStackTrace(); } } @Override public void onEndPage(PdfPageEventEnd event) { // 如果你想在每页结束时不显示文字,可以移除这个方法 } }; pdfDocument.addPageListener(pageEvent); } private class MyPdfPageEvent extends PdfPageEvent { // ... 实现必要的PdfPageEvent方法 } } ``` 在这个例子中,`onOpenPage`方法会在每一页开始时被调用,你在里面设置你需要的背景颜色。注意,这里只是简单地在每页上放置了一个包含指定颜色的文字,你可以替换这部分内容以绘制背景图案或其他元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值