gpt4 book ai didi

java - openhtmltopdf/ Flying Saucer : many links in huge PDF are not clickable (PDF annotations not set)

转载 作者:行者123 更新时间:2023-12-01 05:58:49 25 4
gpt4 key购买 nike

我生成巨大的目录(约 1500 页)作为 HTML 并通过 Jsoup 转换为和 openhtmltopdf (使用飞碟)到 PDF。在生成的 PDF 中,许多链接不可点击,我不知道为什么。

考虑以下程序:

import org.jsoup.helper.W3CDom;
import org.w3c.dom.Document;
import org.jsoup.Jsoup;
import com.openhtmltopdf.pdfboxout.PdfRendererBuilder;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class Main {

public static void main(String[] args) throws Exception {

PdfRendererBuilder pdfBuilder = new PdfRendererBuilder();

String html = "<html><head></head><body>";
for (Integer i = 0; i < 10000; i++) {
html += "<a href='http://www.google.de?q=" + i + "'>blabla</a> <br>";
}
html += "</body></html>";

File file = new File("/tmp/tmp.pdf");
FileOutputStream fop = new FileOutputStream(file);

W3CDom w3cDom = new W3CDom();
Document w3cDoc = w3cDom.fromJsoup(Jsoup.parse(html));

pdfBuilder.withW3cDocument(w3cDoc, "/");
pdfBuilder.toStream(fop);
try {
pdfBuilder.run();
} catch (Exception e) {
e.printStackTrace();
}
}
}

它创建了一个包含 176 页和 10.000 个链接的 PDF。在第 1 到第 3 页上,它们是可点击的,之后它们不是,尽管相同。最后一个可点击的链接是数字 112,在我找到的源代码中:
870 0 obj
<<
/W 0.0
/S /S
>>
endobj
871 0 obj
<<
/S /URI
/URI (http://www.google.de?q=111)
>>
endobj
872 0 obj
<<
/W 0.0
/S /S
>>
endobj
873 0 obj
<<
/S /URI
/URI (http://www.google.de?q=112)
>>
endobj
874 0 obj
<<
/W 0.0
/S /S
>>
endobj
875 0 obj
<<
/F1 1049 0 R
>>
endobj

显然,在数字 112 之后,注释对象中不再存储 URL。

我的程序自然要复杂得多。在结果的前五或六页上,所有链接都是可点击的,之后有些是,大多数不是。哪些仍然可以点击似乎是完全随机的。

有人可以帮忙吗?任何想法可能导致此问题或如何解决它? openhtmltopdf 中的错误?

——

编辑1:
使用 withHtmlContent 而不是 withW3cDocument 也有同样的问题。

最佳答案

生成的 PDF 与 jsoup 1.11.2 完美配合和 openhtmltopdf-pdfbox-0.0.1-RC11 .

该问题可能是由旧版本 openhtmltopdf 中的错误引起的。 ,已修复。

关于java - openhtmltopdf/ Flying Saucer : many links in huge PDF are not clickable (PDF annotations not set),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47456423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com