iText:将PDF分成几个PDF(每页1个)

我想要的是:给定一个10页的pdf文件,我想在网络上的表格中显示该pdf的每一页。 实现这一目标的最佳方法是什么? 我想一种方法是将这个10页-pdf文件分成10页1页pdf,并以编程方式将每个pdf显示在一行表格上。 我可以用iText做到这一点吗? 有没有更好的方法来实现这一目标?

看看这里:

http://www.rgagnon.com/javadetails/java-0647.html

有趣的是,下面粘贴的代码就是我指出的代码;-)

从拆分PDF文件(使用iText)

import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.pdf.PdfCopy; import com.lowagie.text.pdf.PdfImportedPage; import com.lowagie.text.pdf.PdfReader; public class SplitPDFFile { /** * @param args */ public static void main(String[] args) { try { String inFile = args[0].toLowerCase(); System.out.println ("Reading " + inFile); PdfReader reader = new PdfReader(inFile); int n = reader.getNumberOfPages(); System.out.println ("Number of pages : " + n); int i = 0; while ( i < n ) { String outFile = inFile.substring(0, inFile.indexOf(".pdf")) + "-" + String.format("%03d", i + 1) + ".pdf"; System.out.println ("Writing " + outFile); Document document = new Document(reader.getPageSizeWithRotation(1)); PdfCopy writer = new PdfCopy(document, new FileOutputStream(outFile)); document.open(); PdfImportedPage page = writer.getImportedPage(reader, ++i); writer.addPage(page); document.close(); writer.close(); } } catch (Exception e) { e.printStackTrace(); } /* example : java SplitPDFFile d:\temp\x\tx.pdf Reading d:\temp\x\tx.pdf Number of pages : 3 Writing d:\temp\x\tx-001.pdf Writing d:\temp\x\tx-002.pdf Writing d:\temp\x\tx-003.pdf */ } } 

这里有很多iText示例。

使用PDDocument您可以非常轻松地完成此操作。

您只需使用PDDocumen的Java List类型和Splitter函数来拆分文档。

 List Pages=new ArrayList(); PDDocument.load(filePath); try { Splitter splitter = new Splitter(); Pages = splitter.split(document); } catch(Exception e) { e.printStackTrace(); // print reason and line number where error exist }