1. 程式人生 > 程式設計 >基於Java實現PDF文字旋轉傾斜

基於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包並解壓,並解壓將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,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);//繪製文字

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

    page.getCanvas().scaleTransform(1f,-2f);
    page.getCanvas().drawString("Go! Turn Around! Go! Go! Go!",brush3,-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!",brush4,20,centerAlignment);
    }

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

設定結果:

基於Java實現PDF文字旋轉傾斜

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。