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

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

설치



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

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

<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");
    }
}


좋은 웹페이지 즐겨찾기