我需要逐页将docx文件转换为图像。因此,如果我将页码传递给一个方法,该方法应该从docx文件中读取该页面并将其转换为图像。有使用Apache POI API的例子吗?我为pptx文件做了这件事,但没能为docx找到类似的方法。以下是pptx的代码。
FileInputStream is = new FileInputStream(strTempPath);
XMLSlideShow pptx = new XMLSlideShow(is);
is.close();
double zoom = 2; // magnify it by 2
AffineTransform at = new AffineTransform();
at.setToScale(zoom, zoom);
Dimension pgsize = pptx.getPageSize();
XSLFSlide[] slide = pptx.getSlides();
}
// BufferedImage img = new BufferedImage((int)Math.ceil(pgsize.width*zoom), (int)Math.ceil(pgsize.height*zoom), BufferedImage.TYPE_INT_RGB);
BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, 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[iPageNo].draw(graphics);
// FileOutputStream output = new ByteArrayOutputStream("C:/Temp/aspose/word/slide-" + (10 + 1) + ".png");
output = new ByteArrayOutputStream();
javax.imageio.ImageIO.write(img, "png", output);
与具有页面自然概念的演示不同,WordML格式中没有这样的页面。
这取决于消费应用程序是否需要创建页面布局模型(这就是Microsoft Word所做的)。
你可以用docx4j(你已经用它标记了你的问题)做的是使用FOP输出,比如说PNG。