使用POI将ppt幻灯片导出为图片,但是其中的中文是乱码,如何解决

问题如题,结果如下图。java代码如下:importjava.awt.Color;importjava.awt.Dimension;importjava.awt.Grap... 问题如题,结果如下图。
java代码如下:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;

public class TestPOI0 {

/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {

FileInputStream is = new FileInputStream("d:\\test.ppt");
SlideShow ppt = new SlideShow(is);
is.close();
Dimension pgsize = ppt.getPageSize();

Slide[] slide = ppt.getSlides();

for (int i = 0; i < slide.length; i++) {
BufferedImage img = new BufferedImage(pgsize.width, pgsize.height,
BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
// clear the drawing area
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width,
pgsize.height));
// render
slide[i].draw(graphics);
// save the output
FileOutputStream out = new FileOutputStream("d:\\slide-" + (i + 1)
+ ".jpg");
javax.imageio.ImageIO.write(img, "jpg", out);
out.close();
}

}
}
展开
 我来答
Foxcoming
2009-04-01 · TA获得超过692个赞
知道小有建树答主
回答量:718
采纳率:0%
帮助的人:817万
展开全部
应该是和字体定义有关系的。POI中默认没有中文字体。要自己加,而且对于斜体、粗体的控制,中文字体和英文字体的处理是不同的,而POI只支持英文的处理方式。几年前曾经作为一个BUG提交给POI,但POI答复不认为是BUG。然后我提交new Feature,建议按照Java Swing中对中文字体的处理方法来处理,POI项目组答复和体系结构有关系,不准备追加,不知道现在有没有进展。

印象中POI有一个字体文件的定义,要参看他的文档中,关于Locale 和 font的说明。
博思aippt
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT... 点击进入详情页
本回答由博思aippt提供
wenwen0503
2009-03-30 · TA获得超过4379个赞
知道小有建树答主
回答量:650
采纳率:0%
帮助的人:427万
展开全部
如果幻灯片数量不多的情况下可以用截屏键Print Screen来逐一解决,这个应该不会出问题的。如果数量较大可以幻灯片另存为windows图元文件(.wmf),然后把每张图片都改为jpg 或者bmp的格式。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dy7197
2009-03-31 · TA获得超过5695个赞
知道大有可为答主
回答量:4111
采纳率:25%
帮助的人:3822万
展开全部
转换时清除绘图区了.

你看他那文字是否是图片格式.

还有你对输出图的图片格式与原格式不要做改动,再尝试下.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
初尘OGjGN
2009-03-29 · TA获得超过346个赞
知道答主
回答量:330
采纳率:0%
帮助的人:117万
展开全部
期待
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式