Delphi ActiveX
Delphi ActiveX
Extract and Save PDF from SOAP XML
See more XML Examples
Demonstrates how to extract and save PDF file that is embedded in SOAP XML (or any XML).Chilkat Delphi ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
xml: TChilkatXml;
pdfElement: IChilkatXml;
begin
success := 0;
xml := TChilkatXml.Create(Self);
success := xml.LoadXmlFile('qa_data/soap/soapWithPdf.xml');
if (success <> 1) then
begin
Memo1.Lines.Add(xml.LastErrorText);
Exit;
end;
// The XML we loaded looks like this:
// <?xml version="1.0" encoding="utf-8" ?>
// <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
// <s:Body>
// <ObtenerPDFResponse xmlns="http://xyz.org/">
// <ObtenerPDFResult xmlns:a="http://schemas.xyz.org/something" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
// <a:CBB i:nil="true" />
// <a:CodigoConfirmacion i:nil="true" />
// <a:ErrorDetallado />
// <a:ErrorGeneral i:nil="true" />
// <a:FechaGenerada i:nil="true" />
// <a:FolioGenerado i:nil="true" />
// <a:OperacionExitosa>true</a:OperacionExitosa>
// <a:PDF>JVBERi0xLjQKJe...</a:PDF>
// <a:XML i:nil="true" />
// </ObtenerPDFResult>
// </ObtenerPDFResponse>
// </s:Body>
// </s:Envelope>
pdfElement := xml.FindChild('s:Body|ObtenerPDFResponse|ObtenerPDFResult|a:PDF');
if (xml.LastMethodSuccess <> 1) then
begin
Memo1.Lines.Add('Did not find the PDF element at the expected location.');
Exit;
end;
success := pdfElement.SaveBinaryContent('qa_output/out.pdf',0,0,'');
if (success <> 1) then
begin
Memo1.Lines.Add(xml.LastErrorText);
Exit;
end;
Memo1.Lines.Add('Successfully extracted and saved the PDF.');
end;