2

我有一个业务需求,需要我将 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

}   

4

1 回答 1

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();

我承认,我不确定,但我不知道如果文件不存在,应该如何计算文件大小。

于 2012-05-18T11:19:37.397 回答