Java--PDF에서 회전된 텍스트 그리기

Java--PDF에서 회전된 텍스트 그리기

2022-10-19 last update

13 minutes reading programming pdf java api
특정 상황에서는 회전된 텍스트가 있는 PDF 문서를 만들어야 할 수 있으며 이 기사에서는 무료 Java API를 사용하여 프로그래밍 방식으로 이 작업을 수행하는 방법을 공유합니다.

설치



사용된 무료 API는 Java용 Free Spire.PDF이며, 제품을 설치하는 방법은 2가지가 있습니다.
방법 1: Download 압축을 풉니다. 그런 다음 Spire.Pdf.jar 파일을 프로젝트에 종속성으로 추가합니다.

방법 2: pom.xml에 다음 구성을 추가하여 jar 종속성을 maven 프로젝트에 직접 추가합니다.

<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.pdf.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>


샘플 코드
Java용 무료 Spire.PDF를 사용하면 시계 방향 또는 시계 반대 방향으로 다른 각도로 회전된 텍스트를 그릴 수 있습니다. 전체 샘플 코드는 아래에 나와 있습니다.

import com.spire.pdf.*;
import com.spire.pdf.graphics.*;

import java.awt.*;

public class drawRotatedText {
    public static void main(String[] args) {
        //Create a pdf document
        PdfDocument doc = new PdfDocument();

        //Add a new page
        PdfPageBase page = doc.getPages().add();

        //Set text font, size and color
        PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 10f);
        PdfSolidBrush brush = new PdfSolidBrush(new PdfRGBColor(Color.BLUE));
        PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.RED));
        String text = "Draw Rotated text in PDF";

        //Set the text position
        page.getCanvas().drawString(text, font, brush, 20, 30);
        page.getCanvas().drawString(text, font, brush, 20, 200);

        //Save graphics state
        PdfGraphicsState state = page.getCanvas().save();
        Point point1 = new Point(20, 0);

        //Draw the text - transform
        page.getCanvas().translateTransform(20, 30);
        //Rotate 90 degrees clockwise
        page.getCanvas().rotateTransform(90);

        page.getCanvas().drawString(text, font, brush1, point1);
        //Restore graphics
        page.getCanvas().restore(state);
        //Redrawing a new text requires initializing a new state
        PdfGraphicsState state2 = page.getCanvas().save();

        Point point2 = new Point(20, 0);
        page.getCanvas().translateTransform(20, 200);
        //Rotate 90 degrees counterclockwise
        page.getCanvas().rotateTransform(-90);

        page.getCanvas().drawString(text, font, brush, point2);

        //Redrawing a new text requires initializing a new state
        PdfGraphicsState state3 = page.getCanvas().save();

        Point point3 = new Point(20, 0);
        page.getCanvas().translateTransform(20, 0);

        //Rotate 60 degrees clockwise
        page.getCanvas().rotateTransform(60);

        page.getCanvas().drawString(text, font, brush, point3);

        //Redrawing a new text requires initializing a new state
        PdfGraphicsState state4 = page.getCanvas().save();

        Point point4 = new Point(20, 0);
        page.getCanvas().translateTransform(20, 0);

        //Rotate 30 degrees counterclockwise
        page.getCanvas().rotateTransform(-30);

        page.getCanvas().drawString(text, font, brush1, point4);

        //Save the result file
        doc.saveToFile("drawRotatedText.pdf");
    }
}