itext实现HTML转换为PDF

1、首先,建立一个maven工程(maven工程的建立这里不在演示)

   1.1 在maven工程的pom.xml中加入itext所需的jar包

<!-- itext 生成PDF jar--><dependency> <groupId>com.lowagie</groupId><artifactId>itext</artifactId><version>2.0.8</version></dependency> <!-- https://mvnrepository.com/artifact/org.xhtmlrenderer/core-renderer --><dependency><groupId>org.xhtmlrenderer</groupId><artifactId>core-renderer</artifactId><version>R8</version></dependency>

2、建立一个类Demo1.Java

package com.shawsuper;import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer;
import com.lowagie.text.pdf.BaseFont;
public class Demo1 {/** HTML转换为PDF* */public  void  HtmlToPdf(String inputFile,String outputFile) throws Exception{String url = new File(inputFile).toURI().toURL().toString();System.out.println(url);OutputStream os = new FileOutputStream(outputFile);ITextRenderer renderer = new ITextRenderer();renderer.setDocument(url);// 解决中文支持问题ITextFontResolver fontResolver = renderer.getFontResolver();fontResolver.addFont("c:/Windows/Fonts/<span style="color:#FF0000;">simsun</span>.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);// 解决图片的相对路径问题// renderer.getSharedContext().setBaseURL("file:/D:/z/temp/");renderer.layout();renderer.createPDF(os);os.close();}public static void main(String[] args) throws Exception {Demo1 demo = new Demo1();String inputFile = "D://Test//iText1.jsp";String outputFile = "D://Test//123.pdf";demo.HtmlToPdf(inputFile, outputFile);}
}

3、运行main方法即可

<span style="font-size:18px;">iText1.jsp的源码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Insert title here</title>
<style type="text/css">           
<span style="color:#FF0000;">body {       font-family: SimSun;  //特别重要,否则中文将无法显示
}  </span>     
</style>
</head>
<body><p >迷你校</p><div class="text">个人简历</div><table border='1' bgcolor="#00FF00"><tr><td>number</td><td>name</td></tr><tr><td>1</td><td>ch</td></tr><tr><td>2</td><td>es</td></tr></table><p>教育经历ss</p><p>12422</p><p>jiaoyujingli</p></body>
</html>
</span>

注意事项:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">     
<html xmlns="http://www.w3.org/1999/xhtml ">  
(1)头文件必须这个,否则会报以下错误:
             错误:“The declaration for the entity "HTML.Version" must end with '>'.”
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
(2)charset 必须是UTF-8,否则会报以下错误:
             错误:“Invalid byte 1 of 1-byte UTF-8 sequence.”
(3)需要定一个样式:body {font-family: SimSun};
(4)html页面必须严格遵循, 该打引号就要打引号
             错误:cellpadding=0 ,border=1"
(5)不要引用无效的链接
  <link rel="stylesheet" type="text/css" href="XX/ll.css"/ >
 <link rel="stylesheet" type="text/css" href="XX/main.css"/ > 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

phaser java_死磕 java同步系列之Phaser源码解析

问题(1)Phaser是什么&#xff1f;(2)Phaser具有哪些特性&#xff1f;(3)Phaser相对于CyclicBarrier和CountDownLatch的优势&#xff1f;简介Phaser&#xff0c;翻译为阶段&#xff0c;它适用于这样一种场景&#xff0c;一个大任务可以分为多个阶段完成&#xff0c;且每个阶段的…

闭包的应用

闭包的应用 闭包是ECMAScript最强大的特性之一。所谓“闭包”&#xff0c;是指在一个函数的执行过程中返回另一个函数对象。如&#xff1a;function testClosure(){ //private var a"private"; function getValue() { //引用testClosure的…

人工智能将为传统制造业带来什么?

来源 &#xff1a;数据科学与人工智能“物理世界”&#xff08;以制造业设备所代表&#xff09;和“数字世界”&#xff08;由人工智能、传感器等技术代表&#xff09;的碰撞催生了制造业的巨大的转变。两个世界的融合将为下一轮经济发展注入新的动能。以人工智能为代表的新技术…

解决JPA的枚举局限性

对于数据字典型字段&#xff0c;java的枚举比起Integer好处多多&#xff0c;比如 1、限定值&#xff0c;只能赋值枚举的那几个实例&#xff0c;不能像Integer随便输&#xff0c;保存和查询的时候特别有用 2、含义明确&#xff0c;使用时不需要去查数据字典 3、显示值跟存储值…

网络模拟器 eNSP、EVE-NG、GNS3、Packet Tracert

工欲善其事必先利其器&#xff0c;学习网络不可能都有真实的网络环境可以使用&#xff0c;这时就需要使用网络模拟软件&#xff0c;模拟一些网络环境&#xff0c;构建一些网络拓扑&#xff0c;然后学习研究网络技术 初学时不要在模拟器的选择上纠结&#xff0c;PT、GNS3 就足够…

linux 升级java_linux 升级jdk1.8

1、首先根据实际情况准备好包 jdk-8u45-linux-x64.rpm2、先不管是否已安装JDK1.6还是JDK1.7&#xff0c;先下载 jdk-8u45-linux-x64.rpm 然后上传到 /usr/local/src 去。当然其他目录也可以。这里是默认位置。3、给所有用户添加可执行权限#chmod x jdk-8u45-linux-x64.rpm都给…

第四讲 构建安全的Microsoft ASP.NET 应用的最佳实践和技术

*ASP.NET应用安全事项 *输入验证 1、参数化查询 2、存储过程 3、html编码(防止javascript脚本执行) String.Format("Invalid Logon for {0},please try again!",Server.HtmlEncode(UserName)); 认证与授权 配置管理 Review production configuration: <customErro…

信息技术守护人类文明DNA

来源&#xff1a;中国青年报 作者&#xff1a;胡春艳21世纪最时髦的技术&#xff0c;改变的不仅是未来&#xff0c;在被称为“最古老的研究”的文物与博物馆界&#xff0c;感受到的变化可能更加显著。天津大学文化遗产保护与传承信息技术研究中心主任张加万团队历时10年&…

如何给正面的负反馈

麦肯锡的一个方法论&#xff0c;就是如何给正面的负反馈。 如果你想给别人提意见的时候&#xff0c;用什么样的方法最有建设性&#xff1f; &#xff08;1&#xff09;我观察到你说了什么话&#xff0c;做了什么事&#xff1a;一、二、三、四…… &#xff08;2&#xff0…

java 单例方法_Java-单例模式 - 惊觉

单例模式单例(Singleton)模式是设计模式之一&#xff0c;最显著的特点就是一个类在一个JVM中只有一个实例&#xff0c;避免繁琐的创建销毁实例。简单例子先看简单的单例模式实现完整代码&#xff1a;Singleton_Test类使用单例模式 &#xff0c;采用饿汉式方法。public class Si…

DIY协同办公平台(C/S)系列4之通讯录篇

通讯录分为企业通讯录和员工个人通讯录。企业通讯录与企业员工资料相连接&#xff0c;读取其资料。而员工个人通讯录主要是员工的自己业务往来和个人的通讯资料保存。 1.主体toolbar 用于快捷掉出与员工相关的功能&#xff0c;打算支持自定义和本地化&#xff0c;通过对文本的…

iRank: 基于互联网类脑架构的阿尔法鹰眼发展趋势评估

前言&#xff1a;iRank是人工智能学家基于科学院研究团队“互联网类脑智能巨系统架构”和”AI 智商评估模型”等研究成果&#xff0c;对智能产业优秀企业、产品和技术进行评估、发掘和推荐的项目。iRank目前拥有互联网、人工智能、机器人&#xff0c;大数据、通讯技术、芯片、脑…

Java加密与解密的艺术~AES-GCM-NoPadding实现

来源&#xff1a;Java AES加密和解密_一名可爱的技术搬运工-CSDN博客 高级加密标准 &#xff08;AES&#xff0c;Rijndael&#xff09;是一种分组密码加密和解密算法&#xff0c;是全球使用最广泛的加密算法。 AES使用128、192或256位的密钥来处理128位的块。 本文向您展示了一…

STL bitset用法总结

c bitset类用法&#xff1a;http://blog.csdn.net/qll125596718/article/details/6901935 C 参考&#xff1a;http://www.cplusplus.com/reference/bitset/bitset/ http://happyboy200032.blog.163.com/blog/static/46903113201291252033712/ http://blog.csdn.net/e68948…

ASP.NET数据库编程入门

因为Access并不真正为高性能应用程序服务&#xff0c;所以一个希望有多个同时连接用户的站点必须部署一个比Access更适合的数据源。本文将讲述如何从Microsoft SQL Server(一种企业级RDMS)中获取数据。 SQL Server完全版包括了三个部分。第一个是引擎&#xff0c;用于实际组织数…

全球智能制造发展现状及前景预测 工业机器人引领行业发展

来源&#xff1a;前瞻产业研究院全球智能制造发展历程智能制造是伴随信息技术的不断普及而逐步发展起来的。1988年&#xff0c;美国纽约大学的怀特教授&#xff08;P&#xff0e;K&#xff0e;Wright&#xff09;和卡内基梅隆大学的布恩教授&#xff08;D&#xff0e;A&#xf…

vb整合多个excel表格到一张_VB合并工作表下载

VB合并工作表最新版是一款功能强大且界面简洁美观的excel表格合并工具&#xff0c;VB合并工作表最新版操作简便且易上手可以运行稳定&#xff0c;能够为大家解决合成打开卡顿等问题&#xff0c;实现多薄多表合并&#xff0c;VB合并工作表官方版还可以有效轻松提升工作效率。软件…

sql server 模糊查询

模糊查询——like select * from 表名where id like %2%select * from 表名where id like d%% escape d 查询时&#xff0c;字段中的内容并不一定与查询内容完全匹配&#xff0c;只要字段中含有这些内容 模糊查询&#xff0d;&#xff0d;is null select * from 表名 where na…

java.security.InvalidKeyException: Illegal key size

来源&#xff1a;https://blog.csdn.net/dling8/article/details/84061948 今天在使用idea打包maven项目时&#xff0c;出现这个错误&#xff1a;java.security.InvalidKeyException: Illegal key size。&#xff08;测试也可能会出现这个问题&#xff09;貌似是因为加密出现了…

NAT 详解

NAT技术(一、二、三、四、五) 系列&#xff1a;https://blog.51cto.com/wwwcisco/category1.html CCNA学习笔记之NAT&#xff1a;http://sweetpotato.blog.51cto.com/533893/1392884 网络地址转换NAT原理及应用&#xff1a;http://blog.csdn.net/xiaofei0859/article/details/…