Я пытаюсь преобразовать документ SVG в PDF с использованием Batik (v1.12) и PDFTranscoder (fop v2.4).
Проблема в том, что мой SVG содержит ссылки, которые каким-то образом не транскодируется в PDF. Это поддерживается, или есть известная проблема для этого, или я пытаюсь использовать это неправильно?
Ниже приведена разметка SVG (самая простая, для которой я могу воспроизвести проблему) входной документ :
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="500"
height="500" x="0" y="0">
<g>
<a target="_blank" xlink:href="https://www.google.com">
<text x="50%" y="50%" style="font: 13px sans-serif"
text-anchor="middle" fill="rgb(0, 0, 0)">TEST
</text>
</a>
</g>
</svg>
Также упрощенный фрагмент кода в Java, который я использую для транскодирования:
public void convert(InputStream svgIn, OutputStream pdfOut) throws SvgExportException {
String parserName = XMLResourceDescriptor.getXMLParserClassName();
SAXSVGDocumentFactory factory = new SAXSVGDocumentFactory(parserName);
try {
Document document = factory.createDocument("svg", svgIn);
PDFTranscoder t = new PDFTranscoder();
TranscoderInput input = new TranscoderInput(document);
TranscoderOutput output = new TranscoderOutput(outputStream);
try {
transcoder.transcode(input, output);
} catch (TranscoderException e) {
throw new SvgExportException("Internal Error: Transcoding the SVG Document to PDF failed.", getReasonForTranscoderException(e));
}
} catch (IOException e) {
throw new CustomTechnicalException(e);
}
}
Выходной документ PDf можно просмотреть здесь . Как видите, при наведении на текст (и нажатии на него) ссылки нет.
Спасибо за любую помощь в этом!