为什么PDF转换器转换出来的是乱码转换器?

推荐这篇日记的豆列
······PDF转换Word出现乱码最简便的解决方案_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
PDF转换Word出现乱码最简便的解决方案
上传于||文档简介
&&P​D​F​转​换​W​o​r​d​出​现​乱​码​时​最​简​便​的​解​决​方​案
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢PDF 文档转成 Kindle 电子书出现乱码怎么解决?
不转换直接拷贝到Kindle也一样乱码一个中英混合的pdf文档,发送邮件到亚马逊转换格式后发到kindle4上,显示乱码。用电脑上的工具calibre转成epub,mobi等格式,再用calibre打开也是乱码。有没有好的解决办法?直接在kindle上看pdf格式页面不是那么合适。PS:pdf不是扫描版。
这个则是因为Kindle里缺少该PDF文件所采用的字体,解决的办法是加入软字体重新打印生成新PDF文件,具体做法如下:1. 打开PDF文档后选择打印,注意要选择选择打印到PDF而不是打印机2.打印选项设置(进打印后选择属性),然后在纸张/质量(Paper/Quality)里选择高级选项(Advanced),再选择下载软字体,如下:3. 开始打印,选择保存文件的路径,打印开始后会有打印页面进度显示,打印生成新的PDF文件就OK了,新的文件传Kindle里就不再乱码了。BTW:如果PDF文档锁定了,不允许打印(打印按钮是灰的),这个时候你需要用工具将PDF文件解锁,SysTools PDF Unlocker()可以解决这个问题。有个别文档打印到文件时会出现异常无法打印全部页面的情况,比如共600页,打印出来(生成)的PDF文件只有400页,解决办法就是选择打印页面重新打印后面一部分内容(401-600页),然后用Adobe Acrobat Pro将两个文件重新合成为一个文件。
已有帐号?
无法登录?
社交帐号登录txt转换成pdf格式后乱码怎么办
您当前的位置: &
& txt转换成pdf格式后乱码怎么办
点击图片查看大图
txt转换成pdf格式后乱码怎么办&
最小起订量:
供货总量:
发货期限:
自买家付款之日起 3 天内发货
发布时间:
10:07:24&&有效期至:长期有效
更新时间:
  & 很多用户在使用网上免费的PDF软件转TXT为PDF后,发现生成的PDF文档里面的文字全是乱码,只有部分的段落显示正常,而其他部分的文字和表格都是模糊不清的符号?这究竟是怎么回事?选择什么TXT转换成PDF转换器才能保证转出的PDF文件不存在乱码现象?
  要解决这一难题,我们还需从软件自身的识别机制上谈起,网上很多的所谓的最完美的PDF转换器在使用过后出现的问题很多,经过我们实际的测试过程发现,这部分转换器软件转换的效果存在较大的问题,通常情况下,识别技术薄弱是造成上述问题的关键。
  作为国内最早也是最为专业的文档转换处理服务商,迅捷PDF转换器本身具备强大的PDF文件识别功能。在转换之前,迅捷PDF转换成Word转换器会预先对PDF文件进行全面的识别和解析,通过深度解析技术的处理,软件可以将PDF的内容进行全方位的预处理过程,并最终通过高级转换接口进行转换。
  那么,如何将TXT文本完美地转换成PDF呢?
  1、首先需安装该软件(百度/360软件管家下载),安装成功后,我们直接双击软件快捷方式图标进入运行界面,在格式类型中单击选择&TXT转PDF&,目前新的版本可以实现任意文档的转换,如&文件转Office、文件转IMG、文件转TXT、文件转HTML以及Office转PDF等。转换格式类型更加丰富。
  2、PDF转换软件界面中单击置顶处的&添加文件/文件夹&,将需要转换的文本添加到软件中,一次可上传多个,当然你也可以直接将文件拖曳到界面中,这个大家可以灵活选择。
  3、TXT合并,需要进行设置,我们的方法是,直接勾选&TXT设置&中&将所有TXT合并成一个PDF文件便可,这一步最为关键,也是TXT合成的最重要的环节,大家不可以忽视的。
  4、输出选项:设置输出PDF文件保存位置,我们可供的选择方式很多,即直接单击&浏览&按键,在弹出的浏览文件夹中选择将PDF文件存放在&原文件夹内&,还是存放在桌面自定义文件夹中,或者放入其他更深的路径中。设置完成后,直接单击&开始转换&,所有的TXT将处理识别的状态中,大家仅需耐心等待片刻便可。
  转换效果还是很不错的!包括图片什么的&&这款软件广受网友好评!更多设置:包括PDF切割、PDF合并、PDF解密、PDF压缩、PDF图片获取、设置,大家可以尝试一下。
