-
pd4ml网页转PDF程序中文乱码问题依旧5
Test test = new Test(); File pdfFile = new File(outputFile+"/"+fileName); StringBuffer html = new StringBuffer(); html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"); html.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">"). append("<head>") .append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />") .append("<style type=\"text/css\" mce_bogus=\"1\">body {font-family: KaiTi_GB2312;}</style>") .append("</head>") .append("<body><table style='width:800px'><tr><td>"); html.append(printform); html.append("</td></tr></table></body></html>"); StringReader strReader = new StringReader(html.toString()); test.generatePDF_1(pdfFile, strReader);
package com; import java.awt.Insets; import java.io.File; import java.io.FileOutputStream; import java.io.StringReader; import org.zefer.pd4ml.PD4Constants; import org.zefer.pd4ml.PD4ML; public class Test { public static void main(String[] args) throws Exception { Test converter = new Test(); converter.generatePDF_2(new File("C:/demo_ch_pd4ml_a.pdf"), "C:/print.html"); // File pdfFile = new File("C:/demo_ch_pd4ml.pdf"); // StringBuffer html = new StringBuffer(); // html.append("<html>") // .append("<head>") // .append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />") // .append("</head>") // .append("<body>") // .append("<font face=\"KaiTi_GB2312\">") // .append("<font color='red' size=22>显示中文</font>") // .append("</font>") // .append("</body></html>"); // StringReader strReader = new StringReader(html.toString()); // converter.generatePDF_1(pdfFile, strReader); } // 手动构造HTML代码 public void generatePDF_1(File outputPDFFile, StringReader strReader) throws Exception { FileOutputStream fos = new FileOutputStream(outputPDFFile); PD4ML pd4ml = new PD4ML(); pd4ml.setPageInsets(new Insets(20, 10, 10, 10)); pd4ml.setHtmlWidth(950); pd4ml.setPageSize(pd4ml.changePageOrientation(PD4Constants.A4)); pd4ml.useTTF("java:fonts", true); pd4ml.setDefaultTTFs("KaiTi_GB2312", "KaiTi_GB2312", "KaiTi_GB2312"); pd4ml.enableDebugInfo(); pd4ml.render(strReader, fos); } // 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(5, 20, 20, 20)); pd4ml.setHtmlWidth(1000); pd4ml.setPageSize(pd4ml.changePageOrientation(PD4Constants.A4)); pd4ml.useTTF("java:fonts", true); pd4ml.setDefaultTTFs("KaiTi_GB2312", "KaiTi_GB2312", "KaiTi_GB2312"); pd4ml.enableDebugInfo(); pd4ml.render("file:" + inputHTMLFileName, fos); } }
这里我把font.jar里的pd4fonts.properties配置了KaiTi_GB2312=simkai.ttf,
pd4ml_demo.jar、ss_css2.jar、font.jar都放进了工程目录下WEB-INF的lib目录下了,
但打印出来的PDF文件依旧还是乱码,有没有哪位大侠能帮我看出问题是出在哪了?2012年9月20日 15:06
目前还没有答案
相关推荐
解决PD4ML导出PDF中文乱码问题,可以从以下几个方面入手: 1. **设定正确的字符编码**:确保你的HTML文件是以UTF-8编码保存的,并在HTML头部明确指定编码,例如`<meta charset="UTF-8">`。同时,在使用PD4ML时,也...
最后,我们来看"Pdf4Html.java",这应该是一个示例程序或者模板代码,演示了如何使用PD4ML API将HTML转换为PDF,并解决中文乱码问题。在这个Java源文件中,可能会包含如下关键步骤: 1. 引入必要的库:导入PD4ML和...
1.html 转 pdf 会保留原有样式 css,用到时直接...2.windows,linux下都没有问题,解决了中文乱码 3.在html中用<font face='KaiTi'></font>包含body face值可以改,但要和fontspd4下的fonts.properties里边设定的值一致
pd4ml通过正确配置字符编码(如UTF-8)来避免这个问题,确保中文字符在转换过程中得以正确显示,不会出现乱码。开发者需要确保HTML源文件以及PDF输出都使用一致的编码方式。 **水印功能** pd4ml 提供了添加水印的...
确保包含像SimSun、Arial Unicode MS或Microsoft YaHei这样的支持中文的字体,以避免乱码问题。 **图片与CSS样式支持** 值得注意的是,pd4ml在处理图片和某些CSS样式时可能存在限制。对于图片,pd4ml支持JPG、PNG和...
2. **中文支持**:提到的3100pro版本特别强调了对中文的支持,这意味着它内建了对中文字符集的处理,可以确保中文内容在转换过程中不会出现乱码问题。 3. **无水印**:提供的jar包是无水印版本,这意味着生成的PDF...
通过以上步骤,我们可以有效地利用pd4ml库生成包含中文的PDF文档,避免了乱码问题。对于初学者来说,这是一个很好的学习实践,能够加深对PDF生成和字体处理的理解。同时,这也是一个通用的方法,可以应用到其他类似...
3. **中文支持**:PD4ML能够正确处理UTF-8编码的中文字符,确保在生成的PDF文档中中文显示无误。这对于需要生成中文内容的项目来说是一个重要的特性,特别是在中国市场或面向中文用户的场景下。 4. **跨平台兼容性*...
这个jar包是PD4ML的实现,它的主要目标是帮助开发者在Java应用程序中生成PDF,特别是处理中文字符,避免出现乱码问题。在描述中提到,经过一番搜索和尝试,找到了这个能有效解决中文显示问题的解决方案,并提供了...
pd4ml通过支持多种字体来解决这个问题,包括对中文字符的支持。"font.jar"很可能包含了各种字体资源,尤其是中文字体,以确保在转换过程中正确显示非ASCII字符。这样,即使原始HTML中没有指定适合显示中文的字体,...
Java PDF导出插件 pd4ml-3100pro.jar、ss_css2.jar、fonts.jar;本人对jar包源码进行了微小的修改不影响使用,无水印无水印无水印,解决中文乱码, 附demo:...
PD4ML支持Unicode,能够正确地显示和处理中文字符,避免了乱码的问题。这使得PD4ML成为开发中英文混合或者纯中文PDF文档的理想选择。 4. **Linux兼容性**: PD4ML能够在Linux环境下运行,这意味着开发者可以利用...
pd4ml.jar 版本集合 7个版(html生成pdf 中文解决方案jar包)本,pd4ml.pro.trial.381fx1.zip,pd4ml.pro.trial.390b3.zip,pd4ml.pro.trial.3100.zip,pd4ml-310b10.jar,pd4ml-323b2.jar,pd4ml-370fx2pro.jar,...
当处理中文文档时,pd4ml会依赖这个库来正确显示和渲染中文字符,确保在生成的PDF中不会出现乱码。 解决中文乱码问题通常涉及到以下几点: - 确保使用的HTML和CSS文件中的字符编码设置为UTF-8,这是支持中文字符的...
总的来说,PD4ML作为HTML转PDF的工具,因其对HTML的宽容度和良好的中文支持,成为了一个实用的选择。在开发过程中,掌握其用法和配置可以提升工作效率,方便生成专业且美观的PDF文档。同时,了解其工作原理也有助于...
本篇文章将详细探讨如何使用PD4ML库进行HTML转PDF以及字符串转PDF,并解决中文乱码和排版问题。 首先,PD4ML是一款强大的Java库,它可以将HTML文档转换为高质量的PDF文件。其工作原理是解析HTML代码并将其渲染成PDF...
总的来说,这个项目展示了如何在Java环境中使用pd4ml库将HTML内容无水印地转换为PDF,同时解决了中文乱码问题,为开发人员提供了一个简洁有效的解决方案。在实际应用中,可以根据具体需求调整和扩展这个基础框架,...
以下将详细讲解如何使用iText、Apache POI以及pd4ml来实现这些转换,并着重解决中文乱码的问题。 首先,iText是一个Java库,主要用于创建和修改PDF文档。在将HTML转换为PDF时,iText可以通过解析HTML并将其内容转化...
本篇文章将详细讲解如何使用Apache POI和pd4ml这两个Java库来实现这一目标,并解决在转换过程中可能出现的乱码问题。 Apache POI是Java社区开发的一个开源库,主要用于处理Microsoft Office格式的文件,如Word(....