iText:将PDF分成几个PDF(每页1个)
我想要的是:给定一个10页的pdf文件,我想在网络上的表格中显示该pdf的每一页。 实现这一目标的最佳方法是什么? 我想一种方法是将这个10页-pdf文件分成10页1页pdf,并以编程方式将每个pdf显示在一行表格上。 我可以用iText做到这一点吗? 有没有更好的方法来实现这一目标?
从拆分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 }
- 在flying-saucer的pdf页面之间打破了嵌入的图像
- itext java pdf to text creation
- 我可以使用iText在我的Swing应用程序中呈现PDF吗?
- 使用java将多个图像添加到使用iText的单个pdf文件中
- java.lang.NoClassDefFoundError:com / itextpdf / text / DocumentException
- 如何将itext pdf文件的段落设置为带有Java背景颜色的矩形
- 从pdf获取页面并使用itext将其保存到图像文件中
- iTextPdf 5.5.1 – 使用自定义字体将大型HTML转换为单页PDF
- 无法从byte 读取JPEG文件