亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Java 在PDF文檔中繪制圖形

標簽:
Java

本篇文档将介绍通过Java编程在PDF文档中绘制图形的方法。包括绘制矩形、椭圆形、不规则多边形、线条、弧线、曲线、扇形等等。针对以下方法中提供的思路,也可以自行变换图形设计思路,如菱形、梯形或者组合图形等。

使用工具:Free Spire.PDF for Java V2.2.2(免费版)

获取方法1:通过官网下载使用

步骤1将安装包中lib文件夹下的jar文件(如下图)复制到程序中新建的文件夹中(这里在程序中可新建一个文件夹并命名为Lib)

https://img1.sycdn.imooc.com//5cac4d6b0001f43d06170261.jpg

步骤2复制文件后,将文件添加引用到程序:选中这个jar文件,点击鼠标右键,选择“Build Path” – “Add to Build Path”。完成引用。

https://img1.sycdn.imooc.com//5cac4d860001da8f03660284.jpg

获取方法2:通过maven安装使用。参见“从maven安装方法


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对象,并指定图形在PDF页面中的大小、位置
    Rectangle2D.Float rect1 = new Rectangle2D.Float(0, 20, 120, 50);
    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);          
    }
  }

完成代码后,运行程序,生成文档。(如下图)

https://img1.sycdn.imooc.com//5cac50c0000111f206170348.jpg

(本文完)

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
9
獲贊與收藏
48

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消