基於Java實現PDF文字旋轉傾斜
阿新 • • 發佈:2020-05-19
本文介紹通過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); } }
設定結果:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。