iText7 добавляет SVG в PdfDocument и правильно выравнивает изображение SVG в PDF

Попробуйте

pwsh -command "&.\psscript.ps1"

Если это требуется -

sudo pwsh -command "&.\psscript.ps1"
1
задан Alexey Subach 21 January 2019 в 19:51
поделиться

1 ответ

В вашем коде вы имеете дело с довольно низкоуровневым API. Хотя ваша задача довольно проста, и низкоуровневый API все еще здесь достаточен, с высокоуровневым API макета вы можете достичь цели намного быстрее.

Для начала вы можете повторно использовать свой код, чтобы создать PdfDocument и определить URL-адрес для изображения SVG:

PdfDocument doc = new PdfDocument(new PdfWriter(new FileOutputStream(new File("D:\\test.pdf")),
        new WriterProperties().setCompressionLevel(0)));
String svgPath = "...svgPathHere";

Затем, вместо немедленного рисования изображения SVG на странице, вы можно преобразовать его в объект Image из API layout, который вы можете настроить: масштабировать для соответствия определенным размерам, установить фиксированное положение (левая нижняя точка) и т. д .:

Image image = SvgConverter.convertToImage(new FileInputStream(svgPath), doc);
image.setFixedPosition(100, 200);
image.scaleToFit(300, 300);

Чтобы связать все вместе , создайте объект высокого уровня Document и добавьте туда свое изображение. Не забудьте закрыть Document экземпляр. Вам больше не нужно закрывать оригинал PdfDocument:

Document layoutDoc = new Document(doc);
layoutDoc.add(image);

layoutDoc.close();
0
ответ дан Alexey Subach 21 January 2019 в 19:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: