小编hab*_*hab的帖子

如何使用pdfbox或其他Java库减小合并的PDF / A-1b文件的大小

输入:包含嵌入式字体的(例如14个)PDF / A-1b文件列表。
处理:与Apache PDFBOX进行简单合并。
结果:1个PDF / A-1b文件,文件大小太大(太大)。(这几乎是所有源文件大小的总和)。

问题:是否可以减小生成的PDF的文件大小?
想法:删除多余的嵌入式字体。但是如何?这是正确的做法吗?

不幸的是,以下代码无法完成任务,但突出了明显的问题。

try (PDDocument document = PDDocument.load(new File("E:/tmp/16189_ZU_20181121195111_5544_2008-12-31_Standardauswertung.pdf"))) {
    List<COSName> collectedFonts = new ArrayList<>();
    PDPageTree pages = document.getDocumentCatalog().getPages();
    int pageNr = 0;
    for (PDPage page : pages) {
        pageNr++;
        Iterable<COSName> names = page.getResources().getFontNames();
        System.out.println("Page " + pageNr);
        for (COSName name : names) {
            collectedFonts.add(name);
            System.out.print("\t" + name + " - ");
            PDFont font = page.getResources().getFont(name);
            System.out.println(font + ", embedded: " + font.isEmbedded());
            page.getCOSObject().removeItem(COSName.F);
            page.getResources().getCOSObject().removeItem(name);
        }
    } …
Run Code Online (Sandbox Code Playgroud)

java pdf fonts filesize pdfbox

3
推荐指数
2
解决办法
1542
查看次数

标签 统计

filesize ×1

fonts ×1

java ×1

pdf ×1

pdfbox ×1