Обходной путь для PDFBox PDTrueTypeFont bad / widths bug? - PullRequest
1 голос
/ 06 апреля 2011

Я создаю PDF, используя библиотеку Apache PDFBox на Java. Я вставил шрифт в PDF, но всякий раз, когда я открываю PDF, я получаю сообщение об ошибке:

"Шрифт font_name содержит bad / Widths"

Эта ошибка возникает независимо от того, какой шрифт встроен, но шрифт и PDF-файл по-прежнему отображаются правильно после того, как вы нажмете «ОК» в этой ошибке. Однако для производственного кода недопустимо, чтобы это предупреждение появлялось на каждом сгенерированном PDF-файле, даже если PDF-файл корректно отображается.

Есть ли обходной путь для этого, чтобы я мог избежать появления ошибки?

Для справки приведена соответствующая ошибка (это версия 1.4, которую я хотел бы продолжить, а не возвращаться к 1.3)

А вот код, используемый для встраивания шрифта:

font = PDTrueTypeFont.loadTTF( doc, new File( "VERDANA.ttf" ));

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Эта проблема была решена в июле 2012 года, и первая версия, содержащая исправление, является 1.7.1.

Подробнее см.выпуск PDFBOX-954 в Apache Jira.

0 голосов
/ 24 мая 2011

только с использованием PDType1Font.FONT работает нормально, пока у вас нет необходимости «встраивать шрифты истинного типа» в документ PDF (что требуется многим издателям), что выполняется путем загрузки его из файла ttf, как это делал OP.

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

font = PDTrueTypeFont.loadTTF( doc, new File( "helveltica.ttf" ));
font.setWidths(PDType1Font.HELVETICA.getWidths());

ищем постоянное решение этой проблемы в следующей версии pdfbox! :)

...