Delphi DLL
Delphi DLL
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 DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Xml;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
xml: HCkXml;
pdfElement: HCkXml;
begin
success := False;
xml := CkXml_Create();
success := CkXml_LoadXmlFile(xml,'qa_data/soap/soapWithPdf.xml');
if (success <> True) then
begin
Memo1.Lines.Add(CkXml__lastErrorText(xml));
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 := CkXml_FindChild(xml,'s:Body|ObtenerPDFResponse|ObtenerPDFResult|a:PDF');
if (CkXml_getLastMethodSuccess(xml) <> True) then
begin
Memo1.Lines.Add('Did not find the PDF element at the expected location.');
Exit;
end;
success := CkXml_SaveBinaryContent(pdfElement,'qa_output/out.pdf',False,False,'');
if (success <> True) then
begin
Memo1.Lines.Add(CkXml__lastErrorText(xml));
Exit;
end;
Memo1.Lines.Add('Successfully extracted and saved the PDF.');
CkXml_Dispose(xml);
end;