文档章节

java html 转pdf 中文可显示

lostelk
 lostelk
发布于 2017/04/27 13:12
字数 298
阅读 2107
收藏 1

摘要: 最近正好项目有用到 ITEXT ,在网络上搜索了一番,发现了很多方案,但是都是显示中文有问题,本文提供一种最便捷的方式来实现,不需要任何额外 JAR 包。

引用一句另外一个人提出解决方式的一句话

一段可运行的代码比说很多废话强得多

 

找了非常多的方法就是不显示中文,终于在贴吧一位兄弟提醒了我.

最重要的一点是 html 一定要设置字体

<body style = "font-family: SimSun;" > 

对html的规范要求极高,例如:页面中<mate></mate>必须闭合,必须: <br />

ITEXT 的功能和简介这里就不多说了,直接带大家做一遍:

这四个包

package com.uitl;

 

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;

 

/**

 * 

 * @author 赖兴隆

 */

public class htmlToPdf {

 

public static void main(String[] args) throws Exception {

    htmlToPdf("/Users/max/Documents/workspace/temp/w3.pdf","/Users/max/Documents/workspace/temp/w.html");

}

 

public static boolean htmlToPdf(String outputFile, String url)throws Exception {

File outFile = new File(outputFile);

if (!outFile.exists()) {

outFile.getParentFile().mkdirs();

}

OutputStream os = new FileOutputStream(outputFile);

ITextRenderer renderer = new ITextRenderer();

renderer.setDocument(url);

ITextFontResolver fontResolver = renderer.getFontResolver();

fontResolver.addFont("SIMSUN.TTC", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);

renderer.layout();

renderer.createPDF(os);

os.flush();

os.close();

return true;

}

}

希望能帮到大家

© 著作权归作者所有

共有 人打赏支持
lostelk
粉丝 0
博文 1
码字总数 298
作品 0
私信 提问
Centos下安装类百度文库环境

使用php实现百度文库功能,网上搜索到的方案,实现doc转pdf,pdf转swf,然后显示出来。 这里简单的记录下,【doc转pdf,pdf转swf】两个功能的搭建流程。 doc转pdf 使用到下列程序(文件): Ap...

DragonFK
2013/02/20
0
1
java对sqlite进行插入操作的乱码问题

用java连接sqlite数据库之后,将sql语句转码utf-8之后使用statement.executeUpdate()插入中文是乱码,转码后读取出来也是乱码。但是如果从命令行插入中文条目,在程序中进行转码后可正常显...

夜星寒
2013/06/28
2.4K
2
Tomcat中文乱码问题的原理和解决方法

Tomcat中文乱码问题的原理和解决方法   自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决,现将我们的解决心得与大家共享。   一、Java中文问题的由...

孙斐
2013/02/26
0
0
java操作PDF(PDFBOX和Itext框架)

java有很多可以操作pdf的框架,pdfbox和itext就是其中的两种 pdfbox有如下作用 提取文本,包括Unicode字符。 和Jakarta Lucene等文本搜索引擎的整合过程十分简单。 加密/解密PDF文档。 从PDF...

王小明123
2013/07/24
0
0
解决web服务器各种应用的乱码问题,欢迎补充和讨论

乱码问题: (1)服务器端: 修改httpd.conf (在Redhat中放置的位置为/etc/httpd/conf/) 查找: AddDefaultCharset ISO-8859-1 改成: ] 这种方式关掉了服务器的默认语言的发送,这样仅凭htm...

范堡
2009/05/06
780
0

没有更多内容

加载失败,请刷新页面

加载更多

isEmpty和null的区别

isEmpty和null的区别: 1.一个是对象为空(IsNull),一个是值为空(IsEmpty) 2.IsNull指任务类型变量是否为空包括对象类型的变量。 IsNull函数: 功能:返回Boolean的值,指明表达是否不包...

DemonsI
6分钟前
0
0
Centos7 安装mysql与php

https://blog.csdn.net/qq_36431213/article/details/79576025 官网下载安装mysql-server 依次使用下面三个命令安装 wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.r......

Yao--靠自己
16分钟前
0
0
详解如何实现一个简单的 vuex

首先我们需要知道为何要使用 vuex。父子组件通信用 prop 和自定义事件可以搞定,简单的非父子组件通信用 bus(一个空的 Vue 实例)。那么使用 vuex 就是为了解决复杂的非父子组件通信。 仅仅...

嫣然丫丫丫
21分钟前
1
0
算法——RangePartitioner实现之reservoirSample

简介 reservoir的作用是:**在不知道文件总行数的情况下,如何从文件中随机的抽取一行?**即是说如果最后发现文字档共有N行,则每一行被抽取的概率均为1/N? 我们可以:定义取出的行号为cho...

freeli
23分钟前
1
0
Python安装及netcdf数据读写

一、在CentOS7系统上安装Python3 在anaconda官网下载(http://https://www.anaconda.com/download/#linux)(Anaconda指的是一个开源的Python发行版本,是Python的包管理器和环境管理器) 下...

voole
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部