[deepamehta-devel] PDF Topic Preview

Malte Reißig mre at deepamehta.de
Di Jan 13 15:14:16 CET 2009


Hey Enrico,

auch dir vielen Dank.
Ja ans Encoding hab ich auch nicht gedacht, ich probiers noch mal aus
und werde dann weiter berichten.

Danke schonmal!

Gruß Malte

Enrico Schnepel wrote on 13.01.2009 09:05:
> Hallo Malte,
>
> da fällt mir nur ein, das byte != char ist. das heißt du kannst nicht
> ein String nehmen und einfach getBytes aufrufen, denn dies liefert dir
> nur die zu Bytes konvertierten Chars aus dem String. Wie immer gibt es
> dabei Probleme mit dem Encoding. (Wer hat so etwas doofes wie Encoding
> überhaupt erfunden? - Grrr! ;-) Wenn jeder UTF8 nehmen würde, hätte
> man nicht so viel Probleme!)
> Du findest hier...
> http://svn.apache.org/repos/asf/james/mime4j/trunk/src/main/java/org/apache/james/mime4j/decoder/
> einen Base64Input- und OutputStream. Damit kannst du auf jeden Fall
> Bytes sicher zu Chars konvertieren und auch wieder zurück.
>
> cu
>
> Enrico
>
> Malte Reißig schrieb:
> > 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
> >>
> > _______________________________________________
> > deepamehta-devel mailing list
> > deepamehta-devel at lists.berlios.de
> > https://lists.berlios.de/mailman/listinfo/deepamehta-devel
>

_______________________________________________
deepamehta-devel mailing list
deepamehta-devel at lists.berlios.de
https://lists.berlios.de/mailman/listinfo/deepamehta-devel





Mehr Informationen über die Mailingliste devel