В iTextSharp можно изменить ширину и высоту объекта PdfTemplate.Можем ли мы сделать то же самое с iText7 PdfCanvas / Xobject? - PullRequest
0 голосов
/ 18 сентября 2019

Я конвертирую некоторый тяжелый код VB.net в iTextSharp в iText7, и часть старого кода iTextSharp изменяет ширину и высоту объекта Pdftemplate для адаптации к конкретной ситуации.

Теперь в iText7 у меня есть объект PdfCanvas, связанный с объектом PdfFormXObject, который выполняет ту же роль, что и прежний объект PdfTemplate.Все идет нормально.

Но, увы, у меня есть старый код, с которым приходится бороться:

Dim oObjectTemplate As PdfTemplate = oContainerTemplate
dTemplateSizeIncrease = oObject.FontSize * 4
oObjectTemplate.Width += CSng(dTemplateSizeIncrease)
oObjectTemplate.Height += CSng(dTemplateSizeIncrease)

Я попытался найти ответ в надежной документации, но мало что можно найти для преобразования iTextSharp.на iText7.

К этому моменту в коде шаблон объекта (и его аналог iText7) уже прошли через небольшую логику и уже имеют определенные значения.Я не хочу делать новый экземпляр, чтобы приспособиться к изменению размера.

Итак ... есть ли способ изменить размер iText7 PdfFormXObject после его создания?

1 Ответ

1 голос
/ 22 сентября 2019

iText 5 просто меняет bbox формы XObject, так что в iText 7 вполне возможно сделать то же самое - просто установите измененный bbox в PdfFormXObject экземпляр.Пример кода (он написан на Java, но его очень легко преобразовать в C # или VB.NET):

Rectangle bbox = formXObject.getBBox().toRectangle();
bbox.setHeight(bbox.getHeight() + 100);
bbox.setWidth(bbox.getWidth() + 100);
formXObject.setBBox(new PdfArray(bbox));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...