我有一项业务要求,要求我将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
}
答案 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();
我承认,我并不完全确定,但如果文件不存在,我不知道如何找出文件大小。