Java 在PDF文檔中繪制圖形


本篇文檔將介紹通過Java編程在PDF文檔中繪制圖形的方法。包括繪制矩形、橢圓形、不規則多邊形、線條、弧線、曲線、扇形等等。針對方法中提供的思路,也可以自行變換圖形設計思路,如菱形、梯形或者組合圖形等。

使用工具:Free Spire.PDF for Java(免費版)

Jar文件導入:

步驟1將安裝包中lib文件夾下的兩個文件復制到程序中新建的文件夾中(這里在程序中可新建一個文件夾並命名為Lib)

步驟2復制文件后,將兩個添加引用到程序:選中這兩個jar文件,點擊鼠標右鍵,選擇“Build Path” – “Add to Build Path”。完成引用。

 

Java代碼示例(供參考)

import java.awt.Color;
import java.awt.Point;
import java.awt.geom.Rectangle2D;

import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;

public class DrawShapes {

    public static void main(String[] args) {
        
        //創建PdfDocument對象
        PdfDocument doc = new PdfDocument();
        
        //添加一頁
        PdfPageBase page = doc.getPages().add();      
        
        //創建畫筆、畫刷
        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 pStart=new Point(205,110);
        Point pEnd=new Point(205,160);
        page.getCanvas().drawLine(pen, pStart, pEnd);
  
        //繪制貝塞爾曲線
        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);
                              
        //保存文檔
        doc.saveToFile("DrawShapes.pdf",FileFormat.PDF);       
    }
}

完成代碼后,運行程序,生成文檔。(如下圖)

 

(本文完)

轉載請注明出處!!


免責聲明!

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



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