Java 在PDF中绘制形状的两种方法

在我们编辑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);
  }
}

效果图

以上就是Java 在PDF中绘制形状的两种方法的详细内容,更多关于Java 在PDF中绘制形状的资料请关注我们其它相关文章

时间:2020-07-10

基于Java实现PDF文本旋转倾斜

本文介绍通过Java程序在PDF文档中设置文本旋转.倾斜的方法.设置文本倾斜时,通过定义方法TransformText(page);并设置page.getCanvas().skewTransform(float angleX, float angleY); 来实现文本倾斜:设置文本旋转时,通过定义方法RotateText(page);并设置page.getCanvas().rotateTransform(float angle);来实现文本旋转.详细代码示例参考以下内容. 注:需要使用PDF类库

Java查找并高亮PDF文本过程解析

本文将介绍如何通过Java程序来查找并高亮PDF中的文本. 使用工具:Free Spire.PDF for Java(免费版) Jar文件获取及导入: 方法1:官网下载Jar文件包.下载后,解压,并将lib文件夹下的Spire.Pdf.jar文件导入到java程序.参考如下导入效果: 方法2:可通过maven仓库导入. Java代码示例 import com.spire.pdf.*; import com.spire.pdf.general.find.PdfTextFind; import ja

三种Java打印PDF文档的实例代码

以下内容归纳了通过Java程序打印PDF文档时的3种情形.即: 1 静默打印 2 显示打印对话框打印 3 打印PDF时自定义纸张大小 使用工具:Spire.PDF for Java Jar文件获取及导入: 方法1:下载jar包.下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar导入java程序. 方法2:可通过maven库导入.参考导入方法. Java代码示例 [示例1]静默打印 即通过使用默认打印机直接打印PDF文档.打印时,我们可以设置打印份数,设置纸张打印页边距等. impo

Java 读取PDF中的文本和图片的方法

本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法.分别调用方法extractText()和extractImages()来读取. 使用工具:Free Spire.PDF for Java(免费版) Jar文件获取导入: 方法1:通过官网下载jar文件包.下载后,解压文件,并将lib文件夹下的Spire.Pdf.jar文件导入java程序.导入后如下图: 方法2: 可通过maven仓库安装导入. Java代码示例 import com.spire.pdf.*; import java

java pdf加水印的方法

本文实例为大家分享了java pdf加水印的具体代码,供大家参考,具体内容如下 引入依赖 <dependency> <groupId>com.itextpdf.tool</groupId> <artifactId>xmlworker</artifactId> <version>5.5.10</version> </dependency> <dependency> <groupId>com

java实现word文档转pdf并添加水印的方法详解

本文实例讲述了java实现word文档转pdf并添加水印的方法.分享给大家供大家参考,具体如下: 前段时间,项目需要自动生成word文档,用WordFreeMarker生成word文档后,又要求生成的文档能在浏览器浏览,思来想去,把word文档转成pdf就好了,于是乎研究了一下. 将word文档转化为PDF是项目中常见的需求之一,目前主流的方法可以分为两大类,一类是利用各种Office应用进行转换,譬如Microsoft Office.WPS以及LiberOffice,另一种是利用各种语言提供的

如何通过Java打印Word文档

这篇文章主要介绍了如何通过Java打印Word文档,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Java 打印Word文档 本文介绍如何在Java程序中通过物理打印机和虚拟打印机来打印Word文档的方法.文中使用了类库Spire.Doc for Java,可通过 官网下载jar文件并导入程序或者直接通过maven仓库安装导入. [示例1]通过物理打印机打印 import com.spire.doc.Document; import com.s

Java 替换word文档文字并指定位置插入图片

Java 在PDF中绘制形状的两种方法

先说下 需要的依赖包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-excelant</artifactId> <version>3.12</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <arti

Java 在 Word 文档中使用新文本替换指定文本的方法

