2012-05-17 9 views
1

У меня есть бизнес-требование, которое требует от меня разложения PDF-файлов на несколько документов. Допустим, у меня есть 100-мегабайтный pdf-файл, мне нужно разделить его на простоту, на несколько PDF-файлов размером не более 10 МБ.iText Pdf Page Byte Size

Я использую 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

Я думаю, что самый простой способ, чтобы записать его на диск и удалить его впоследствии:

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

Я не совсем уверен, я признаю, но Я не знаю, как должно быть возможно определить размер файла, если файл не существует.

+0

Правильно, я просто хотел назвать что-то вроде page.size. Я собираюсь сделать это для очень большого количества документов, и мой конечный результат состоит в том, чтобы иметь всего 10 файлов и не хотел создавать 100 файлов для определения соответствующих размеров. Но похоже, что это то, что мне нужно сделать. Благодаря!! – Keith