学习PDFjet的分享

admin 发布于:2025-05-08 13:28:23
阅读:loading
PDFjet是一款用于生成和操作 PDF 文件的开发工具库。它提供了丰富的功能,允许开发者在各种编程语言中创建、编辑、格式化和导出高质量的 PDF 文档。PDFjet 支持添加文本、图片、表格、图形以及支持多语言字符集,适用于需要自动生成报告、发票、票据、证书等各种商业或个人用途的应用场景。其简便的 API 和强大的功能使得开发者可以快速集成 PDF 生成功能,提高工作效率。PDFjet是一款非常轻量级的库,没有外部依赖,提供的Jar文件小于300KB,提供的Dll文件小于450KB,可谓非常非常的轻量级,Java 版 PDFjet 需要 JDK v1.5 SE 或更高版本。
PDFjet的官网地址是“https://pdfjet.com/”,从官网提供的示例下载包中可以得到较为友善的示例包《PDFjet-ForJava-Eval-v8.0.3.zip》,不需要IDE直接运行bat即可运行全量示例,参考下方几个图的示例参考:
(含英文、中文、其它外文等)
(含图形、线条、复选框、颜色)
(含段落、图片等)
依照官方提供的示例进行了一些简单的调整,示例包含了读入自定义的字体,并且循环生成了155个段落,目的在于让示例生成的PDF文档隶属于多个PDF页(17页),参考如下:
public class Test {
public static void main(String[] args) throws Exception {
PDF pdf = new PDF(Files.newOutputStream(Paths.get("Hello.pdf")));
Page page = new Page(pdf, Letter.PORTRAIT);
Font font1 = new Font(pdf , Test.class.getResource("/DroidSans.ttf.stream").getFile());
Font font2 = new Font(pdf , Test.class.getResource("/DroidSansFallback.ttf.stream").getFile());
TextLine textLine = new TextLine(font1, "Happy New Year!");
textLine.setLocation(70f, 70f);
textLine.drawOn(page);
textLine = new TextLine(font1, "新年快樂!");
textLine.setFallbackFont(font2);
textLine.setLocation(300f, 70f);
textLine.drawOn(page);
textLine = new TextLine(font1, "新年快乐!");
textLine.setFallbackFont(font2);
textLine.setLocation(300f, 100f);
textLine.drawOn(page);
page = new Page(pdf, Letter.PORTRAIT);
int number = 1;
for (int i = 1 ; i <= 155 ; i++) {
TextLine temp = new TextLine(font1, "Hello World: " + i);
temp.setLocation(100, 70 * number * 1f);
temp.drawOn(page);
number ++;
if (i % 10 == 0) {
number = 1;
temp.setLocation(100, 70 * number * 1f);
page = new Page(pdf, Letter.PORTRAIT);
}
}
pdf.complete();
}
}
(1)PDFjet不是开源免费的使用,官网上有示例项目,包含了大量的示例,示例的结果就是生成了一些《evaluation version》警告的水印,貌似没有内容页数的限制;
(2)PDFjet组件想要不生成水印特别简单,无需改动jar的任何地方,简单的不能再简单了;
(3)完整示例包下载《PDFjet相关下载.zip》;
点赞