创作一份文案,经常会高频率地使用某些词汇,如地名.人名.人物职位等,若表述有误,就需要整体撤换.文本将介绍如何使用Spire.Doc for Java,在Java程序中对Word文档中的指定文本进行替换. 工具/原料 Free Spire.Doc for Java(免费版) IntelliJ IDEA Jar文件获取及导入 方法1:先从官网下载jar包. 导入步骤: 下载后,解压文件,并将lib文件夹下的Spire.Doc.jar文件导入java程序.参考如下导入效果: 方法2:可通过maven

asp.net实现word文档在线预览功能的方法

Java 在PDF中绘制形状的两种方法

本文实例讲述了asp.net实现word文档在线预览功能的方法.分享给大家供大家参考.具体实现方法如下: 实现方式:office文档转html,再在浏览器里面在线浏览 1.首先引入com组件中office库,然后在程序集扩展中引入word的dll 2.将Microsoft.Office.Interop.Word的嵌入互操作类型设置为 false,如图 3.主要代码: 复制代码 代码如下: using System; using System.Collections.Generic; using

python-docx修改已存在的Word文档的表格的字体格式方法

搞了好几天的表格字体格式,一直想找一种能直接一次性修改表格所有字体格式的方法(函数),但是无论用什么方法都无法修改表格字体的格式,原因应该是已存在的文档本身就具有某种格式限制,制约着里面表格里面字体格式的更改,直接用类似:table.style.font.name=’Arial’,table.style.font.size = 120000-.之类的函数是不能更改表格的字体格式的(PS:可能该功能在开发中,也可能我没找到对应直接修改整个表格里面字体的方法) 但是后来发现表格里面用run = ad

Java Spring MVC 上传下载文件配置及controller方法详解

下载: 1.在spring-mvc中配置(用于100M以下的文件下载) <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <!–配置下载返回类型–> <bean class="or

Java在线打开word文档并强制留痕的方法

前言: 在OA系统中,时不时的都会伴随着文档流转过程. 比如有的系统中会有领导审批的流程,那么在A领导审批完成后,他的审批痕迹能不能强制保留下来,以供下一步处理文档的专员清晰地参考呢? 我们知道,在本地office打开的文档中,如果点击 审阅—修订,就会将编辑的记录跟踪下来留下痕迹. 我们在线办公的系统中能不能直接将这一步由我们系统来做,避免出现用户操作不一致最终没留下痕迹的现象呢? 这些需求在分析后看似很复杂,甚至想要实现时摸不着头脑. 本篇文章直接介绍一个中间件技术—–pageof

asp.net下用Aspose.Words for .NET动态生成word文档中的数据表格的方法

Java 在PDF中绘制形状的两种方法

1.概述 最近项目中有一个这样的需求:导出word 文档,要求这个文档的格式不是固定的,用户可以随便的调整,导出内容中的数据表格列是动态的,例如要求导出姓名和性别,你就要导出这两列的数据,而且这个文档不是导出来之后再调整而是导出来后已经是调整过了的.看到这里,您也许马上想到用模板导出!而且.NET中自带有这个组件:Microsoft.Office.Interop.Word,暂且可以满足需求吧.但这个组件也是有局限性的,例如客户端必须装 office组件,而且编码复杂度高.最麻烦的需求是后面那个-

python文档字符串(函数使用说明)使用详解

Java 在PDF中绘制形状的两种方法

1.效果图: 2.代码: # 文档字符串( doc str) 是 函数使用说明 # 用法: 在函数第一行写一个字符串 def fn(*nums): ”’ 函数的作用: 计算任意数值的总和 函数的参数: *nums 会接受所有传进来的值,保存到一个元组中(装包) ”’ print(nums,type(nums)) #定义一个变量,用来保存总和 result = 0 for n in nums: result += n return result print(fn(2,5,7,8)) 拓展: h

原文 

https://www.zhangshengrong.com/p/OQNzrpmbNR/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Java 在PDF中绘制形状的两种方法

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址