在我們編輯PDF檔案的程序中,有時候需要在檔案中添加一些如多邊形、矩形、橢圓形之類的圖形,而Free Spire PDF for Java 則正好可以幫助我們在Java程式中通過代碼在PDF檔案中繪制形狀,以及設定形狀邊線顏色和填充色,
Jar包匯入
方法一:下載Free Spire.PDF for Java包并解壓縮,然后將lib檔案夾下的Spire.Pdf.jar包作為依賴項匯入到Java應用程式中
方法二:直接通過Maven倉庫安裝JAR包,配置pom.xml檔案的代碼如下:
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf.free</artifactId>
<version>2.6.3</version>
</dependency>
</dependencies>
Java代碼
import com.spire.pdf.*; import com.spire.pdf.graphics.*; import java.awt.*; import java.awt.geom.Rectangle2D; public class DrawShapes { public static void main(String[]args){ //創建PDF檔案,并添加一頁 PdfDocument pdf = new PdfDocument(); PdfPageBase page = pdf.appendPage(); //創建畫筆、畫刷 PdfPen pen =new PdfPen(new PdfRGBColor(Color.black),0.3); PdfBrush brush= PdfBrushes.getGreenYellow(); //繪制矩形 Rectangle2D.Float rect1 = new Rectangle2D.Float(0, 20, 120, 50);//創建Rectangle2D物件,并指定圖形在PDF頁面中的大小、位置 PdfLinearGradientBrush linearGradientBrush = new PdfLinearGradientBrush(rect1,new PdfRGBColor(Color.pink),new PdfRGBColor(Color.YELLOW),PdfLinearGradientMode.Horizontal);//填充圖形顏色 page.getCanvas().drawRectangle(linearGradientBrush, rect1);//繪制矩形到頁面 //繪制橢圓 Point centerStart= new Point(205,45); Point centerEnd= new Point(205,45); PdfRadialGradientBrush radialGradientBrush = new PdfRadialGradientBrush(centerStart,0,centerEnd,60,new PdfRGBColor(Color.white),new PdfRGBColor(Color.cyan)); Rectangle2D.Float rect2= new Rectangle2D.Float(180, 20, 50, 50); page.getCanvas().drawEllipse(radialGradientBrush,rect2); //繪制多邊形 Point p1=new Point(290,70); Point p2=new Point(310,45); Point p3=new Point(325,60); Point p4=new Point(340,20); Point p5=new Point(370,70); Point[] points = {p1, p2, p3, p4, p5}; page.getCanvas().drawPolygon(pen,brush, points); //繪制弧形 float startAngle = 0; float sweepAngle = 270; Rectangle2D.Float rect3= new Rectangle2D.Float(0, 110, 50, 50); page.getCanvas().drawArc(pen, rect3, startAngle, sweepAngle); //繪制扇形 Rectangle2D.Float rect4= new Rectangle2D.Float(70, 110, 50, 50); page.getCanvas().drawPie(pen, rect4, startAngle, sweepAngle); //繪制兩條垂直交叉的直線 Point pStart1=new Point(205,110); Point pEnd1=new Point(205,160); page.getCanvas().drawLine(pen, pStart1, pEnd1); Point pStart2=new Point(180,135); Point pEnd2=new Point(230,135); page.getCanvas().drawLine(pen, pStart2, pEnd2); //繪制貝塞爾曲線 Point startPoint = new Point(290, 135); Point firstControlPoint = new Point(330, 70); Point secondControlPoint = new Point(330, 200); Point endPoint = new Point(370, 135); page.getCanvas().drawBezier(pen, startPoint, firstControlPoint, secondControlPoint, endPoint); //保存檔案 pdf.saveToFile("DrawShapes.pdf",FileFormat.PDF); } }

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/146907.html
標籤:Java
上一篇:圖的基本概念
