我想要的是:给定一个10页的pdf文件,我想在web上的一个表格中显示该pdf的每一页。实现这一目标的最佳途径是什么?我想一种方法是将这个10页的pdf文件拆分为10个1页的pdf,并以编程方式将每个pdf显示在表格的一行上。我可以用iText做这个吗?有没有更好的方法来实现这一点?
4jb9z9bj1#
锁定,本次有disputes about this answer’s content正在解析。它目前不接受新的交互。
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 */ } }
sh7euo9m2#
使用PDDocument,您可以非常轻松地做到这一点。您只需使用PDDocumen t类型的Java List和Splitter函数来拆分文档。
PDDocument
PDDocumen
Splitter
List<PDDocument> Pages=new ArrayList<PDDocument>(); 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 }
8xiog9wr3#
我不能发表评论,但这句话在投票最多的回答
Document document = new Document(reader.getPageSizeWithRotation(1));
应该是
Document document = new Document(reader.getPageSizeWithRotation(i+1));
如果其他页面有不同的页面大小,要获得正确的PDF大小(它知道这是罕见的)
3条答案
按热度按时间4jb9z9bj1#
锁定,本次有disputes about this answer’s content正在解析。它目前不接受新的交互。
sh7euo9m2#
使用
PDDocument
,您可以非常轻松地做到这一点。您只需使用
PDDocumen
t类型的Java List和Splitter
函数来拆分文档。8xiog9wr3#
我不能发表评论,但这句话在投票最多的回答
应该是
如果其他页面有不同的页面大小,要获得正确的PDF大小(它知道这是罕见的)