要将PDF转换为图像,可以使用PDFbox
以下是使用pdfbox API将PDF转换为图像的代码
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageNode;
public List generateImages(String pdfFile) throws IOException {
String imagePath = "/Users/$user/pdfimages/";
List fileNames = new ArrayList();
document = PDDocument.load(pdfFile); load pdf
node = document.getDocumentCatalog().getPages(); / get pages
List kids = node.getKids();
int count=0;
for(PDPage page : kids) { / iterate
BufferedImage img = page.convertToImage(BufferedImage.TYPE_INT_RGB,128);
File imageFile = new File(imagePath+ count++ + ".jpg");
ImageIO.write(img, "jpg", imageFile);
fileNames.add(imageFile.getName());
}
return fileNames;
}
另外,另一个库ApachePOI可用于将PDF转换为图像
这是代码示例
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;
public class JavaApplication12 {
public static void main(String[] args) throws FileNotFoundException, IOException {
FileInputStream is = new FileInputStream(“D:/Presentation1.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, 1);
Graphics2D graphics = img.createGraphics();
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BICUBIC);
graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,
RenderingHints.VALUE_FRACTIONALMETRICS_ON);
graphics.setColor(Color.white);
graphics.clearRect(0, 0, pgsize.width, pgsize.height);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
// render
slide[i].draw(graphics);
// save the output
FileOutputStream out = new FileOutputStream(“slide-” + (i + 1) + “.png”);
javax.imageio.ImageIO.write(img, “png”, out);
out.close();
}
}
}
要将MS Word转换为图像,请查看发布的问题here
使用哪个JODConverter
JODConverter自动执行支持的所有转换,包括
>任何格式的PDF
??o OpenDocument(文本,电子表格,演示文稿)为PDF
??o Word转换为PDF; Excel转PDF PowerPoint转PDF
??o RTF转换为PDF; WordPerfect到PDF; …
>还有更多
??o OpenDocument Presentation(odp)到Flash; PowerPoint到Flash
??o RTF到OpenDocument; WordPerfect到OpenDocument
??o任何HTML格式(有限制)
??o支持 1.0和旧版StarSuite格式