java 绘制pdf_Java 在PDF文档中绘制图形

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

Jar文件导入:

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

8a3518562dc079be5e3015fa5c5b4919.png

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

f644118a30076853e6a5d17f25e227a3.png

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);

}

}

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

f98b17ddc37782e5163323b1bdc135c7.png

(本文完)

转载请注明出处!!

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

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

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

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

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

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

Java 复制PDF文档的2种方法

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

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

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

Java 设置PDF文档背景色

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

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

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

C# 如何在PDF文档中创建表格

表格能够直观的传达数据信息,使信息显得条理化,便于阅读同时也利于管理.那在PDF类型的文档中如何来添加表格并且对表格进行格式化操作呢?使用常规方法直接在PDF中添加表格行不通,那我们可以在借助第三方组 ...

OrCAD Capture CIS 16.6 从PDF文档中提取引脚定义,实现快速地编辑Part的引脚名称

操作系统:Windows 10 x64 工具1:OrCAD Capture CIS 16.6-S062 (v16-6-112FF) 工具2:Excel 工具3:Solid Converter 打开需要 ...

随机推荐

Assertor用于判断参数和抛出异常

代码 /// 断言器,用于判断和抛出异常 /// static class Assertor { ///

即将放出ITSEC第一期所有培训视频

课程大概被分为三个章节 客户端安全培训 安全工具培训 服务端安全培训   部分PPT                         详细课程表 FireBug代码调试工具使用:工具介绍 FireBu ...

awk输出单引号,双引号

双引号: awk '{print "\""}'        #放大:awk '{print "  \"  "}' 使用“”双引号把一个双引 ...

PHP去除空白字符

例子1: <?php $var = " This is a beautiful day!"; // 删除字符串中的所有空白字符(不包括全角空格) $var1 = preg_r ...

C 函数 strstr 的高效实现

C函数库中有一个函数 strstr(char*, char*),它实现的是在一个原字符串中查找一个子串.假设找到这种一个子串,返回这个子串在原字符串中的起始位置,若没有找到这种一个子串.则 ...

JAVAscript学习笔记 js计时器与倒计时 第六节 (原创) 参考js使用表

&lt&semi;Android 基础(三十三)&gt&semi; TabHost ~ 仿微信底部菜单

简介 Container for a tabbed window view. This object holds two children: a set of tab labels that the ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值