В этой статье вы узнаете, как программно создать файл PDF с нуля на Java.
PDF стал широко используемым файловым форматом для создания различных типов документов. В различных отраслях применяется автоматизация PDF для создания документов, таких как квитанции, счета-фактуры, бизнес-отчеты и т. д. В этой статье рассматривается, как создавать PDF-файлы в Java. Примеры кода продемонстрируют, как создать PDF-файл с нуля и вставить в него текст, изображения, таблицы и другие элементы на Java.
- Java API для создания файлов PDF
- Создайте файл PDF с помощью Java
- Применение форматирования текста в файле PDF
- Вставьте изображение в файл PDF
- Создать таблицу в файле PDF
- Добавить форму в файл PDF
- Добавить закладки в файл PDF
- Получить бесплатную лицензию
Java API для создания PDF — скачать бесплатно
Aspose.PDF for Java — это API для работы с PDF-файлами, позволяющий создавать PDF-файлы из приложений Java. Используя API, вы можете создавать как простые, так и сложные PDF-документы. Aspose.PDF для Java можно загрузить как JAR или установить в приложениях на основе Maven.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>20.11</version>
<classifier>jdk17</classifier>
</dependency>
Создайте файл PDF в Java
Ниже приведены шаги для создания простого PDF-файла с нуля и вставки в него фрагмента текста.
- Создайте экземпляр класса Document.
- Добавьте новую страницу с помощью метода Document.getPages().add() и получите ссылку на нее в объекте Page.
- Добавьте текст на страницу с помощью метода Page.getParagraphs().add(new TextFragment(“Hello World!”)).
- Сохраните файл PDF, используя метод Document.save(String).
В следующем примере кода показано, как создать файл PDF с помощью Java.
// Полные примеры и файлы данных см. на странице https://github.com/aspose-pdf/Aspose.PDF-for-Java.
// Инициализировать объект документа
Document document = new Document();
//Добавить страницу
Page page = document.getPages().add();
// Добавить текст на новую страницу
page.getParagraphs().add(new TextFragment("Hello World!"));
// Сохранить обновленный PDF
document.save("HelloWorld_out.pdf");
Создайте файл PDF с форматированием текста в Java
Давайте теперь посмотрим, как применить форматирование к тексту в документе PDF. Форматирование текста может включать шрифт, размер шрифта, цвет, положение и т. д. Ниже приведены шаги для выполнения этой операции.
- Используйте класс Document для создания нового документа PDF или загрузки существующего.
- Перейдите на Страницу, на которую вы хотите поместить текст.
- Создайте объект TextFragment, чтобы установить текст и другие параметры форматирования, такие как положение, шрифт, цвет, размер и т. д.
- Используйте класс TextBuilder, чтобы добавить на страницу объект TextFragment.
- Используйте метод Document.save(String) для сохранения документа PDF.
В следующем примере кода показано, как создать файл PDF и применить форматирование текста с помощью Java.
// Загрузить PDF-документ
Document document = new Document();
// Добавить страницу
Page page = document.getPages().add();
// Создать текстовый фрагмент
TextFragment textFragment = new TextFragment(
"Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.setPosition(new Position(100, 700));
TextFragment textFragment1 = new TextFragment(
"Text 2: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment1.setPosition(new Position(100, 600));
// Установить свойства текста
textFragment.getTextState().setFontSize(12);
textFragment.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment.getTextState().setBackgroundColor(Color.getLightGray());
textFragment.getTextState().setForegroundColor(Color.getRed());
textFragment1.getTextState().setDrawTextRectangleBorder(true);
textFragment1.getTextState().setUnderline(true);
textFragment1.getTextState().setStrikeOut(true);
// Создайте новый цвет с цветовым пространством узора
Color color = new Color();
color.setPatternColorSpace(new GradientAxialShading(Color.getRed(), Color.getBlue()));
textFragment1.getTextState().setForegroundColor(color);
// Создать объект TextBuilder
TextBuilder textBuilder = new TextBuilder(page);
// Добавьте текстовые фрагменты на страницу PDF
textBuilder.appendText(textFragment);
textBuilder.appendText(textFragment1);
// Сохраните PDF-документ
document.save("Generated-PDF.pdf");
Java Создание файлов PDF с изображением
Ниже приведены шаги для вставки изображения в файл PDF с помощью Aspose.PDF для Java.
- Создайте объект Документ, чтобы создать или открыть документ PDF.
- Получите страницу, на которую вы хотите добавить изображение, в объекте Page.
- Добавьте изображение в коллекцию Page.getResources().
- Используйте операторы для размещения изображения на странице:
- GСохранить operator to save the current graphical state.
- ConcatenateMatrix operator to specify where the image is to be placed.
- Делать operator to draw the image on the page.
- Наконец, используйте оператор GRestore, чтобы сохранить обновленное графическое состояние.
- Сохраните PDF-файл.
В следующем примере кода показано, как вставить изображение в файл PDF на Java.
// Полные примеры и файлы данных см. на странице https://github.com/aspose-pdf/Aspose.Pdf-for-Java.
// Откройте документ
Document pdfDocument1 = new Document("input.pdf");
// Установить координаты
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;
// Получите страницу, на которую вы хотите добавить изображение
Page page = pdfDocument1.getPages().get_Item(1);
// Загрузить изображение в поток
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));
// Добавьте изображение в коллекцию изображений ресурсов страницы.
page.getResources().getImages().add(imageStream);
// Использование оператора GSave: этот оператор сохраняет текущее состояние графики.
page.getContents().add(new Operator.GSave());
// Создание объектов «Прямоугольник» и «Матрица»
Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() });
// Использование оператора ConcatenateMatrix (сцепление матрицы): определяет, как должно быть размещено изображение.
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());
// Использование оператора Do: этот оператор рисует изображение
page.getContents().add(new Operator.Do(ximage.getName()));
// Использование оператора GRestore: этот оператор восстанавливает состояние графики
page.getContents().add(new Operator.GRestore());
// Сохраните новый PDF
pdfDocument1.save("Updated_document.pdf");
// Закрыть поток изображений
imageStream.close();
Создайте таблицу в файле PDF на Java
Таблица — прекрасный способ организации данных в виде строк и столбцов. Aspose.PDF позволяет легко вставлять таблицу в PDF-документ. Ниже приведены шаги для создания таблицы.
- Загрузите исходный файл с помощью класса Document.
- Инициализируйте Table и установите ее столбцы и строки.
- Установите настройки стола (например, границы).
- Заполните таблицу, добавив в нее строки.
- Добавьте таблицу на страницу.
- Сохраните PDF-файл.
В следующем примере кода показано, как создать таблицу в файлах PDF на Java.
// Полные примеры и файлы данных см. на странице https://github.com/aspose-pdf/Aspose.Pdf-for-Java.
// Загрузить исходный PDF-документ
Document doc = new Document(dataDir + "input.pdf");
// Инициализирует новый экземпляр таблицы
Table table = new Table();
// Установите цвет границы таблицы как LightGray
table.setBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// установить границу для ячеек таблицы
table.setDefaultCellBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// создать цикл для добавления 10 строк
for (int row_count = 1; row_count < 10; row_count++) {
// добавить строку в таблицу
Row row = table.getRows().add();
// добавить ячейки таблицы
row.getCells().add("Column (" + row_count + ", 1)");
row.getCells().add("Column (" + row_count + ", 2)");
row.getCells().add("Column (" + row_count + ", 3)");
}
// Добавить табличный объект на первую страницу входного документа
doc.getPages().get_Item(1).getParagraphs().add(table);
// Сохранить обновленный документ, содержащий табличный объект
doc.save(dataDir + "document_with_table.pdf");
Создать форму в файле PDF на Java
Формат PDF также поддерживает добавление форм для сбора данных от пользователей. Форма может содержать различные типы полей, такие как текстовые поля, переключатели и т. д. Следующие шаги демонстрируют, как вставить простую форму в файл PDF.
- Загрузите документ PDF или создайте новый, используя класс Document.
- Создайте поле формы, которое вы хотите добавить, например TextBoxField.
- Задайте свойства поля.
- Добавьте поле в Форму PDF-файла, используя метод pdfDocument.getForm().add(Field, Int).
- Сохраните PDF-документ.
В следующем примере кода показано, как создать форму в файле PDF на Java.
// Полные примеры и файлы данных см. на странице https://github.com/aspose-pdf/Aspose.Pdf-for-Java.
// Откройте документ
Document pdfDocument = new Document("input.pdf");
// Создать поле
TextBoxField textBoxField1 = new TextBoxField(pdfDocument.getPages().get_Item(1), new Rectangle(100, 200, 300, 300));
// Задайте имя поля
textBoxField1.setPartialName("textbox1");
// Установите значение поля
textBoxField1.setValue("Text Box");
// Создайте объект границы
Border border = new Border(textBoxField1);
// Установите ширину границы
border.setWidth(5);
// Установите стиль границы тире
border.setDash(new Dash(1, 1));
// Установить границу поля
textBoxField1.setBorder(border);
// Добавьте поле в документ
pdfDocument.getForm().add(textBoxField1, 1);
// Сохраните измененный PDF
pdfDocument.save("output.pdf");
Подробнее о полях формы читайте здесь.
Вставить закладки в файл PDF на Java
Ниже приведены шаги для добавления закладок в файл PDF.
- Откройте документ PDF с помощью объекта Документ.
- Добавьте схемы документов в коллекцию OutlineItemCollection.
- Установите номер целевой страницы.
- Добавьте закладку в коллекцию структуры документа.
- Сохраните PDF-файл.
В следующем примере кода показано, как вставлять закладки в PDF с помощью Java.
// Полные примеры и файлы данных см. на странице https://github.com/aspose-pdf/Aspose.Pdf-for-Java.
// Откройте исходный PDF-документ
Document pdfDocument = new Document("input.pdf");
// Создать объект закладки
OutlineItemCollection pdfOutline = new OutlineItemCollection(pdfDocument.getOutlines());
pdfOutline.setTitle("Test Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);
// Установите номер целевой страницы
pdfOutline.setAction(new GoToAction(pdfDocument.getPages().get_Item(1)));
// Добавьте закладку в коллекцию структуры документа.
pdfDocument.getOutlines().add(pdfOutline);
// Сохраните документ обновления
pdfDocument.save("output.pdf");
Получить бесплатную лицензию
Вы можете получить бесплатную временную лицензию, чтобы попробовать API без ограничений на пробную версию.
Вывод
В этой статье вы узнали, как создавать PDF-файлы с нуля на Java. Кроме того, образцы кода Java продемонстрировали, как вставлять текст, изображения, таблицы, формы и закладки в новые или существующие файлы PDF. Вы можете узнать больше о Java PDF API, используя документацию.