Sample code for 30+ languages & platforms
Java

Extract PDF from General Ledger Transactions XML

See more Office365 Examples

Demonstrates how to extract the base64 data representing a PDF file from a General Ledger Transactions XML.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Xml;

public class ChilkatExample {

    public static void main(String[] args) {
        // The General Ledger Transactions XML contains the following:

        // <?xml version="1.0" encoding="utf-8" ?>
        // <eExact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="eExact-XML.xsd">
        //     <GLTransactions>
        //         <GLTransaction entry="100000095">
        //             <TransactionType number="20" />
        //             <Journal type="20" code="VK">
        //                 <Description termid="90003">Verkopen</Description>
        //                 <GLAccount type="20" code="400000" />
        //                 <Currency code="EUR" />
        //             </Journal>
        //             <Date>2022-04-05</Date>
        //             <Document>
        //                 <Subject>100000095</Subject>
        //                 <DocumentType number="10" />
        //                 <Account code="0001" status="C" />
        //                 <Amount>
        //                     <Currency code="EUR" />
        //                     <Value>1382.91</Value>
        //                 </Amount>
        //                 <References>
        //                     <InvoiceNumber>100000095</InvoiceNumber>
        //                 </References>
        //                 <Attachments>
        //                     <Attachment>
        //                         <Name>F_100000095.PDF</Name>
        //                         <BinaryData>BASE64_ENCODED_PDF_BYTES_HERE</BinaryData>
        //                     </Attachment>
        //                 </Attachments>
        //             </Document>
        //             <GLTransactionLine type="20" status="20" line="0" linetype="0">
        //                 <Date>2022-04-05</Date>
        //                 <VATType>S</VATType>
        //                 <FinYear number="2022" />
        //                 <FinPeriod number="4" />
        //                 <GLAccount type="20" code="400000" />
        //                 <Description>100000095</Description>
        //                 <DueDate>2022-05-05</DueDate>
        //                 <Account code="0001" status="C">
        //                     <Name>90 Degrees &amp; co</Name>
        //                 </Account>
        //                 <Amount>
        //                     <Currency code="EUR" />
        //                     <Value>1382.91</Value>
        //                 </Amount>
        //                 <ForeignAmount>
        //                     <Currency code="EUR" />
        //                     <Value>1382.91</Value>
        //                     <Rate>1</Rate>
        //                 </ForeignAmount>
        //                 <References>
        //                     <InvoiceNumber>100000095</InvoiceNumber>
        //                 </References>
        //             </GLTransactionLine>
        //             <PaymentTerms>
        //                 <PaymentTerm entry="100000095" type="20" line="0" paymentMethod="B">
        //                     <Description>20</Description>
        //                     <GLAccount type="20" code="400000" />
        //                     <Amount>
        //                         <Currency code="EUR" />
        //                         <Debit>1382.91</Debit>
        //                         <Credit>0</Credit>
        //                     </Amount>
        //                     <ForeignAmount>
        //                         <Currency code="EUR" />
        //                         <Debit>1382.91</Debit>
        //                         <Credit>0</Credit>
        //                     </ForeignAmount>
        //                     <Reference />
        //                     <YourRef />
        //                     <InvoiceNumber>100000095</InvoiceNumber>
        //                     <InvoiceDate>2022-04-05</InvoiceDate>
        //                     <DueDate>2022-05-05</DueDate>
        //                     <PaymentDate>2022-05-05</PaymentDate>
        //                 </PaymentTerm>
        //             </PaymentTerms>
        //         </GLTransaction>
        //     </GLTransactions>
        // </eExact>

        Xml xml = new Xml();

        try {
            xml.loadXmlFile("c:/temp/example.xml");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        String pdfFilename = xml.getChildContent("GLTransactions|GLTransaction|Document|Attachments|Attachment|Name");
        if (pdfFilename == null) {
            System.out.println("No XML element at the given path.");
            return;
        }

        System.out.println("PDF Filename = " + pdfFilename);

        Xml binaryDataElem = xml.getChildWithTag("GLTransactions|GLTransaction|Document|Attachments|Attachment|BinaryData");
        if (binaryDataElem == null) {
            System.out.println("No XML element at the given path.");
            return;
        }

        // Decode the base64 data and save to a file.
        try {
            binaryDataElem.saveBinaryContent(pdfFilename, false, false, "");
            System.out.println("Success.");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
        }

        binaryDataElem.close();
    }
}