Java 設置PDF中的文本旋轉、傾斜


本文介紹通過Java程序在PDF文檔中設置文本旋轉、傾斜的方法。設置文本傾斜時,通過定義方法TransformText(page);並設置page.getCanvas().skewTransform(float angleX, float angleY);
來實現文本傾斜;設置文本旋轉時,通過定義方法RotateText(page);並設置page.getCanvas().rotateTransform(float angle);來實現文本旋轉。詳細代碼示例參考以下內容。
注:需要使用PDF類庫工具Spire.PDF for Java,可下載jar,並解壓將lib文件夾下的jar文件導入java程序,或者通過maven倉庫下載導入

Java示例

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

import java.awt.*;

public class TextStyle {
    public static void main(String[] args) {
        //創建PDF文檔,添加一頁
        PdfDocument pdf = new PdfDocument();
        PdfPageBase page = pdf.appendPage();

        //設置文本傾斜
        TransformText(page);

        //旋轉文本
        RotateText(page);

        //保存文檔
        pdf.saveToFile("DrawText.pdf",FileFormat.PDF);
        pdf.close();
    }

    //自定義方法在頁面添加文本,並設置文本偏移
    private static void TransformText(PdfPageBase page)
    {
        PdfGraphicsState state = page.getCanvas().save();//保存畫布狀態
        PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 18f);//創建字體,包括字體、字號等

        //創建三個畫刷,並指定顏色
        PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(new Color(60,179,113)));
        PdfSolidBrush brush2 = new PdfSolidBrush(new PdfRGBColor(new Color(139,0,139)));
        PdfSolidBrush brush3 = new PdfSolidBrush(new PdfRGBColor(new Color(205,92,92)));

        page.getCanvas().translateTransform(20,120);//設置文本在畫布中的坐標位置
        page.getCanvas().scaleTransform(1f,1f);//設置文本大小(scaleX值越大,文本越向右橫向拉伸;scaleY值越大,文本越向上縱向拉伸)
        page.getCanvas().skewTransform(-10,0);//設置文本偏轉角度(angleX值為文本整體偏移角度,angleY值為字符偏移角度)
        page.getCanvas().drawString("Go! Turn Around! Go! Go! Go!", font, brush1, 0, 0);//繪制文本

        page.getCanvas().skewTransform(10, 10);
        page.getCanvas().drawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, 0);//繪制文本

        page.getCanvas().scaleTransform(1f, -2f);
        page.getCanvas().drawString("Go! Turn Around! Go! Go! Go!", font, brush3, 0, -2 * 18);//繪制文本

        //再次保存畫布狀態
        page.getCanvas().restore(state);
    }

    //自定義方法在頁面添加文本,並設置文本旋轉
    private static void RotateText(PdfPageBase page)
    {
        PdfGraphicsState state = page.getCanvas().save();//保存畫布狀態

        PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 10f);//創建字體
        PdfSolidBrush brush4 = new PdfSolidBrush(new PdfRGBColor(139,69,19));//創建畫刷4

        PdfStringFormat centerAlignment = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);//設置文本對齊方式

        //指定文本在畫布中的坐標位置
        float x = (float) (page.getCanvas().getClientSize().getWidth()/2);
        float y = 390;
        page.getCanvas().translateTransform(x,y);

        //循環繪制12條文本內容,並設置每條文本內容間隔30度,即每一條文本內容以繪制的上一文本內容旋轉30度(這里如只需繪制單個文本,直接指定旋轉角度即可)
        for (int i = 0; i < 12; i++) {
            page.getCanvas().rotateTransform(30);
            page.getCanvas().drawString("Go! Turn Around! Go! Go! Go!", font, brush4, 20, 0, centerAlignment);
        }

        //再次保存畫布狀態
        page.getCanvas().restore(state);
    }
}

設置結果:

 

(完)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM