PD4ML处理中文的页面怎么处理乱码的问题?

过往记忆
博客专家认证
2012-07-16 06:46:50
弄了好久,处理中文的时候一直都是乱码,怎么处理啊?
import java.io.File; 
import java.io.FileOutputStream;
import java.io.StringReader;

import org.zefer.pd4ml.PD4Constants;
import org.zefer.pd4ml.PD4ML;

public class Converter {
public static void main(String[] args) throws Exception {
Converter converter = new Converter();
converter.generatePDF_2(new File("D:/Test/demo_ch_pd4ml_a.pdf"), "D:/Test/a.htm");

}

// HTML代码来自于HTML文件
public void generatePDF_2(File outputPDFFile, String inputHTMLFileName) throws Exception {
FileOutputStream fos = new FileOutputStream(outputPDFFile);
PD4ML pd4ml = new PD4ML();
//pd4ml.setPageInsets(new Insets(30, 30, 30, 30));
//pd4ml.setHtmlWidth(800);
//pd4ml.setPageSize(pd4ml.changePageOrientation(PD4Constants.A4));
pd4ml.setPageSize(PD4Constants.A4);
pd4ml.useTTF("java:fonts", true);
pd4ml.setDefaultTTFs("MSJH", "Arial", "Courier New");
pd4ml.enableDebugInfo();
pd4ml.render("file:" + inputHTMLFileName, fos);
}
}

...全文
1750 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
彬彬啊 2014-11-26
  • 打赏
  • 举报
回复
引用 11 楼 hft24dq 的回复:
[quote=引用 1 楼 sy456zsc 的回复:] 我也遇到这种问题 你解决了吗 求指教
very nice!!搞了一天,终于使用pd4ml搞定中文和乱码了,在windows下测试可以了,明天测试下centos下的解决方案!!!感谢,等我都解决了,我会写一篇文章来总结下,今天一天我看各种转载会头疼死了! 感谢这位仁兄的方案,助我搞定了中文问题!![/quote] 你的 做出来了,有什么案例,可以借鉴下,我现在也在做页面转pdf的功能,
飞花一叶 2014-09-01
  • 打赏
  • 举报
回复
引用 1 楼 sy456zsc 的回复:
我也遇到这种问题 你解决了吗 求指教
very nice!!搞了一天,终于使用pd4ml搞定中文和乱码了,在windows下测试可以了,明天测试下centos下的解决方案!!!感谢,等我都解决了,我会写一篇文章来总结下,今天一天我看各种转载会头疼死了! 感谢这位仁兄的方案,助我搞定了中文问题!!
  • 打赏
  • 举报
回复
按着2楼说的 还是不能解决乱码问题啊
lvchunyujun 2013-11-22
  • 打赏
  • 举报
回复
#2楼说的 在window 下可以。 但是放到linux 仍然是乱码 can not read 'heiti_gb2312' from java:fonts/simhei.ttf: Problem reading font data. 不知这种问题怎么解决?
yileilaile 2013-05-31
  • 打赏
  • 举报
回复
请问LZ 如何编写html模版。 如何通过模版动态去赋值。 能不能给我一个demo.. 谢谢LZ..
陋室 2013-04-23
  • 打赏
  • 举报
回复
有什么资料吗?
陋室 2013-04-23
  • 打赏
  • 举报
回复
lz 请问我想学习PD4ML,应该从哪开始啊
hyz_116 2013-04-08
  • 打赏
  • 举报
回复
"需要在需要导出pdf的页面上配置",要怎么配置啊?在那页面?
duoduo2048 2013-01-18
  • 打赏
  • 举报
回复
czy0449的方法可行,我试过了,OK
czy0449 2012-08-23
  • 打赏
  • 举报
回复
在java代码中你现在这样写已经可以处理中文乱码了
pd4ml.useTTF("java:fonts", true);
我就是这样处理的,只是需要在src下创建包fonts
里面放置几个配置文件
pd4fonts.properties 属性文件必须
格式为:

KaiTi_GB2312=SIMFANG.TTF

.TTF 可以在系统盘的WINDOWS\Fonts文件夹下找到可以配置多个不同的字体
KaiTi_GB2312表示在页面上对应的font-family的值
另外需要在需要导出pdf的页面上配置

<style type="text/css">
*{
font-family:KaiTi_GB2312;
}
</style>


大致的流程为
搜索项目目录下的fonts包下是否存在pd4fonts.properties文件
根据pd4fonts.properties文件中配置的对应的.TTF的名称
判断当前要导出为pdf的页面的字体是否与名称对应,如果找到对应的名称的字体,该段中文采用本字体的解码方式解码。
sy456zsc 2012-08-03
  • 打赏
  • 举报
回复
我也遇到这种问题 你解决了吗 求指教

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