[deepamehta-devel] PDF Topic Preview

Malte Reißig mre at deepamehta.de
Mo Jan 12 22:08:39 CET 2009


Hey Danny,

ist ja super von dir zu hören.
Momentan versuche ich folgendes, bin dank deines Hinweis auch wieder
weiter gekommen und habe beim drüberschauen noch Fehler bei mir
entdeckt. Jetzt denke ich, hakt es woanders. Ich erkläre es nochmal
kurz, wie wir uns das momentan gedacht haben.

In DM werden ja alle Properties als String in der TopicProp Tabelle im
CM hinterlegt. Momentan schreibe ich also entweder

1) mittels eines BufferedReaders.readLine() den Inhalt der PDFFile in's
CM. Das scheint aber schon nicht korrekt zu funktionieren, denn wenn ich
diesen Wert aus der DB "dumpe" und in "value.pdf" speicher, ist diese
nicht mehr mit einem PDFViewer zu lesen. Ich kann mir hier aber auch
irgendwie nicht vorstellen das der InputStream durch die zwei Buffer und
der toString Methode korrumpiert werden sollte.

2) oder mittels DataInputStream, welcher mir bei dis.readUTF() immer
nach ein paar Bytes einlesen um die Ohren fliegt, mit der Meldung: 
"malformed input around byte 10"

Wenn ich jetzt diese Datei als String in der DB abspeichern will, müsste
ich wahrscheinlich die Bytes mittels readByte() lesen und immer zwei
Bytes von Hand in einen x-beliebigen String kodieren, damit hätte ich
dann die gleichen Bytes wieder mit text.getBytes()..

zum pdf-renderers findet sich etwas mehr hier
https://pdf-renderer.dev.java.net/examples.html

Nur wenn ich den ByteBuffer wie folgt fülle, kann ich auch die PDFFile
korrekt erzeugen. Vielleicht verstehe ich auch hier etwas nicht ganz...

RandomAccessFile raf = new RandomAccessFile(file, "r");
FileChannel channel = raf.getChannel();
ByteBuffer buff = channel.map(FileChannel.MapMode.READ_ONLY, 0,
channel.size());
PDFFile pdffile = new PDFFile(buff);

Die pdfTopic sourcen, könnte ich dir irgendwie mal im Wiki hinterlassen,
dachte mir, das dass jetzt noch nicht so viel sinn hat. Zum testen
müsste ich dir eine kleine Anleitung schreiben und noch zwei
dm-source-files schicken. Aber ich dachte mir, vielleicht sieht man die
Fehler jetze schon.

Danke und'nen fetten Gruß!

Malte

Danny Gräf wrote on 11.01.2009 13:06:
> Hallo Malte,
>
> bin in letzter Zeit mal wieder ein wenig OutOfOrder,
>
> funktioniert new String("bytefoo").getBytes() nicht oder was genau
> versuchst Du da? Ansonsten kannst Du die Streams auch ohne den Umweg
> über String verbinden. Würde Dich da gern unterstützen. Wie kann ich
> auf die entsprechenden Sourcen bzw. Tests zugreifen?
>
> Gruß Danny
>



Mehr Informationen über die Mailingliste devel