最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 在PDF中繪制形狀的兩種方法

 更新時(shí)間:2020年07月10日 16:33:10   作者:Jazzz  
這篇文章主要介紹了Java 在 PDF 中繪制形狀的兩種實(shí)現(xiàn)方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

在我們編輯PDF文檔的過程中,有時(shí)候需要在文檔中添加一些如多邊形、矩形、橢圓形之類的圖形,而Free Spire PDF for Java 則正好可以幫助我們?cè)贘ava程序中通過代碼在PDF文檔中繪制形狀,以及設(shè)置形狀邊線顏色和填充色。

Jar包導(dǎo)入

方法一:下載Free Spire.PDF for Java包并解壓縮,然后將lib文件夾下的Spire.Pdf.jar包作為依賴項(xiàng)導(dǎo)入到Java應(yīng)用程序中

方法二:直接通過Maven倉(cāng)庫(kù)安裝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){
    //創(chuàng)建PDF文檔,并添加一頁(yè)
    PdfDocument pdf = new PdfDocument();
    PdfPageBase page = pdf.appendPage();

    //創(chuàng)建畫筆、畫刷
    PdfPen pen =new PdfPen(new PdfRGBColor(Color.black),0.3);
    PdfBrush brush= PdfBrushes.getGreenYellow();

    //繪制矩形
    Rectangle2D.Float rect1 = new Rectangle2D.Float(0, 20, 120, 50);//創(chuàng)建Rectangle2D對(duì)象,并指定圖形在PDF頁(yè)面中的大小、位置
    PdfLinearGradientBrush linearGradientBrush = new PdfLinearGradientBrush(rect1,new PdfRGBColor(Color.pink),new PdfRGBColor(Color.YELLOW),PdfLinearGradientMode.Horizontal);//填充圖形顏色
    page.getCanvas().drawRectangle(linearGradientBrush, rect1);//繪制矩形到頁(yè)面

    //繪制橢圓
    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);
  }
}

效果圖

以上就是Java 在PDF中繪制形狀的兩種方法的詳細(xì)內(nèi)容,更多關(guān)于Java 在PDF中繪制形狀的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • log4j2的異步使用及添加自定義參數(shù)方式

    log4j2的異步使用及添加自定義參數(shù)方式

    這篇文章主要介紹了log4j2的異步使用及添加自定義參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • springboot整合Shiro

    springboot整合Shiro

    這篇文章主要介紹了SpringBoot整合Shiro一些方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • 淺談一下Java的線程并發(fā)

    淺談一下Java的線程并發(fā)

    大家好,本篇文章主要講的是淺談一下Java的線程并發(fā),感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • Java內(nèi)部類原理與用法實(shí)例總結(jié)

    Java內(nèi)部類原理與用法實(shí)例總結(jié)

    這篇文章主要介紹了Java內(nèi)部類原理與用法,結(jié)合實(shí)例形式總結(jié)分析了非靜態(tài)內(nèi)部類、靜態(tài)內(nèi)部類、局部類等相關(guān)概念、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-08-08
  • SpringBoot返回中文亂碼問題解決方法匯總

    SpringBoot返回中文亂碼問題解決方法匯總

    這幾天在使用Spring Boot學(xué)習(xí)AOP原理的時(shí)候,通過瀏覽器訪問后端接口的時(shí)候,響應(yīng)報(bào)文總是出現(xiàn)中文亂碼問題,下面這篇文章主要給大家介紹了關(guān)于SpringBoot返回中文亂碼問題解決方法,需要的朋友可以參考下
    2023-06-06
  • SpringBoot中使用spring-retry 解決失敗重試調(diào)用

    SpringBoot中使用spring-retry 解決失敗重試調(diào)用

    本文主要介紹了SpringBoot中使用spring-retry 解決失敗重試調(diào)用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • SpringBoot實(shí)現(xiàn)點(diǎn)餐系統(tǒng)的登錄與退出功能流程詳解

    SpringBoot實(shí)現(xiàn)點(diǎn)餐系統(tǒng)的登錄與退出功能流程詳解

    結(jié)束了Springboot+MyBatisPlus也是開始了項(xiàng)目之旅,將從后端的角度出發(fā)來整理這個(gè)項(xiàng)目中重點(diǎn)業(yè)務(wù)功能的梳理與實(shí)現(xiàn)
    2022-10-10
  • Java使用Request獲取請(qǐng)求參數(shù)的通用方式詳解

    Java使用Request獲取請(qǐng)求參數(shù)的通用方式詳解

    這篇文章主要給大家介紹了關(guān)于Java使用Request獲取請(qǐng)求參數(shù)的通用方式,在Java后端開發(fā)中第一步就是獲取前端傳過來的請(qǐng)求參數(shù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Java實(shí)現(xiàn)Word/Pdf/TXT轉(zhuǎn)html的示例

    Java實(shí)現(xiàn)Word/Pdf/TXT轉(zhuǎn)html的示例

    這篇文章主要介紹了Java實(shí)現(xiàn)Word/Pdf/TXT轉(zhuǎn)html的示例,幫助大家方便的進(jìn)行文件格式轉(zhuǎn)換,完成需求,感興趣的朋友可以了解下
    2020-11-11
  • 詳解SimpleDateFormat的線程安全問題與解決方案

    詳解SimpleDateFormat的線程安全問題與解決方案

    這篇文章主要介紹了SimpleDateFormat的線程安全問題與解決方案,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03

最新評(píng)論

那坡县| 逊克县| 满城县| 河池市| 吉隆县| 河曲县| 广德县| 西畴县| 息烽县| 江华| 理塘县| 行唐县| 怀远县| 赤水市| 闽清县| 东丽区| 包头市| 克拉玛依市| 清流县| 绥滨县| 南宁市| 怀集县| 郧西县| 广东省| 凉城县| 南川市| 应城市| 通州区| 临泉县| 海林市| 图木舒克市| 聊城市| 庆元县| 乌拉特中旗| 石家庄市| 新乐市| 平阴县| 保康县| 云梦县| 太仓市| 揭阳市|