`
nanjingjiangbiao_T
  • 浏览: 2594149 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

java转换ppt,ppt转成图片 乱码问题解决

 
阅读更多

java转换ppt,ppt转成图片,ppt转成flash,乱码问题解决

想了很久,本来是想找一个flash文档阅读器,但是没有找到,后来我想。把ppt转换成图片,然后在放入flash 或者网页就可以了。 去网上搜了一段代码ppt转换成图片,但是图片出现乱码,后来我把文字类型设置为 宋体 就可以了。刚刚解决问题,就拿出来给大家分享了。

关键代码就是: rtruns[l].setFontName("宋体");

<wbr><p>import java.awt.Dimension;<br>import java.io.File;<br>import java.io.FileInputStream;<br>import java.io.FileNotFoundException;<br>import java.io.FileOutputStream;<br>import java.io.IOException;</p> <p>import java.awt.Color;<br>import java.awt.Dimension;<br>import java.awt.Graphics2D;<br>import java.awt.geom.Rectangle2D;<br>import java.awt.image.BufferedImage;</p> <p>import org.apache.poi.hslf.model.TextRun;<br>import org.apache.poi.hslf.record.Slide;<br>import org.apache.poi.hslf.usermodel.RichTextRun;<br>import org.apache.poi.hslf.usermodel.SlideShow;</p> <p>public class PPTtoImage {<br>public static void main(String[] args) {<br>// 读入PPT文件<br>File file = new File("F:/20110618.ppt");<br>doPPTtoImage(file);<br>}</p> <p>public static boolean doPPTtoImage(File file) {<br>boolean isppt = checkFile(file);<br>if (!isppt) {<br>System.out.println("The image you specify don't exit!");<br>return false;<br>}<br>try {</p> <p>FileInputStream is = new FileInputStream(file);<br>SlideShow ppt = new SlideShow(is);<br>is.close();<br>Dimension pgsize = ppt.getPageSize();<br>org.apache.poi.hslf.model.Slide[] slide = ppt.getSlides();<br>for (int i = 0; i &lt; slide.length; i++) {<br>System.out.print("第" + i + "页。");<br>TextRun[] truns = slide[i].getTextRuns();<br>for (int k = 0; k &lt; truns.length; k++) {<br>RichTextRun[] rtruns = truns[k].getRichTextRuns();<br>for (int l = 0; l &lt; rtruns.length; l++) {<br>int index = rtruns[l].getFontIndex();<br>String name = rtruns[l].getFontName();<br>rtruns[l].setFontIndex(1);<br>rtruns[l].setFontName("宋体");<br>System.out.println(rtruns[l].getText());<br>}<br>}<br>BufferedImage img = new BufferedImage(pgsize.width,<br>pgsize.height, BufferedImage.TYPE_INT_RGB);</p> <p>Graphics2D graphics = img.createGraphics();<br>graphics.setPaint(Color.white);<br>graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width,<br>pgsize.height));<br>slide[i].draw(graphics);</p> <p>// 这里设置图片的存放路径和图片的格式(jpeg,png,bmp等等),注意生成文件路径<br>FileOutputStream out = new FileOutputStream("F:/test/pict_"<br>+ (i + 1) + ".jpeg");<br>javax.imageio.ImageIO.write(img, "jpeg", out);<br>out.close();</p> <p>}<br>System.out.println("success!!");<br>return true;<br>} catch (FileNotFoundException e) {<br>System.out.println(e);<br>// System.out.println("Can't find the image!");<br>} catch (IOException e) {<br>}<br>return false;<br>}</p> <p>// function 检查文件是否为PPT<br>public static boolean checkFile(File file) {</p> <p>boolean isppt = false;<br>String filename = file.getName();<br>String suffixname = null;</p> <p>if (filename != null &amp;&amp; filename.indexOf(".") != -1) {<br>suffixname = filename.substring(filename.indexOf("."));<br>if (suffixname.equals(".ppt")) {<br>isppt = true;<br>}<br>return isppt;<br>} else {<br>return isppt;<br>}<br>}</p> <p>}</p> <p></p> <p></p> <pre _extended="true"><p style="TEXT-INDENT: 2em"><a href="http://yijianfengvip.blog.163.com/profile/" target="_blank">肯定知道</a>-精品推荐:</p><p style="TEXT-INDENT: 2em">1、<a href="http://hi.baidu.com/yijianfeng_vip/blog/item/ddcf846a40385fe242169462.html" target="_blank">一个土八路凭什么让冈村宁次都忌惮?</a></p><p style="TEXT-INDENT: 2em">2、<a title="阅读全文" href="http://yijianfengvip.blog.163.com/blog/static/1752734322010112402724792/" target="_blank">二战时期仅有的国军开坦克追日本兵,都压成肉酱了!!!</a></p><p style="TEXT-INDENT: 2em">3、<a href="http://hi.baidu.com/yijianfeng_vip/blog/item/aa5232d342826918a18bb786.html" target="_blank">军事奇迹:看一书生7000人马横扫大半个中国的奇迹</a></p><p style="TEXT-INDENT: 2em">4、<a title="阅读全文" href="http://yijianfengvip.blog.163.com/blog/static/175273432201152704519296/" target="_blank">国军悍将创造军事奇迹后为什么会投降日军?</a></p><p style="TEXT-INDENT: 2em">5、<a href="http://hi.baidu.com/yijianfeng_vip/blog/item/b1db5fcab6bb7a480fb34511.html" target="_blank">国军战神曹锡,一人消灭日军一个大队!</a></p><p style="TEXT-INDENT: 2em">6、<a title="阅读全文" href="http://yijianfengvip.blog.163.com/blog/static/175273432201152422613518/" target="_blank">flash无法覆盖的问题_三种办法可以解决flash覆盖其他元素</a></p><p style="TEXT-INDENT: 2em">7、<a title="阅读全文" href="http://yijianfengvip.blog.163.com/blog/static/175273432201152484419285/" target="_blank">南海石油30年疯狂开采,到底还剩多少?</a></p><p style="TEXT-INDENT: 2em">8、<a title="阅读全文" href="http://yijianfengvip.blog.163.com/blog/static/17527343220115205550873/" target="_blank">送礼国家也收税?莫不是都疯啦?</a></p><p style="TEXT-INDENT: 2em">9、<a title="阅读全文" href="http://yijianfengvip.blog.163.com/blog/static/17527343220115275252565/" target="_blank">古代第一美女的悲惨结局</a></p><p style="TEXT-INDENT: 2em">10、<a title="阅读全文" href="http://yijianfengvip.blog.163.com/blog/static/175273432201141912041263/" target="_blank">中国空军光棍节轰炸日本航母“龙骧”号</a></p><p style="TEXT-INDENT: 2em">11、<a title="阅读全文" href="http://yijianfengvip.blog.163.com/blog/static/17527343220114191155928/" target="_blank">日本本土史上第一次空袭竟是中国轰炸机</a></p><p style="TEXT-INDENT: 2em">12、<a title="阅读全文" href="http://yijianfengvip.blog.163.com/blog/static/175273432201152811645940/" target="_blank">中原大战中老将的王牌战将为何被害?</a></p><p style="TEXT-INDENT: 2em">13、<a href="http://hi.baidu.com/yijianfeng_vip/blog/item/13fc1843ed5da390b2b7dcc1.html" target="_blank">刷流量软件-免费刷流量工具-软件 </a></p><p style="TEXT-INDENT: 2em">14、<a href="http://hi.baidu.com/yijianfeng_vip/blog/item/2565143344efaca2d0a2d3cf.html" target="_blank">免费刷流量-软件</a></p></pre> <p></p></wbr>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics