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

Java
import com.chilkatsoft.*;

public class ChilkatExample {

  static {
    try {
        System.loadLibrary("chilkat");
    } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load.\n" + e);
      System.exit(1);
    }
  }

  public static void main(String argv[])
  {
    boolean success = false;

    //  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>

    CkXml xml = new CkXml();

    success = xml.LoadXmlFile("c:/temp/example.xml");
    if (success == false) {
        System.out.println(xml.lastErrorText());
        return;
        }

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

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

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

    //  Decode the base64 data and save to a file.
    success = binaryDataElem.SaveBinaryContent(pdfFilename,false,false,"");
    if (success == false) {
        System.out.println(binaryDataElem.lastErrorText());
        }
    else {
        System.out.println("Success.");
        }
  }
}