PDF — это кроссплатформенный формат документа, обеспечивающий единую структуру в различных операционных системах. Он широко используется для создания и обмена документами, такими как исследовательские статьи, счета-фактуры и т. д. При программном создании PDF-файлов часто требуется изменить положение и ориентацию текста в соответствии с макетом документа. В этой статье мы покажем вам, как повернуть текст внутри PDF-документов в Java.
Java API для поворота текста в PDF
Чтобы повернуть текст внутри файлов PDF, мы будем использовать Aspose.PDF для Java. Это мощная библиотека, которая предоставляет как базовые, так и расширенные функции работы с PDF. Вы можете скачать API или установить его, используя следующие конфигурации Maven.
Репозиторий:
<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.4</version>
</dependency>
Повернуть текст внутри PDF в Java
Существует несколько способов повернуть текст внутри документа PDF. Вы можете повернуть фрагмент текста или весь абзац. Давайте посмотрим, как работает каждый из этих поворотов текста.
Вращение текста PDF с использованием TextFragment в Java
Ниже приведены шаги для поворота текстового фрагмента в документе PDF с использованием Java.
- Сначала создайте новый документ, используя класс Document.
- Затем добавьте страницу в документ и получите ссылку на нее с помощью метода Document.getPages().add().
- После этого создайте новый текстовый фрагмент с помощью класса TextFragment.
- Установите положение фрагмента текста и шрифт.
- Установите угол поворота с помощью метода TextFragment.getTextState().setRotation().
- Создайте новый объект TextBuilder и инициализируйте его с помощью объекта Page.
- Используйте метод TextBuilder.appendText(TextFragment) для добавления текста на страницу.
- Наконец, сохраните документ PDF, используя метод Document.save(string).
В следующем примере кода показано, как повернуть текст в документе PDF на Java.
// Инициализировать объект документа
Document pdfDocument = new Document();
// Получить конкретную страницу
Page pdfPage = pdfDocument.getPages().add();
// Создать текстовый фрагмент
TextFragment textFragment1 = new TextFragment("main text");
textFragment1.setPosition(new Position(100, 600));
// Установить свойства текста
textFragment1.getTextState().setFontSize(12);
textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
// Создать повернутый текстовый фрагмент
TextFragment textFragment2 = new TextFragment("rotated text");
textFragment2.setPosition(new Position(200, 600));
// Установить свойства текста
textFragment2.getTextState().setFontSize(12);
textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment2.getTextState().setRotation(45);
// Создать повернутый текстовый фрагмент
TextFragment textFragment3 = new TextFragment("rotated text");
textFragment3.setPosition(new Position(300, 600));
// Установить свойства текста
textFragment3.getTextState().setFontSize(12);
textFragment3.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment3.getTextState().setRotation(90);
// Создать объект TextBuilder
TextBuilder textBuilder = new TextBuilder(pdfPage);
// Добавить текстовый фрагмент на страницу PDF
textBuilder.appendText(textFragment1);
textBuilder.appendText(textFragment2);
textBuilder.appendText(textFragment3);
// Сохранить документ
pdfDocument.save("Rotate_Text_TextFragment.pdf");
Выход
Вращение текста PDF с использованием TextParagraph в Java
Вы также можете применить поворот к тексту при создании нового абзаца. Этого можно добиться с помощью класса TextParagraph. Ниже приведены шаги для применения поворота текста с помощью класса TextParagraph.
- Сначала создайте новый документ, используя класс Document.
- Затем добавьте страницу в документ и получите ссылку на нее с помощью метода Document.getPages().add().
- После этого создайте новый объект TextParagraph.
- Создайте новый текстовый фрагмент с помощью класса TextFragment и установите текст и шрифт.
- Установите угол поворота с помощью метода TextFragment.getTextState().setRotation().
- Добавьте текст в абзац, используя метод TextParagraph.appendLine(TextFragment).
- Создайте новый объект TextBuilder и инициализируйте его с помощью объекта Page.
- Используйте метод TextBuilder.appendParagraph(TextParagraph), чтобы добавить абзац на страницу.
- Наконец, сохраните документ PDF с помощью метода Document.save(string).
В следующем примере кода показано, как программно повернуть текст внутри абзаца в PDF.
// Инициализировать объект документа
Document pdfDocument = new Document();
// Получить конкретную страницу
Page pdfPage = (Page) pdfDocument.getPages().add();
// Создать текстовый абзац
TextParagraph paragraph = new TextParagraph();
paragraph.setPosition(new Position(200, 600));
// Создать текстовый фрагмент
TextFragment textFragment1 = new TextFragment("rotated text");
// Установить свойства текста
textFragment1.getTextState().setFontSize(12);
textFragment1.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
// Установить вращение
textFragment1.getTextState().setRotation(45);
// Создать текстовый фрагмент
TextFragment textFragment2 = new TextFragment("main text");
// Установить свойства текста
textFragment2.getTextState().setFontSize(12);
textFragment2.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
// Создать текстовый фрагмент
TextFragment textFragment3 = new TextFragment("another rotated text");
// Установить свойства текста
textFragment3.getTextState().setFontSize(12);
textFragment3.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
// Установить вращение
textFragment3.getTextState().setRotation(-45);
// Присоединить фрагменты текста к абзацу
paragraph.appendLine(textFragment1);
paragraph.appendLine(textFragment2);
paragraph.appendLine(textFragment3);
// Создать объект TextBuilder
TextBuilder textBuilder = new TextBuilder(pdfPage);
// Добавить текстовый абзац на страницу PDF
textBuilder.appendParagraph(paragraph);
// Сохранить документ
pdfDocument.save("Rotate_Text_TextParagraph.pdf");
Выход
Получите бесплатную лицензию API
Вы можете бесплатно попробовать Aspose.PDF для Java, получив временную лицензию.
Вывод
В этой статье вы узнали, как программно поворачивать текст в PDF с помощью Java. Мы рассмотрели, как повернуть текст с помощью классов TextFragment и TextParagraph. Кроме того, вы можете узнать больше об Aspose.PDF для Java, используя документацию. Если у вас возникнут какие-либо вопросы или вопросы, вы можете связаться с нами через наш форум.