[deepamehta-devel] PDF Topic Preview

Enrico Schnepel enrico.schnepel at randomice.net
Di Jan 13 09:05:48 CET 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAklsS1sACgkQ2n08vWt9Ijdz4QCfeL+FRqG7nh43TapgRL23jcY0
x5UAn08+DujURmnece/NxVDX9pYAMu6a
=g7RQ
-----END PGP SIGNATURE-----




Mehr Informationen über die Mailingliste devel