java pdf绘图_Java 在PDF文档中绘制图形
本篇文档将介绍通过Java编程在PDF文档中绘制图形的方法。包括绘制矩形、椭圆形、不规则多边形、线条、弧线、曲线、扇形等等。针对方法中提供的思路,也可以自行变换图形设计思路,如菱形、梯形或者组合图形等。
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绘图_Java 在PDF文档中绘制图形相关推荐
- java 绘制pdf_Java 在PDF文档中绘制图形
本篇文档将介绍通过Java编程在PDF文档中绘制图形的方法.包括绘制矩形.椭圆形.不规则多边形.线条.弧线.曲线.扇形等等.针对方法中提供的思路,也可以自行变换图形设计思路,如菱形.梯形或者组合图形等 ...
- java gui 艺术字_Java 在Word文档中添加艺术字
与普通文字相比,艺术字更加美观有趣也更具有辨识度,常见于一些设计精美的杂志或宣传海报中.我们在日常工作中编辑Word文档时,也可以通过添加艺术字体来凸显文章的重点,美化页面排版.这篇文章将介绍如何使用 ...
- java显示艺术字_Java 在Word文档中添加艺术字的示例
与普通文字相比,艺术字更加美观有趣也更具有辨识度,常见于一些设计精美的杂志或宣传海报中.我们在日常工作中编辑Word文档时,也可以通过添加艺术字体来凸显文章的重点,美化页面排版.这篇文章将介绍如何使用 ...
- 怎么批量删除 Word、PDF、PPT 以及 Excel 文档中的空白页?
概要:「我的ABC软件工具箱」提供了删除空白页的功能,轻轻松松就可以实现批量删除文档中的空白页.目前支持 Word.PDF.PPT 以及 Excel 等格式文件文件.操作非常的方便,处理也非常高效! ...
- java文档打印_java 如何读取文档中的内容 并打印
java 如何读取文档中的内容 并打印 关注:230 答案:2 信息版本:手机版 电脑版 解决时间 2021-01-25 16:31 提问者非莪莫属 2021-01-25 04:31 java 如 ...
- java设置标签艺术字体颜色_Java 在Word文档中添加艺术字
与普通文字相比,艺术字更加美观有趣也更具有辨识度,常见于一些设计精美的杂志或宣传海报中.我们在日常工作中编辑Word文档时,也可以通过添加艺术字体来凸显文章的重点,美化页面排版.这篇文章将介绍如何使用 ...
- java 艺术字_Java 在Word文档中添加艺术字的示例
与普通文字相比,艺术字更加美观有趣也更具有辨识度,常见于一些设计精美的杂志或宣传海报中.我们在日常工作中编辑Word文档时,也可以通过添加艺术字体来凸显文章的重点,美化页面排版.这篇文章将介绍如何使用 ...
- 【java文本处理】删除txt文档中的空白行
01. 目的 用java编程实现删除txt文档中的空白行,代替手动删除,减少不必要的工作.将修改的内容存入新的文档,在修改完成后自动打开,便于查看确认对比. 02. 主要方法 BufferReader ...
- python环绕文字_Java 设置 Word 文档中图片文字环绕方式
Java 设置 Word 文档中图片文字环绕方式 在Word文档中插入图片时,选择合理的图片文字环绕方式可以使图片的展示效果更好,也能使页面的排版更加美观.本文就将介绍如何使用Free Spire.D ...
- Java将图片放入word文档中
1.引入依赖包(maven项目) <!-- https://mvnrepository.com/artifact/itext/itext --><!--将照片写入word文档中的依赖 ...
最新文章
- 九坤投资投身基础科研,携手IDEA成立联合实验室
- Redis相比memcached
- Java Servlet监听器的分类
- SAP Spartacus 基于行项目的订单取消功能(order cancel)实现
- Fiddler 学习笔记
- android t类型参数,数据绑定Android – 类型参数T具有不兼容的上限:ViewDataBinding和MainActivity...
- mysql 密码文件改成密文_数据库密码弄成密文
- 2010伊始就这么忙
- idea springmvc项目搭建_IntelliJ IDEA基于SpringBoot如何搭建SSM开发环境
- 传奇人物称号设置详细步骤
- 读取QQ ClientKey C++版本
- 挺有意思的文章。。。
- 红轴和茶轴哪个声音大 红轴和茶轴哪个适合打字
- android模拟器 对比,安卓模拟器多开用哪个模拟器好?实测数据对比哪个好用
- CES2014盘点:九大穿戴式设备
- 经济师考了有什么用?
- Nginx 配置中nginx和alias的区别分析
- Java后端根据身份证号获取年龄
- QQ玩一玩获取PUIN
- 数据分析 第七讲 pandas练习 数据的合并、分组聚合、时间序列、pandas绘图