这篇文章介绍如何在Java应用程序中将PDF转换为HTML、Word、图片、SVG、XPS、PDF/A等格式。
本文所使用的PDF组件:
Free Spire.PDF for Java
Free Spire.PDF for Java是一个免费Java PDF组件,支持创建PDF文档、操作现有PDF文档,以及将PDF文件转换为其他文件格式,同时也支持将其他文件格式如XPS转换为PDF格式。
使用以下代码前,需要下载Free Spire.PDF for Java包并解压缩,然后将lib文件夹下的jar文件导入至Java应用程序中,如图:
代码示例
通过PdfDocument.saveToFile(string filename, FileFormat fileformat)方法,可以将PDF文件保存为XPS、Word、HTML、SVG等格式。此外,Free Spire.PDF for Java也支持将结果保存到流:PdfDocument.saveToStream(OutputStream stream, FileFormat fileformat)。
PDF转XPS
//加载PDF
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("Input.pdf");
//保存为XPS格式
pdf.saveToFile("ToXPS.xps", FileFormat.XPS);
PDF转Word (Doc/Docx)
pdf.saveToFile("ToWord.docx", FileFormat.DOCX);
PDF转SVG
pdf.saveToFile("ToSVG.svg", FileFormat.SVG);
PDF转HTML
pdf.saveToFile("ToHTML.html", FileFormat.HTML);
PDF转PDF/A
//加载PDF
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("Input.pdf");
//创建一个新的PDF/A-1b文档,将原PDF文档页面内容画至新文档
PdfNewDocument newPdf = new PdfNewDocument();
newPdf.setConformance(PdfConformanceLevel.Pdf_A_1_B);
for (PdfPageBase page : (Iterable) pdf.getPages()) {
Dimension2D size = page.getSize();
PdfPageBase p = newPdf.getPages().add(size, new PdfMargins(0));
page.createTemplate().draw(p, 0, 0);
}
//保存
newPdf.save("Output.pdf");
newPdf.close();
PDF转图片
//加载PDF文件
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("Input.pdf");
//保存PDF的每一页到图片
BufferedImage image;
for (int i = 0; i < pdf.getPages().getCount(); i++) {
image = pdf.saveAsImage(i);
File file = new File( String.format("ToImage-img-%d.png", i));
ImageIO.write(image, "PNG", file);
}
pdf.close();
XPS转PDF
使用PdfDocument.loadFromXPS()方法可以加载XPS文件,然后通过PdfDocument.saveToFile(string filename, FileFormat fileformat)将XPS文件保存为PDF格式。
//加载XPS文件
PdfDocument pdf = new PdfDocument();
pdf.loadFromXPS("ToXPS.xps");
//保存为PDF
pdf.saveToFile("ToPDF.pdf", FileFormat.PDF);