Мне нужно создать pdf-файл в моем приложении mvc spring. недавно я протестировал iTextPdf library, но я не смог создать документ в формате unicode pdf. на самом деле я не видел нелатинских символов в сгенерированном документе. Я решил использовать Apache PDFBox для своей цели, но я не знаю, поддерживает ли он символы Unicode? Если есть, есть ли хороший учебник для обучения pdfBox? А если нет, какую библиотеку я должен использовать? Спасибо заранее.java - сгенерируйте unicode pdf с Apache PDFBox
ответ
Текущая версия Apache PDFBox не может иметь дело с Unicode, см. https://pdfbox.apache.org/ideas.html
iTextPdf v 5.x генерирует PDF-файлов с Unicode. Существует Exemple здесь: IText в действии: Глава 11: Выбор правильный шрифт part3.chapter11.UnicodeExample http://itextpdf.com/examples/iia.php?id=199
Чтобы запустить его, вам просто нужно адаптировать значение EncodingExample.FONT и добавить некоторый код для создания выходного файла.
версии 1.8. * Не поддерживают генерацию PDF с помощью Unicode, но версии 2.0. *. Это пример EmbeddedFonts.java:
public class EmbeddedFonts
{
public static void main(String[] args) throws IOException
{
PDDocument document = new PDDocument();
PDPage page = new PDPage(PDRectangle.A4);
document.addPage(page);
String dir = "../pdfbox/src/main/resources/org/apache/pdfbox/resources/ttf/";
PDType0Font font = PDType0Font.load(document, new File(dir + "LiberationSans-Regular.ttf"));
PDPageContentStream stream = new PDPageContentStream(document, page);
stream.beginText();
stream.setFont(font, 12);
stream.setLeading(12 * 1.2);
stream.newLineAtOffset(50, 600);
stream.showText("PDFBox Unicode with Embedded TrueType Font");
stream.newLine();
stream.showText("Supports full Unicode text ?");
stream.newLine();
stream.showText("English русский язык Tiếng Việt");
stream.endText();
stream.close();
document.save("example.pdf");
document.close();
}
}
Обратите внимание, что в отличие от IText, поддержка PDFBox для создания PDF очень низкий уровень, то есть мы не поддерживаем пункты или таблицы из коробки. Нет учебника, но есть много примеров. API ориентирует себя на спецификацию PDF.
Все еще есть небольшая ошибка в подмножестве шрифтов в текущем SNAPSHOT: если на той же странице вы сначала используете шрифт без подмножества ('stream.setFont (font, 12, false);'), тогда добавьте некоторый текст, затем используйте тот же шрифт с подмножеством ('stream.setFont (font, 12, true);'), затем добавьте еще какой-нибудь текст, текст, составленный для второй настройки шрифта, может быть неполным. (Но поскольку я видел, что в этом контексте были обнаружены другие сбои, я думаю, что это тоже скоро будет исправлено.);) – mkl
спасибо, я открыл PDFBOX-2632 –
- 1. Apache PDFBox - невозможно расшифровать PDF
- 2. Как разбить PDF с помощью Apache PDFBox?
- 3. Создание pdf-страницы с помощью Apache PDFBOX
- 4. Разбор PDF-файла с использованием Apache PDFBox
- 5. Java - PDFBox 1.8.9 текстовый файл в формате unicode для pdf
- 6. java use pdfbox от msoffice до pdf
- 7. Apache PDFBox и PDF/A-3
- 8. Apache pdfbox .doc для преобразования PDF-
- 9. Использование PDFBox для записи строк Unicode в PDF
- 10. Список pdf Вложения с использованием PDFBox (Java)
- 11. Java GUI to PDF с помощью PDFBox
- 12. Java, редактировать pdf есть текст с PDFBox
- 13. Java: Apache PDFbox Extract выделенный текст
- 14. Apache Tika и Apache PDFBox 2.0
- 15. Pdfbox pdf viewer code
- 16. PDF-версии, поддерживаемые PDFBOX
- 17. Как импортировать XFDF в PDF с Apache pdfbox 2.0
- 18. Поиск кода javascript в PDF с использованием Apache PDFBox
- 19. Показать все страницы PDF с помощью Apache PDFBox
- 20. Как извлечь текст из файла PDF с помощью Apache PDFBox
- 21. сохранить расщепленный pdf-документ удаленному серверу apache с помощью pdfbox
- 22. Расширение TYPO3: сгенерируйте PDF
- 23. Apache PDFBox Отключить поле подписи
- 24. PDF-файл с PDFBox пуст
- 25. PDF-рендеринг с использованием pdfbox
- 26. JAVA pdfbox PDF to очень простой HTML
- 27. Pdf в ландшафте с использованием pdfBox
- 28. Как создать таблицу с помощью Apache PDFBox
- 29. pdfbox: пытается расшифровать PDF
- 30. Apache PDFBox rotate PDImageXObject
И iText, и PDFBox могут использоваться для печати символов за пределами латинских, если они используются правильно. Как ответил @Tilman, простой способ был введен в PDFBox только недавно. IText также позволяет легко. Если вы не только означаете не латинский, но и не-LTR, вы, вероятно, должны сказать. – mkl
Мне нужно использовать как латинские, так и нелатинские (например, персидские) символы в одном документе. На самом деле на моей странице есть как LTR, так и RTL-тексты. – hamed
Боюсь, что к вопросу нужно добавить. Часто люди думают только об особых вариациях некоторых латинских символов или кириллических или дингбатов в этом контексте. Персонажи, требующие специальных лигатур и RTL, не обязательно должны быть у них в голове. – mkl