文档章节

java html 转pdf 中文可显示

lostelk
 lostelk
发布于 2017/04/27 13:12
字数 298
阅读 1988
收藏 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
Tomcat中文乱码问题的原理和解决方法

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

孙斐
2013/02/26
0
0
学习ibatis,希望有共同方向的朋友。

最近在学习ibatis,真是很不错的东西。 目前已经是 apache下的开源项目。 不但有for java版本,甚至有for .net ,for ruby的版本。 ibaits将sql映射成对象。和hibernate的orm不同。非常灵活,...

晨曦之光
2012/03/09
0
0
java操作PDF(PDFBOX和Itext框架)

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

王小明123
2013/07/24
0
0
response.setHeader()的用法 (转别人转的)

response.setHeader()下载中文文件名乱码问题 收藏 1. HTTP消息头 (1)通用信息头 即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma 主要: Cac...

yifon
2014/04/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nuc970 uboot nand-boot,kernel, filesystem 烧录位置

一 烧写到Nand Flash **1.1 **相关文件说明 l BSP版本:nuc970bsp-release-20150519.zip l NuWriter版本:2015/04/28-V01,nuvoTon Nu-Writer V1.0 l 烧写文件: u-boot-spl.bin:负责将u-b......

CookieDemo
今天
1
0
python中sort和sorted函数小结

L.sort(cmp=None, key=None, reverse=False) sorted(iterable, cmp=None, key=None, reverse=False) 这样看,sorted函数只比sort函数多一个iterable参数,其余没什么不同,iterable是一个迭代......

上官夏洛特
今天
4
0
thinkphp 常用SQL执行语句总结

第一条:Db::tablera('vr_panomas')->where(['delete_time'=>0,'id'=>['in',$pids]])->field(['id'=>'id','post_thumb'=>'thumb','post_title'=>'title','post_tags'=>'tags','post_price'=>......

koothon
今天
6
0
支付宝返回状态resultStatus意思

上一篇集成支付宝的时候,会有一些支付宝返回的resultStatus,具体意思是: 9000 订单支付成功 8000 正在处理中 4000 订单支付失败 6001 用户中途取消 6002 网络连接出错 还有memo,意思就是...

RainOrz
今天
4
0
electron webview 页面加载事件顺序

1.did-start-loading 页面开始加载 2.load-commit 主页面文档加载 3.page-title-updated title 4.dom-ready 主页面 dom 加载完成 5.load-commit frame文档加载 6.did-frame-finish-load fram......

dubox
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部