Текст OpenPdf AcroFields обрезан по самому правому краю - PullRequest
0 голосов
/ 06 августа 2020

У меня возникла проблема с AcroFields OpenPDF. Я просто создаю форму pdf и использую PdfStamper для динамического заполнения данных для создания pdf. Проблема в том, что для указанного c текстового значения, которое точно "касается" правого края, не вызывая обтекания текстом, какой-то пиксель текста обрезан (невидим). Обратитесь к первому на изображении ниже, где символ «s» в слове «caxpus» невидим. Он работает правильно в случае «caxpuso» во второй строке.

Третья строка - это захват части моей формы pdf (просматриваемой в Adobe Acrobat).

Примечание 1: Я использую Шрифт CJK для этого текстового поля, не уверен, вызывает ли это проблему.

Примечание 2: изображение рядом с текстовым полем определенно не перекрывает его. Я переместил его подальше от текстового поля, и проблема не исчезла.

Мой исходный код выглядит следующим образом (удален несвязанный материал):

ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfReader templateReader = readPdfTemplate();
PdfStamper stamper = new PdfStamper(templateReader, baos);

AcroFields fields = stamper.getAcroFields();
//This is a MSGothic CJK font
BaseFont baseFont = BaseFont.createFont("fonts/ipag.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
fields.addSubstitutionFont(baseFont); 

fields.setField("FIELD_ADDRESS", "2701 Cherry Ave Central Building Caxpus Hill Carlifornia CENTRAL VALLEY");
...

stamper.setFreeTextFlattening(true);
stamper.setFormFlattening(true);
stamper.close();

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...