本篇文档将介绍通过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);
}
}

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

(本文完)

转载请注明出处!!

Java 在PDF文档中绘制图形的更多相关文章

  1. Java生成PDF文档(表格、列表、添加图片等)

    需要的两个包及下载地址: (1)iText.jar:http://download.csdn.net/source/296416 (2)iTextAsian.jar(用来进行中文的转换):http:/ ...

  2. C# 在PDF文档中应用多种不同字体

    在PDF文档中,可绘制不同字体样式.不同语言的文字,可通过使用Standard字体.TrueType字体.CJK字体或者自定义(私有)等字体类型.下面通过C#程序代码来展示如何实现使用以上类型的字体来 ...

  3. 如何使用免费PDF控件从PDF文档中提取文本和图片

             如何使用免费PDF控件从PDF文档中提取文本和图片 概要 现在手头的项目有一个需求是从PDF文档中提取文本和图片,我以前也使用过像iTextSharp, PDFBox 这些免费的PD ...

  4. 利用java从docx文档中提取文本内容

    利用java从docx文档中提取文本内容 使用Apache的第三方jar包,地址为https://poi.apache.org/ docx文档内容如图: 目录结构: 每个文件夹的名称为日期加上来源,例 ...

  5. 如何突出显示PDF文档中的一些重要文本信息

    PDF文档中如果存在着太多的文字时,阅读者会容易遗漏很多重要的信息.但如果,文档中存在着一些特殊标记的文字时,比如标黄.标红文本时,很多人都会给予特别关注. 因此,当大家在使用pdfFactory专业 ...

  6. Java 复制PDF文档的2种方法

    本文将介绍通过Java程序来复制PDF页面,包括: 跨文档复制,即从文档1复制到文档2 在同一文档内复制,即从页面A复制到页面B 使用工具:Free Spire.PDF for Java (免费版) ...

  7. [开源框架推荐]Icepdf:纯java的pdf文档的提取和转换库

    ICEpdf 是一个轻量级的开源 Java 语言的 PDF 类库.通过 ICEpdf 可以用来浏览.内容提取和转换 PDF 文档,而无须一些本地PDF库的支持. 可以用来做什么? 1.从pdf文件中提 ...

  8. Java 设置PDF文档背景色

    一般生成的PDF文档默认的文档底色为白色,我们可以通过一定方法来更改文档的背景色,以达到文档美化以及保护双眼的作用. 以下内容提供了Java编程来设置PDF背景色的方法.包括: 设置纯色背景色 设置图 ...

  9. Java 设置PDF文档背景——单色背景、图片背景

    一般生成的PDF文档默认的文档底色为白色,我们可以通过一定方法来更改文档的背景色,以达到文档美化的作用. 以下内容提供了Java编程来设置PDF背景色的方法.包括2种设置方法: 设置纯色背景色 设置图 ...

随机推荐

  1. 关于DataSet中Relations的应用

    using System; using System.Collections.Generic; using System.Text; using System.Data; namespace conn ...

  2. Hello Django

    首先安装Django: 1.cmd界面,输入"pip3 install django" 2.输入"django-admin help",如下图表示安装成功   ...

  3. xml、网络编程、 反射

    XML 常用于配置文件.传输数据. <?xml version="1.0" encoding="UTF-8"?><persons> &l ...

  4. 利用vue-router和compoment重构代码--踩坑(一)

    业务主要功能 获取所有的数据库列表 点击某一个数据库列表的时候,右侧分页展示数据 点击右侧某一条数据的时候,现实数据详情 以下是之前的页面,存在以下问题: 前段开发没有工程化(webpack) 主要功 ...

  5. 小马哥Python知识体系

    从今天起,小马哥每天都发表一篇关于Python的博文,知识范围由Python的0基础,逐渐到项目应用. 目的: 在分享中学习 每天的新博文都会加入到这里成为超链接,方便各位点击查阅. Python基础 ...

  6. k8s 各种网络方案 - 每天5分钟玩转 Docker 容器技术(170)

    网络模型有了,如何实现呢? 为了保证网络方案的标准化.扩展性和灵活性,Kubernetes 采用了 Container Networking Interface(CNI)规范. CNI 是由 Core ...

  7. Python Redis 的安装

    安装 可以去pypi上找到redis的Python模块: http://pypi.python.org/pypi?%3Aaction=search&term=redis&submit= ...

  8. 『网络の转载』关于初学者上传文件到github的方法

    说来也惭愧,我是最近开始用github,小白一个,昨天研究了一个下午.终于可以上传了,所以今天写点,一来分享是自己的一些经验,二来也是做个记录,万一哪天又不记得了:) 废话不多说,直接来,这次主要介绍 ...

  9. Python中str()与repr()函数的区别

    在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即str()或者 repr() . >>> a = 10 >>> type(str(a ...

  10. mac下安装Maven和配置环境变量

    1.下载maven包: 下载链接: