2016-06-30 15 views
1

Mein Problem ist folgendes:zu finden, ohne die gesamte Datei lesen

Es gibt einige große PDF-Dateien (> 500 MB) und ich möchte ihre Seitenanzahl finden, JAVA verwenden. Wenn ich itext oder pdfbox benutze, muss ich warten, bis es die ganze Datei liest und meistens schlägt das fehl, wegen der großen Dateigröße oder es dauert nur sehr viel Zeit.

Also ich würde gerne wissen, ob es eine schnelle und effiziente Möglichkeit gibt, die Seitenzahl einer PDF-Datei zu finden.

+0

vielleicht hilft? http://stackoverflow.com/questions/6026971/page-count-of-pdf-with-java?rq=1 –

+0

Nein, ich habe es versucht und es dauert immer noch eine Menge Zeit ... Ich suche etwas wie Lesen Sie die Metadaten und nehmen Sie die Seitenzahl – user3519936

+1

Nein, Metadaten (falls verfügbar) ist nicht dafür. –

Antwort

0

Mögliche Duplikate? Page count of Pdf with Java

und das ist Post, Mark Storer ‚s Antwort:

Die itext API ein wenig Überholung unterzog. Jetzt (in der Version 5.4.x) die richtige Art und Weise zu verwenden, es durch java.io.RandomAccessFile passieren soll:

int efficientPDFPageCount(File file) { 
    RandomAccessFile raf = new RandomAccessFile(file, "r"); 
    RandomAccessFileOrArray pdfFile = new RandomAccessFileOrArray(
      new RandomAccessSourceFactory().createSource(raf)); 
    PdfReader reader = new PdfReader(pdfFile, new byte[0]); 
    int pages = reader.getNumberOfPages(); 
    reader.close(); 
    return pages; 
} 
+0

Dieser Beitrag ist 5 Jahre alt, und in meinem Fall dauert diese Methode noch viel Zeit ... – user3519936

+0

@ user3519936 Bitte teilen Sie die fragliche Datei und geben Sie eine akzeptable Menge an Zeit. – mkl

Verwandte Themen