Я в настоящее время застрял в следующей проблеме: Создание документа с помощью PDFBox. Я хотел бы включить генерирующие символы символы, предпочтительно из Courier New. Для тех из вас, кто не должен знать, что такое bgcs, вот их картина:
В моем Java-классе я в настоящее время получил следующие строки.
contentStream.setFont(PDTrueTypeFont.loadTTF(doc, "pdf_content/cour.ttf") , 12);
contentStream.beginText();
contentStream.drawString("┼┌┐└┘│─┘├┤┬┴┼");
contentStream.endText();
К сожалению, как видно на выходе, они приводят к некоторым странным символам, а не к желаемым барам.
Кто-нибудь сталкивался с той же проблемой или имел какое-либо решение этой проблемы? Я мог бы также упомянуть, что печатные символы, такие как немецкий "Umlaute" ("äöüß"), отлично работают.
Заранее спасибо!
Экспортируя подмножество необходимых символов в новый шрифт и сопоставляя их с unicode 0041
до 004e
и 0061
до 006e
вы можете работать с этими символами с помощью клавиш AZ и a. PDFBox позволяет включать шрифт извне, используя следующий код:
contentStream.setFont( PDTrueTypeFont.loadTTF(doc, "pdf_content/bgcs.ttf"), 12);
Поскольку я искал бесплатную и хотя и рабочую программу для редактирования существующих шрифтов, я обнаружил, что fontforge и Type Light, похоже, понимают работу с символьными сопоставлениями (проверяется с помощью Type Light, поскольку fontforge больше относится к приложению linux/unix, встроить в Windows 8.1).
Надеюсь, это поможет кому-то споткнуться об этой ошибке метода drawString.
PDPageContentStream
методаdrawString
.