iText Pdf页面字节大小

时间:2012-05-17 18:14:49

标签: java pdf itext

我有一项业务要求,要求我将pdf拆分为多个文档。 假设我有一个100MB的pdf,为了简单起见,我需要将其拆分成多个不超过10MB的pdf文件。

我正在使用iText。

我将获取原始的pdf,并遍历页面,但是如何确定每个页面的文件大小而不将其单独写入磁盘?

简化示例代码


int numPages = reader.getNumberOfPages();

PdfImportedPage page;
for (int currentPage = 0; currentPage < numPages; ){
    ++currentPage;
    //Get page from reader
    page = writer.getImportedPage(reader, currentPage);

// I need the size in bytes here of the page

}   

1 个答案:

答案 0 :(得分:1)

我认为最简单的方法是将其写入磁盘并在之后删除它:

Document document = new Document();
File f= new File("C:\\delete.pdf");  //for instance
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(f));
document.open();
document.add(page);
document.close();
long filesize = f.length();   //this is the filesize in byte
f.delete();

我承认,我并不完全确定,但如果文件不存在,我不知道如何找出文件大小。