Java — Вставка или чтение WordArt в документах Word

WordArt — это набор текстовых стилей, позволяющий добавлять в текст такие элементы оформления, как заливки, контуры и тени. Вставка WordArt — это отличный способ сделать текст выделяющимся и привлекающим внимание. При создании документа в Microsoft Word иногда возникает необходимость вставить WordArt. В этой статье мы расскажем, как вставлять или читать WordArt в документах Word на Java с помощью библиотеки Free Spire.Doc for Java.

Добавление зависимостей

Прежде чем приступить к кодированию, вам необходимо добавить необходимые зависимости для включения Free Spire.Doc for Java в ваш Java-проект. Это можно сделать двумя способами.

Способ 1: Если вы используете maven, вы можете легко импортировать JAR-файл Free Spire.Doc for Java в ваше приложение, добавив следующий код в файл pom.xml вашего проекта.

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc.free</artifactId>
        <version>5.2.0</version>
    </dependency>
</dependencies>
Вход в полноэкранный режим Выйти из полноэкранного режима

Способ 2: Если вы не используете maven, вы можете скачать Free Spire.Doc for Java по этой ссылке, распаковать zip-файл, а затем импортировать файл Spire.Doc.jar из папки lib в ваш проект в качестве зависимости.

Вставка WordArt в Word с помощью Java

Ниже перечислены основные шаги для вставки WordArt в документ Word:

  • Создайте экземпляр класса Document.
  • Загрузите документ Word с помощью метода Document.loadFromFile().
  • Получите нужный раздел документа с помощью метода Document.getSections().get(sectionIndex).
  • Добавьте абзац в раздел с помощью метода Section.addParagraph().
  • Добавьте к абзацу фигуру указанного размера и типа с помощью метода Paragraph.appendShape().
  • Задайте позицию для фигуры.
  • Вставьте WordArt с заданным текстом в фигуру с помощью метода ShapeObject.getWordArt().setText().
  • Установите цвет заливки и цвет границы для WordArt.
  • Сохраните полученный документ с помощью метода Document.saveToFile().
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.ShapeType;
import com.spire.doc.fields.ShapeObject;

import java.awt.*;

public class InsertWordArtInWord {
    public static void main(String[] args){
        //Create a Document instance
        Document doc = new Document();
        //Load a Word document
        doc.loadFromFile("input.docx");

        //Get the first section
        Section section = doc.getSections().get(0);
        //Add a paragraph to the section
        Paragraph paragraph = section.addParagraph();

        //Add a shape to the paragraph
        ShapeObject shape = paragraph.appendShape(250, 70, ShapeType.Text_Wave_3);

        //Set the position of the shape
        shape.setVerticalPosition(20);
        shape.setHorizontalPosition(80);

        //Set the text of WordArt
        shape.getWordArt().setText("Happy Birthday");

        //Set the fill color
        shape.setFillColor(Color.orange);

        //Set the border color of the text.
        shape.setStrokeColor(Color.YELLOW);

        //Save the result document
        doc.saveToFile("InsertWordArt.docx", FileFormat.Docx);
    }
}
Вход в полноэкранный режим Выход из полноэкранного режима

Чтение WordArt в Word с помощью Java

Ниже перечислены основные шаги для чтения WordArt в документе Word:

  • Создайте экземпляр класса Document.
  • Загрузите документ Word с помощью метода Document.loadFromFile().
  • Пройдитесь по всем разделам документа.
  • Пройдитесь по всем параграфам в каждом разделе.
  • Пройдитесь по всем дочерним объектам в каждом абзаце.
  • Определите, является ли дочерний объект объектом ShapeObject.
  • Получите текст WordArt в объекте формы с помощью метода ShapeObject.getWordArt().getText().
  • Если текст не равен null, выведите его на консоль.
import com.spire.doc.Document;
import com.spire.doc.DocumentObject;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.ShapeObject;

public class ReadWordArt {
    public static void main(String[] args){
        //Create a Document instance
        Document doc = new Document();
        //Load a word document
        doc.loadFromFile("InsertWordArt.docx");

        //Loop through all the sections in the document
        for (Section section :(Iterable<? extends Section>) doc.getSections()) {
            //Loop through all the paragraphs in each section
            for (Paragraph paragraph : (Iterable<? extends Paragraph>) section.getBody().getParagraphs()) {
                //Loop through all the child objects in each paragraph
                for (DocumentObject documentObject : (Iterable<? extends DocumentObject>) paragraph.getChildObjects()) {
                    //Detect if the child object is a shape
                    if (documentObject instanceof ShapeObject) {
                        ShapeObject shapeObject = (ShapeObject) documentObject;
                        //Detect if the shape is a WordArt
                        String text = shapeObject.getWordArt().getText();
                        if (text != "") {
                            //Read the WordArt text
                            System.out.println("WordArt Text:" + text);
                        }
                    }
                }
            }
        }
    }
}
Вход в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий