Створюйте PDF-документи за допомогою Java

Вам, як програмісту, може знадобитися створити файли PDF у програмах Java на певному етапі. Наприклад, для створення квитанцій, рахунків-фактур, бізнес-звітів тощо. Доступні різні бібліотеки Java PDF, які дозволяють створювати PDF-файли з нуля. Однак ця стаття надасть вам потужну, високошвидкісну та високоякісну бібліотеку Java для створення PDF-файлів, для якої потрібно написати мінімум рядків коду.

Отже, давайте подивимося, як створити PDF-файли з нуля в Java. Крім того, давайте розглянемо, як програмно вставляти текст, зображення, таблиці та інші елементи в документ PDF.

Бібліотека Java PDF

Для створення PDF-файлів і роботи з ними ми будемо використовувати Aspose.PDF for Java. Це бібліотека обробки PDF-файлів для створення насичених PDF-файлів без написання складного коду. Використовуючи бібліотеку, ви можете створювати як прості, так і складні документи PDF. Крім того, ви можете отримати безкоштовну ліцензію і створити потрібні PDF-файли.

Aspose.PDF for 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>22.11</version>
    <classifier>jdk17</classifier>
</dependency>

Як створити PDF на Java

Нижче наведено кроки для створення простого PDF-файлу з нуля та вставлення в нього фрагмента тексту.

У наведеному нижче прикладі коду показано, як створити 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");

Створення PDF-файлів із зображенням у Java

Нижче наведено кроки, щоб вставити зображення у файл PDF за допомогою Aspose.PDF for Java.

  • Створіть об’єкт Document, щоб створити або відкрити документ PDF.
  • Отримайте сторінку, до якої хочете додати зображення, в об’єкті Page.
  • Додайте зображення до колекції Page.getResources().
  • Використовуйте оператори, щоб розмістити зображення на сторінці:
    • GSave operator to save the current graphical state.
    • Конкатенована матриця 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 і Matrix
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-документ.

Нижче наведено кроки для створення таблиці PDF у Java.

  • Завантажте вихідний файл за допомогою класу Document.
  • Ініціалізуйте таблицю і встановіть її стовпці та рядки.
  • Встановити налаштування столу (наприклад, межі).
  • Заповніть таблицю, додавши до неї рядки.
  • Додайте таблицю на сторінку.
  • Збережіть файл 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");

Дізнайтеся більше про поля форми за допомогою тут.

Java: створюйте PDF із закладками

Нижче наведено кроки для додавання закладок у PDF-файл.

  • Відкрийте PDF-документ за допомогою об’єкта Document.
  • Додайте структури документів до колекції 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");

Безкоштовна бібліотека Java для створення PDF-файлів

Ви можете отримати безкоштовну тимчасову ліцензію і створювати PDF-файли з нуля без будь-яких обмежень.

Дослідіть бібліотеку Java PDF

Ви можете дізнатися більше про Java PDF API за допомогою документації.

Висновок

У цій статті ви дізналися, як створювати PDF-файли з нуля в Java. Крім того, зразки коду Java продемонстрували, як вставляти текст, зображення, таблиці, форми та закладки в нові або існуючі файли PDF. Ви можете легко встановити бібліотеку у своїй програмі та створювати потрібні файли PDF.

Дивись також