Sample code for 30+ languages & platforms
Tcl

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 Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

set xml [new_CkXml]

set success [CkXml_LoadXmlFile $xml "qa_data/soap/soapWithPdf.xml"]
if {$success != 1} then {
    puts [CkXml_lastErrorText $xml]
    delete_CkXml $xml
    exit
}

# 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 is a CkXml
set pdfElement [CkXml_FindChild $xml "s:Body|ObtenerPDFResponse|ObtenerPDFResult|a:PDF"]
if {[CkXml_get_LastMethodSuccess $xml] != 1} then {
    puts "Did not find the PDF element at the expected location."
    delete_CkXml $xml
    exit
}

set success [CkXml_SaveBinaryContent $pdfElement "qa_output/out.pdf" 0 0 ""]
if {$success != 1} then {
    puts [CkXml_lastErrorText $xml]
    delete_CkXml $xml
    exit
}

puts "Successfully extracted and saved the PDF."

delete_CkXml $xml