У меня есть сервис, зависящий от библиотеки создания документов. Библиотека использует iText pdfHTML для преобразования HTML в PDF. Внутри документа Оглавление содержит ссылки для перехода к определенным разделам документа, а также номера страниц. Это было сделано с помощью закладок HTML с атрибутом ID и ссылками.
Ссылки работают, когда зависимость указывает на мой локальный репозиторий. Но когда зависимость указывает на удаленный репозиторий, ссылки перестают работать. При наведении курсора мыши на неработающую ссылку я вижу текст «jar:file:/.../printerlibrary-{version}.jar!/print-resource/#section-1». Номера страниц отображаются правильно в обоих сценариях.
Я также пытался создать закладки с помощью этого руководства, но возникла та же проблема.
Я использую последнюю версию pdfHTML (6.1.0)
/print-resource/example.html:
.new-page {
page-break-before: always;
}
ul.toc a::after {
content: target-counter(attr(href), page);
float: right;
}
Section 1
some content...
Table of content
Section 2
some content...
Section 3
some content...
Printer.java:
public class Printer {
protected byte[] printAsPDF() throws IOException {
String html = "...";
URL resource = getClass().getClassLoader().getResource("print-resource");
String resourcePath = resource.toExternalForm();
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
PdfWriter pdfWriter = new PdfWriter(outputStream, new WriterProperties());
PdfDocument pdfDocument = new PdfDocument(pdfWriter);
ConverterProperties props = new ConverterProperties();
props.setBaseUri(resourcePath);
HtmlConverter.convertToPdf(html, pdfDocument, props);
return outputStream.toByteArray();
}
}
}
ServiceImpl.java:
public class ServiceImpl implements Service {
private byte[] print() {
return Printer.printAsPDF();
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... repository