ich habe mir zum Einfügen einer Zugferd XML in ein vorhandenes Pdf folgende Vorgehensweise überlegt:
- xml Stream komprimieren
geht problemlos mit CompressStream aus fpPdf in fcl-pdf
- komprimieten xml Stream in pdf Stream einfügen
Hierzu habe ich mich für AddInDirectObject aus fppdfobjects.pp in fcl-pdf entschieden
Achtung: fppdfobjects ist erst ab Lazarus 4.x enthalten, ich verwende die trunk version
Hat jemand eine bessere Idee die xml in ein pdf einzufügen? Bitte in die Kommentare schreiben.
Code: Alles auswählen
T := TMemoryStream.Create;
CompressStream(S,T);
if OpenDialog1.Execute then begin
F:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead or fmShareDenyWrite);
PdfDoc:=TPDFDocument.Create();
P:=TPDFParser.Create(F);
P.ParseDocument(PdfDoc);
PdfDoc.AddInDirectObject(PdfInd);
T.Read(TPdfIndirect(PdfInd).Stream,T.size);
end;
Ich verstehe, dass TPdfIndirect(PdfInd).Stream eine Konstante ist.
Wie kriege ich den Steam da rein?