Мы планируем перенести наши утилиты для создания pdf-файлов из iText в PDFBox (из-за проблем с лицензированием в iText). С некоторыми усилиями я смог написать и разместить текст, рисовать линии и т. Д. Но создание таблиц с текстом, встроенным в ячейки таблицы, является проблемой, я просмотрел документацию, примеры, Google, Stackoverflow не смог найти ничего. Интересно, поддерживает ли PDFBox собственную поддержку для создания таблиц со встроенным текстом. Я последний раз воспользовался этой ссылкой https://github.com/eduardohl/Paginated-PDFBox-Table-SampleКак создать таблицу с помощью Apache PDFBox
ответ
Благодаря ссылкам, предоставленным Tilman. Используя boxable API (https://github.com/dhorions/boxable), я смог создать таблицу, которую я хотел. Просто FYI я хотел создать таблицу с переменным количеством ячеек. Например, строка 1 будет иметь 2 ячейки, строка 2 может содержать 5 ячеек, а в строке 3 может быть всего 3 ячейки. Я был в состоянии сделать это легко. Я следовал примеру1.java в ссылке, упомянутой выше.
Я не смог найти Example1.java, о котором вы упомянули в своем ответе. Вставьте код или Example1.java. –
@ DarshanPuranik: возможно, этот [тест] (https://github.com/dhorions/boxable/blob/master/src/test/java/be/quodlibet/boxable/TableTest.java) может вам помочь. –
Поскольку мне также нужны функции рисования таблиц для стороннего проекта, я сам реализовал небольшую библиотеку «table drawer», которую я сейчас загрузил в github.
Для получения такой таблицы - например - ...
... Вам потребуется следующий код:
// Define the table structure first
TableBuilder tableBuilder = new TableBuilder()
.addColumnOfWidth(300)
.addColumnOfWidth(120)
.addColumnOfWidth(70)
.setFontSize(8)
.setFont(PDType1Font.HELVETICA);
// Header ...
tableBuilder.addRow(new RowBuilder()
.add(Cell.withText("This is right aligned without a border").setHorizontalAlignment(RIGHT))
.add(Cell.withText("And this is another cell"))
.add(Cell.withText("Sum").setBackgroundColor(Color.ORANGE))
.setBackgroundColor(Color.BLUE)
.build());
// ... and some 10 rows with alternating background color
for (int i = 0; i < 10; i++) {
tableBuilder.addRow(new RowBuilder()
.add(Cell.withText(i).withAllBorders())
.add(Cell.withText(i * i).withAllBorders())
.add(Cell.withText(i + (i * i)).withAllBorders())
.setBackgroundColor(i % 2 == 0 ? Color.LIGHT_GRAY : Color.WHITE)
.build());
}
// ...
// Draw!
(new TableDrawer(contentStream, tableBuilder.build(), startX, startY)).draw();
В настоящее время "Список функций" включает в себя:
- набор шрифтов и размер шрифта на уровне таблицы
- определяют единичные клетки с снизу-к р-, левой и правой границы ширина раздельно
- определить цвет фона на строке или клеточном уровне
- определяют отступы (сверху, снизу, слева, справа) на клеточном уровне
- определить цвет границы (на столе, строка или уровень ячейки)
- задать выравнивание текста (справа или слева, в центре еще не реализован)
Также он не должен быть слишком жестким, чтобы добавить недостающие вещи, как центрирование текста или имеющие различные цвета границы для границ сверху , внизу, влево и вправо, если необходимо. Но, как уже было сказано, это всего лишь небольшая библиотека, которую я написал в основном для другого собственного проекта.
- 1. Как разбить PDF с помощью Apache PDFBox?
- 2. Создание pdf-страницы с помощью Apache PDFBOX
- 3. Как создать таблицу с помощью OpenJPA для Apache ODE?
- 4. Apache PDFBox rotate PDImageXObject
- 5. Как извлечь текст из файла PDF с помощью Apache PDFBox
- 6. java - сгенерируйте unicode pdf с Apache PDFBox
- 7. Как создать абзацы с фиксированной шириной с помощью PDFbox?
- 8. Разбор PDF-файла с использованием Apache PDFBox
- 9. Apache PDFBox - невозможно расшифровать PDF
- 10. Apache Tika и Apache PDFBox 2.0
- 11. Невозможно проверить цифровую подпись с помощью Apache PDFBOX
- 12. Масштабирование с помощью PDFBox
- 13. Вращение с помощью pdfbox
- 14. сохранить расщепленный pdf-документ удаленному серверу apache с помощью pdfbox
- 15. Как создать Dyanamic no из страниц с помощью PDFBOX
- 16. Как создать изображение из PDF с помощью PDFBox в JAVA
- 17. Как создать многослойный PDF-файл с помощью PdfBox?
- 18. Показать все страницы PDF с помощью Apache PDFBox
- 19. Извлечение текста между двумя закладками с помощью Apache PdfBox
- 20. Apache PDFBox Отключить поле подписи
- 21. Как создать прозрачный текст в pdfBOX или добавить непрозрачность в текст с помощью pdfBOX?
- 22. Текст заменить на изображение в Apache PDFBOX
- 23. Как импортировать XFDF в PDF с Apache pdfbox 2.0
- 24. Создать таблицу с помощью datestamp
- 25. создать таблицу с помощью Еогеаспа()
- 26. Создать таблицу с помощью Mushtache.js
- 27. Установка расстояния между символами с помощью PDFBox
- 28. Как создать экземпляр PageDrawer в PDFBox 2.0?
- 29. Как создать таблицу с помощью цикла?
- 30. Как создать 3D-таблицу с помощью Processing.JS?
Что касается создания документа, PDFBox в основном эквивалентен API-интерфейсу низкого уровня для iText. То, что вам не хватает, это то, что заменит API высокого уровня iText. Я не знаю, что такое доступно для публики. – mkl
Да, ты прибил его. Высокий уровень API для PDFBox для создания всех этих таблиц - это то, чего не хватает. Многие сообщества разработчиков переходят из iText в другие библиотеки PDF с открытым исходным кодом, и я уверен, что у кого-то будет элегантное решение. – Anil
Вот еще один: https://github.com/dhorions/boxable –