学习PDFjet的分享


placeholder image
admin 发布于:2025-05-08 13:28:23
阅读:loading

1.基本介绍

PDFjet是一款用于生成和操作 PDF 文件的开发工具库。它提供了丰富的功能,允许开发者在各种编程语言中创建、编辑、格式化和导出高质量的 PDF 文档。PDFjet 支持添加文本、图片、表格、图形以及支持多语言字符集,适用于需要自动生成报告、发票、票据、证书等各种商业或个人用途的应用场景。其简便的 API 和强大的功能使得开发者可以快速集成 PDF 生成功能,提高工作效率。PDFjet是一款非常轻量级的库,没有外部依赖,提供的Jar文件小于300KB,提供的Dll文件小于450KB,可谓非常非常的轻量级,Java 版 PDFjet 需要 JDK v1.5 SE 或更高版本。

2.示例介绍

PDFjet的官网地址是“https://pdfjet.com/”,从官网提供的示例下载包中可以得到较为友善的示例包《PDFjet-ForJava-Eval-v8.0.3.zip》,不需要IDE直接运行bat即可运行全量示例,参考下方几个图的示例参考:

image

(含英文、中文、其它外文等)

image

(含图形、线条、复选框、颜色)

image.png

(含段落、图片等)

3.代码示例

依照官方提供的示例进行了一些简单的调整,示例包含了读入自定义的字体,并且循环生成了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();
    }

}

PDFjet-含水印.gif

4.其它说明

(1)PDFjet不是开源免费的使用,官网上有示例项目,包含了大量的示例,示例的结果就是生成了一些《evaluation version》警告的水印,貌似没有内容页数的限制;

(2)PDFjet组件想要不生成水印特别简单,无需改动jar的任何地方,简单的不能再简单了;

(3)完整示例包下载《PDFjet相关下载.zip》;


 点赞


 发表评论

当前回复:作者

 评论列表


留言区