Hilfe beim Parsen einer PDF

crazyracer98

Komplett-PC-Aufrüster(in)
Hallo Leute,
ich habe mal wieder eine Frage:
Und zwar will ich eine PDF-Datei von einem Android-Smartphone parsen
Ich benutze Die Android-PDFBox von mkmatlock (https://bitbucket.org/mkmatlock/android-pdfbox/downloads) und in einem AsyncTask habe ich folgenden Code:
try {
URL url = new URL("meine url");

Base64 enc = new Base64();

String loginPassword = "benutzername:passwort";
String encoded = new String(enc.encodeBase64(loginPassword.getBytes()));
URLConnection con = url.openConnection();
con.setRequestProperty ("Authorization", "Basic " + encoded);

InputStream is = con.getInputStream();

Log.i("PDF", "Got the stream!");
parser = new PDFParser(is);
parser.parse();
Log.i("PDF", "Parsed the stream!");

PDFTextStripper stripper = new PDFTextStripper();
String content = stripper.getText(parser.getPDDocument().getDocument());
Log.i("PDF", "Got the content!");
Log.i("PDF", content);
} catch (Exception e) {
err = true;
}

In der Konsole komme ich bis zu "I/PDF﹕ Parsed the stream!" und danach:

07-06 15:18:41.592 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 296K, 5% free 9946K/10375K, paused 3ms+3ms
07-06 15:18:42.782 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 162K, 4% free 10228K/10567K, paused 3ms+3ms
07-06 15:18:42.902 876-893/<MeinPaket> D/dalvikvm﹕ GC_FOR_ALLOC freed 307K, 5% free 10246K/10759K, paused 32ms
07-06 15:18:43.312 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 378K, 6% free 10314K/10887K, paused 4ms+4ms
07-06 15:18:45.912 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 90K, 3% free 10666K/10887K, paused 5ms+3ms
07-06 15:18:48.163 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 268K, 4% free 10873K/11271K, paused 4ms+4ms
07-06 15:18:50.873 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 375K, 5% free 11064K/11527K, paused 4ms+4ms
07-06 15:18:51.053 876-893/<MeinPaket> D/dalvikvm﹕ GC_FOR_ALLOC freed <1K, 3% free 11544K/11847K, paused 41ms
07-06 15:18:54.493 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 158K, 3% free 12133K/12423K, paused 3ms+9ms
07-06 15:19:05.052 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 493K, 5% free 12566K/13191K, paused 5ms+12ms
07-06 15:19:17.972 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 840K, 8% free 12795K/13767K, paused 3ms+18ms
07-06 15:19:32.283 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 939K, 8% free 13015K/14087K, paused 4ms+21ms
07-06 15:19:47.653 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 1021K, 8% free 13255K/14407K, paused 4ms+19ms
07-06 15:20:04.022 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 1097K, 9% free 13499K/14791K, paused 3ms+18ms
07-06 15:20:22.122 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 1163K, 9% free 13754K/15111K, paused 5ms+20ms
07-06 15:20:40.452 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 1223K, 10% free 14012K/15431K, paused 3ms+20ms
07-06 15:20:59.282 876-880/<MeinPaket> D/dalvikvm﹕ GC_CONCURRENT freed 1275K, 10% free 14280K/15751K, paused 4ms+23ms
07-06 15:21:19.502 876-893/<MeinPaket> D/dalvikvm﹕ GC_FOR_ALLOC freed 1345K, 10% free 14581K/16135K, paused 111ms
07-06 15:21:40.712 876-893/<MeinPaket> D/dalvikvm﹕ GC_FOR_ALLOC freed 1415K, 10% free 14876K/16519K, paused 122ms
07-06 15:22:02.862 876-893/<MeinPaket> D/dalvikvm﹕ GC_FOR_ALLOC freed 1470K, 11% free 15186K/16903K, paused 153ms
07-06 15:22:27.693 876-893/<MeinPaket> D/dalvikvm﹕ GC_FOR_ALLOC freed 1555K, 11% free 15534K/17351K, paused 139ms
device not found

Nach einigen Minuten habe ich abgebrochen
Als minSDK benutze ich 15 und von Android-PDFBox pdfbox.jar und fontbox.jar
Als Emulator habe ich ein Nexus S mit 768M Ram und 256 VM Heap

Gruß crazy
 
Zuletzt bearbeitet:
Hallo crazy,

ich händle meine PDF's anders (ich wandle sie in Bilddateien um, und lasse sie dann ausgeben :ugly:).
Allerdings könnte es gut sein, dass du vergessen hast, der App die Berechtigung für's Internet zu geben?
Scheint, als würde auf irgendwas gewartet, es wird ja kein Error ausgegeben.

Grüße
MF6265
 
Willst du sie wirklich parsen oder nur anzeigen? Wenn du sie nur anzeigen willst würde ich eine WebView verwenden.

Mit der Ausgabe kann ich gerade nicht anfangen, aber GC_xxxx ist alles vom GarbageCollector, der scheint da fleissig am werkeln zu sein. Wenn die Ausgabe nur von deiner App ist scheinen hier einige Objekte erzeugt zu werden die anschließend vom GC wieder entsorgt werden -> Irgendwas macht die App :ugly:

Edit:
mach mal in deinen catch ein e.printStackTrace();, villeicht passiert da was (je nachdem was du mit err machst)
 
Zurück