虽说网上有很多可以在线导出Pdf或者word或者转成png等格式的工具,但是我觉得还是得了解知道是怎么实现的。一来,在线免费转换工具,是有容量限制的,达到一定的容量时,是不能成功导出的;二来,业务需求,特别是OA方面的项目,报表不单单只是在线通过浏览器登录对应的站点浏览还需有时导出Pdf格式(pdf格式为通用格式,无论是浏览器还是其他工具都能打开,因此特别是做项目实施的,除了用word编写文档之外,通常还导出一下pdf,这样一来保证给老板看时,不会因为某种原因打不开文件看不到对应的实质内容。

直接开门见山:

一、导入Maven依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>site.duanzy</groupId><artifactId>study_pdf</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><name>study_pdf</name><description /><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.10</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.54</version></dependency><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>7.0</version><scope>provided</scope></dependency><dependency><groupId>org.glassfish.web</groupId><artifactId>javax.servlet.jsp.jstl</artifactId><version>1.2.2</version></dependency></dependencies><build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><version>2.3.2</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin><plugin><artifactId>maven-war-plugin</artifactId><version>2.2</version><configuration><version>3.1</version><failOnMissingWebXml>false</failOnMissingWebXml></configuration></plugin></plugins></build>
</project>

二、编写Java代码

package site.duanzy.pdf.demo;import java.io.FileNotFoundException;
import java.io.FileOutputStream;import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;public class TestPDFDemo1 {public static void main(String[] args) throws FileNotFoundException, DocumentException {// 1.新建document对象Document document = new Document();// 2.建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。// 创建 PdfWriter 对象 第一个参数是对文档对象的引用,第二个参数是文件的实际名称,在该名称中还会给出其输出路径。PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("E://Pdf//test.pdf"));writer.flush();writer.close();// 3.打开文档
        document.open();// 4.添加一个内容段落document.add(new Paragraph("Hello World!"));// 5.关闭文档
        document.close();}}

package site.duanzy.pdf.demo;import java.io.FileNotFoundException;
import java.io.FileOutputStream;import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;public class TestPDFDemo2 {public static void main(String[] args) throws FileNotFoundException,DocumentException {// 创建文件Document document = new Document();// 建立一个书写器PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("E://Pdf//test2.pdf"));// 打开文件
        document.open();// 添加内容document.add(new Paragraph("Some content here"));// 设置属性// 标题document.addTitle("this is a title");// 作者document.addAuthor("Mr You");// 主题document.addSubject("this is subject");// 关键字document.addKeywords("Keywords");// 创建时间
        document.addCreationDate();// 应用程序document.addCreator("hd.com");// 关闭文档
        document.close();// 关闭书写器
        writer.close();}
}

package site.duanzy.pdf.demo;import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;public class TestPDFDemo3 {public static void main(String[] args) throws DocumentException,IOException {// 创建文件Document document = new Document();// 建立一个书写器PdfWriter writer = PdfWriter.getInstance(document,new FileOutputStream("E://Pdf//test3.pdf"));// 打开文件
        document.open();// 添加内容document.add(new Paragraph("HD content here"));// 图片1Image image1 = Image.getInstance("E://Demo//workspace//java_pdf//src//main//webapp//images//test.png");// 设置图片位置的x轴和y周
        image1.setAbsolutePosition(100f, 550f);// 设置图片的宽度和高度image1.scaleAbsolute(200, 200);// 将图片1添加到pdf文件中
        document.add(image1);// 图片2Image image2 = Image.getInstance(new URL("https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D220/sign=bda2ad09277f9e2f74351a0a2f31e962/0b46f21fbe096b63ea0d41bf0c338744eaf8accc.jpg"));// 将图片2添加到pdf文件中
        document.add(image2);// 关闭文档
        document.close();// 关闭书写器
        writer.close();}
}

以上值列举三个测试代码,更多可以参考我的github:https://github.com/youcong1996/study_simple_demo.git

记住该示例代码在我的侧分支,分支名为java-pdf。

三、运行测试代码的最后结果(结果最后是生成pdf,一般控制台不报错,就表示OK)

全面示例运行后生成的文件如下图所示:

Java之生成Pdf并对Pdf内容操作相关推荐

  1. java将生成数据写入文件_JAVA-将内容写入文件并导出到压缩包

    取出数据库表中的内容写入到文件,并将所有文件写入到压缩包最终导出到指定的某目录下 //导出的压缩包格式  xxxx_date Date currentTime = new Date(); //格式化日 ...

  2. [改善Java代码]生成子列表后不要再操作原列表

    前面说了subList 转载于:https://www.cnblogs.com/DreamDrive/p/5660137.html

  3. java 文字生成pdf,并创建自定义表单域pdf模板

    目录 本文总共知识点: pom 所有的import 生成带表格的pdf 另一种方式是指定坐标生成文本域 main方法: 创建表单域做为pdf模板: 创建签名域: 根据文字获取坐标位置 完整代码: 本文 ...

  4. java中生成pdf,插入图片,页眉、页脚、表格

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java中生成pdf,插入图片,页眉.页脚.表格 import com.lowagie.text.*; import com.lowagie.te ...

  5. Java后端生成Echarts并渲染Word转PDF

    生成pdf文件 文件要素 文件中包含图片 文件中包含列表 文件中包含表格 文件中包含循环嵌套写入的内容 文件需要后端生成echarts图表数据 基于以上几点考虑 技术选取 方式一 itext7是一款用 ...

  6. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  7. java批量生成pdf

    生成pdf 到年底了,公司是不是要求开始生成大量的pdf支持预览,下载,批量生成,烧脑的想法难为烧脑的人!!! 一:实现pdf预览 1:html 2:后台生成pdf文件,前端负责预览 二:pdf下载 ...

  8. java基于word模板动态生成word及转pdf实践

    在项目中很容易会遇到需要动态生成pdf的应用场景,其实现方式也比较多 由于项目的关系,对于这种组件性的开发方式我想的是怎么方便怎么来,怎么快就怎么来 在咨询了之前做政务系统的同学后,他们都一致推荐我使 ...

  9. java根据pdf模板生成指定格式的pdf文件

    java根据pdf模板生成指定格式的pdf文件 一.工具准备 事先得准备好Adobe Acrobat DC,这是一款专门编辑pdf的工具,小编已经给大家准备好了. 链接:https://pan.bai ...

  10. Java iText生成PDF文档

    版权声明:本文为博主原创文章,未经博主允许不得转载.https://mp.csdn.net/mdeditor/83963600# 1.简介 iText是一个非常著名的能够快速产生PDF文件的Java类 ...

最新文章

  1. 计算机科学与技术讲座psd,计算机科学的技术基本.ppt
  2. 怎样去除excel表中的虚线_Excel教程:F1键强大的功能,你会用吗?
  3. php和python哪个学起来简单一点-python和php学习哪个更有发展
  4. MySQL的用户的创建以及远程登录配置
  5. Invalid host: lb://xxx_xxx
  6. Objective-C总Runtime的那点事儿(一)消息机制
  7. 『飞秋』Html.Label的缺陷及补救办法
  8. java nio 心跳包_请问Java中Socket的心跳包如何实现?
  9. nodejs 密码加盐
  10. 智能车的转弯部分_教训:渣土车“两米生死线”千万别跨!记者带你亲身体验...
  11. 符号---Alt+数字键
  12. html加拼音注释,古诗加拼音注释版.doc
  13. 10天的百家号运营,让我发现了百家号的一些秘密
  14. win10修改user文件夹名称
  15. 总结非结构化数据分析「十步走」
  16. 利用canvas制作时钟表
  17. 多多情报通:拼多多店铺不交保证金能卖货吗?有什么影响吗?
  18. JZOJ 6305.最小值【思维】【dp】
  19. EF的Include 在.NET Framework 和.net core 中进行多个表查询的时候不同的写法
  20. HCIA脱产班 学习笔记4

热门文章

  1. LintCode 375. 克隆二叉树(深复制)
  2. LeetCode 206. 反转链表 思考分析
  3. AEAP的完整形式是什么?
  4. array_fill_PHP array_fill()函数与示例
  5. c#中textbox属性_C#.Net中的TextBox.MaxLength属性与示例
  6. 杭电2012-素数判定(C)
  7. 企业级php第三方支付平台,ThinkPHP新版企业级php第三方api第四方支付平台程序源码商业版 带接口文件等 某宝售价3000元...
  8. java const string_深入研究Java String
  9. c++怎么将文件中的数据读出并赋值给字符串_web前端开发过程中如何写JavaScript程序?...
  10. anaconda matplotlib 输出动画_Python+Matplotlib 制作排序算法的动画