PDF in XML

secret Burner

Grünschnabel
Hallo Leute!
Habe folgendes Problem und hoffe es kann mir jemand von Euch dabei helfen!
Ich habe die Aufgabe bekommen ein PDF in ein XML einzubetten. Habe mir daher gedacht ich mache einen Binarystream auf die PDF-Datei und schreibe das ganze einfach in die XML-Datei.
Denkste, das Problem ist hierbei das man Sonderzeichen und dergleichern erhält die nicht XML-Konform sind bzw. gibt es auch eine Vorgabe wie in etwa das Format aussehen soll!

Hiermal der Code den ich bisher habe:
Code:
byte[] returnValue = null;

                    using (FileStream fr = new FileStream(openPDFFile.FileName, FileMode.Open))
                    {
                        using (BinaryReader br = new BinaryReader(fr, Encoding.UTF8))
                        {
                            returnValue = br.ReadBytes((int)fr.Length);
                        }
                    }

Das Format in der XML-Datei sollte danach ungefähr so ausehen:
<PDF_ANHANG ART="PDF">
JVBERi0xLjMKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0ZURlY29k
ZT4+CnN0cmVhbQp4nFWNSwsCMQyE8a3VH9Fje9iYPtNcBRG8Kb2pJ0FPK6z+f7DqoisDyWT4mDTS
SCz6zHMtlnuS14fA973ftOZ+FY34J+UqFzhJY2W+CATmhNwSjJKQwTDLXIuD6mkESpyIVV9bcBRj
........
</PDF_ANHANG>
 
Kannst du den Grund für dieses Vorgehen erklären? Es macht keinen Sinn ein binäres Dokument in ein xml zu packen. Vielleicht hilft es dir schon weiter, statt dem eigentlichen Dokument einfach nur ein Verweis auf dieses in das xml einzupflegen.
 
Hi.

@secret Burner: Du mußt die Daten kodieren (und später wieder dekodieren). Dazu könntest du z.B. Base64 verwenden.

Gruß
 
Danke für die schnelle Antwort!
@tequlla slammer: Ich muss/soll das insofern machen da diese XML-Datei weiter vermittelt wird und es nur möglich ist über XML zu kommunizieren! ;)

@deepthroat: Okay, gut aber wie mache ich das jetzt!? Hätte es wie gesagt schon beim BinaryReader im Konstruktor mit utf8 angegeben! Hättest Du da möglicherweise eine kleines Codeexample dafür? Beziehungsweise mir ist noch nicht ganz klar wie ich jetzt so einen string zurückerhalte wie ich diesen oben angegeben habe!?
 
@deepthroat: Okay, gut aber wie mache ich das jetzt!? Hätte es wie gesagt schon beim BinaryReader im Konstruktor mit utf8 angegeben!
Das bringt nichts. In XML sind einige valide UTF-8 Zeichen nicht erlaubt. \edit: -- vergiss das edit --
Hättest Du da möglicherweise eine kleines Codeexample dafür?
Codebeispiele gibt's doch wie Sand am Meer. :google:
Beziehungsweise mir ist noch nicht ganz klar wie ich jetzt so einen string zurückerhalte wie ich diesen oben angegeben habe!?
Verwende einen XmlWriter und dessen WriteBase64 Methode. (http://msdn.microsoft.com/de-de/library/system.xml.xmlwriter.writebase64(VS.80).aspx)

Gruß
 
Zuletzt bearbeitet:
Zurück