这篇文章介绍如何在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
//加载PDFPdfDocument 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
//加载PDFPdfDocument 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<PdfPageBase>) 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");//保存为PDFpdf.saveToFile("ToPDF.pdf", FileFormat.PDF);