txt转换成pdf转换器/downinfo/48742.html
txt转换成pdf转换器/soft/31496.htm
本产品网址:/b2b/xiaomiliy/sell/itemid-.htmljava实现PPT转PDF出现中文乱码问题的解决方法
投稿:lijiao
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了java实现PPT转PDF出现中文乱码问题的解决方法,进行了详细的问题分析,需要的朋友可以参考下
ppt转成pdf,原理是ppt转成图片,再用图片生产pdf,过程有个问题,不管是ppt还是pptx,都遇到中文乱码,编程方框的问题,其中ppt后缀网上随便找就有解决方案,就是设置字体为统一字体,pptx如果页面是一种中文字体不会有问题,如果一个页面有微软雅黑和宋体,就会导致部分中文方框,怀疑是poi处理的时候,只读取第一种字体,所以导致多个中文字体乱码。
百度和谷歌都找了很久,有看到说apache官网有人说是bug,但他们回复说是字体问题,这个问题其实我觉得poi可能可以自己做,读取原来字体设置成当前字体,不过性能应该会有很多消耗,反正我估计很多人跟我一样花费大量时间找解决方案,网上几乎没有现成的方案。自己也是一步步尝试,最终找到解决办法,ppt格式的就不说了网上找得到,pptx后缀的网上我是没找到。
问题前的pptx转成图片:
解决后的pptx转成图片:
解决方法:
读取每个shape,将文字转成统一的字体,网上找到的那段代码不可行,我自己改的方案如下:&&&&&&&
for( XSLFShape shape : slide[i].getShapes() ){
if ( shape instanceof XSLFTextShape ){
XSLFTextShape txtshape = (XSLFTextShape)
System.out.println("txtshape" + (i+1) + ":" + txtshape.getShapeName());
System.out.println("text:" +txtshape.getText());
for ( XSLFTextParagraph textPara : txtshape.getTextParagraphs() ){
List&XSLFTextRun& textRunList = textPara.getTextRuns();
for(XSLFTextRun textRun: textRunList) {
textRun.setFontFamily("宋体");
完整代码如下(除了以上自己的解决方案,大部分是stackoverflow上的代码):
public static void convertPPTToPDF(String sourcepath, String destinationPath, String fileType) throws Exception {
FileInputStream inputStream = new FileInputStream(sourcepath);
double zoom = 2;
AffineTransform at = new AffineTransform();
at.setToScale(zoom, zoom);
Document pdfDocument = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(pdfDocument, new FileOutputStream(destinationPath));
PdfPTable table = new PdfPTable(1);
pdfWriter.open();
pdfDocument.open();
Dimension pgsize =
Image slideImage =
BufferedImage img =
if (fileType.equalsIgnoreCase(".ppt")) {
SlideShow ppt = new SlideShow(inputStream);
inputStream.close();
pgsize = ppt.getPageSize();
Slide slide[] = ppt.getSlides();
pdfDocument.setPageSize(new Rectangle((float) pgsize.getWidth(), (float) pgsize.getHeight()));
pdfWriter.open();
pdfDocument.open();
for (int i = 0; i & slide. i++) {
TextRun[] truns = slide[i].getTextRuns();
for ( int k=0;k&truns.k++){
RichTextRun[] rtruns = truns[k].getRichTextRuns();
for(int l=0;l&rtruns.l++){
int index = rtruns[l].getFontIndex();
String name = rtruns[l].getFontName();
rtruns[l].setFontIndex(1);
rtruns[l].setFontName("宋体");
img = new BufferedImage((int) Math.ceil(pgsize.width * zoom), (int) Math.ceil(pgsize.height * zoom), BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setTransform(at);
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide[i].draw(graphics);
graphics.getPaint();
slideImage = Image.getInstance(img, null);
table.addCell(new PdfPCell(slideImage, true));
if (fileType.equalsIgnoreCase(".pptx")) {
XMLSlideShow ppt = new XMLSlideShow(inputStream);
pgsize = ppt.getPageSize();
XSLFSlide slide[] = ppt.getSlides();
pdfDocument.setPageSize(new Rectangle((float) pgsize.getWidth(), (float) pgsize.getHeight()));
pdfWriter.open();
pdfDocument.open();
for (int i = 0; i & slide. i++) {
for( XSLFShape shape : slide[i].getShapes() ){
if ( shape instanceof XSLFTextShape ){
XSLFTextShape txtshape = (XSLFTextShape)
// System.out.println("txtshape" + (i+1) + ":" + txtshape.getShapeName());
//System.out.println("text:" +txtshape.getText());
for ( XSLFTextParagraph textPara : txtshape.getTextParagraphs() ){
List&XSLFTextRun& textRunList = textPara.getTextRuns();
for(XSLFTextRun textRun: textRunList) {
textRun.setFontFamily("宋体");
img = new BufferedImage((int) Math.ceil(pgsize.width * zoom), (int) Math.ceil(pgsize.height * zoom), BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setTransform(at);
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
slide[i].draw(graphics);
FileOutputStream out = new FileOutputStream("src/main/resources/test"+i+".jpg");
javax.imageio.ImageIO.write(img, "jpg", out);
graphics.getPaint();
slideImage = Image.getInstance(img, null);
table.addCell(new PdfPCell(slideImage, true));
pdfDocument.add(table);
pdfDocument.close();
pdfWriter.close();
System.out.println("Powerpoint file converted to PDF successfully");
maven配置:
&dependency&
&groupId&org.apache.poi&/groupId&
&artifactId&poi&/artifactId&
&!-- &version&3.13&/version& --&
&version&3.9&/version&
&/dependency&
&dependency&
&groupId&org.apache.poi&/groupId&
&artifactId&poi-ooxml&/artifactId&
&!-- &version&3.10-FINAL&/version& --&
&version&3.9&/version&
&/dependency&
&dependency&
&groupId&com.itextpdf&/groupId&
&artifactId&itextpdf&/artifactId&
&version&5.5.7&/version&
&/dependency&
&dependency&
&groupId&com.itextpdf.tool&/groupId&
&artifactId&xmlworker&/artifactId&
&version&5.5.7&/version&
&/dependency&
&dependency&
&groupId&org.apache.poi&/groupId&
&artifactId&poi-scratchpad&/artifactId&
&!-- &version&3.12&/version& --&
&version&3.9&/version&
&/dependency&
上面就是为大家分享的java实现PPT转PDF出现中文乱码问题的解决方法,希望对大家的学习有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具}

我要回帖

更多关于 乱码转换器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信