Read A PDF and Populate the data on Form

Snajay
Kilo Contributor

I have a requirement.I need to read a pdf  and populate its data on a form. I created a Java App which is using external Java API(IText) to read a PDF File and deployed its Jar file(Both Java App and External API) to mid server. After that, I created a ECC Que and tried to call that java App. I am able to call a normal function of that java app but i am not able to call that function which is reading the PDF File. So does servicenow allow to use external Java API Deployed at mid server?  Here is My Code :

Java Code

package com.midserver;

import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
import java.io.IOException;

public class ReadData
{
    public String getData()            //I am not able to call this method
    {
        PdfReader reader;
        String textFromPage="";

        try {

            reader = new PdfReader("c:/demo.pdf");

            // pageNumber = 1
            textFromPage = PdfTextExtractor.getTextFromPage(reader, 1);

          //  System.out.println(textFromPage);

            reader.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
        return textFromPage;
    }
    
}

 

ECC que(output) :

<parameters>
    <parameter name="script" value="var v1 = new Packages.com.midserver.ReadData();v1.getData();"/>    
    
</parameters>

 

 

ECC Que(Input):

<?xml version="1.0" encoding="UTF-8"?><results error="Caused by error in JavaScript probe 'JavascriptProbe' at line 1&#10;&#10;==&gt;   1: var v1 = new Packages.com.midserver.ReadData();v1.getData();&#10;" probe_time="0" result_code="900000"><result error="Caused by error in JavaScript probe 'JavascriptProbe' at line 1&#10;&#10;==&gt;   1: var v1 = new Packages.com.midserver.ReadData();v1.getData();&#10;"><output>Evaluation error: Caused by error in JavaScript probe 'JavascriptProbe' at line 1

==&gt;   1: var v1 = new Packages.com.midserver.ReadData();v1.getData();</output></result><parameters><parameter name="agent" value="mid.server.TestMidServer2"/><parameter name="response_to" value=""/><parameter name="from_sys_id" value=""/><parameter name="source" value=""/><parameter name="priority" value="2"/><parameter name="agent_correlator" value=""/><parameter name="script" value="var v1 = new Packages.com.midserver.ReadData();v1.getData();"/><parameter name="processed" value=""/><parameter name="error_string" value=""/><parameter name="sys_id" value="f4e88981db011010f37a7b82399619c6"/><parameter name="sequence" value="172500336470000001"/><parameter name="from_host" value=""/><parameter name="sys_created_on" value="2020-05-26 08:04:47"/><parameter name="sys_domain" value="global"/><parameter name="name" value="JavascriptProbe"/><parameter name="topic" value="JavascriptProbe"/><parameter name="state" value="ready"/><parameter name="queue" value="output"/><parameter name="ecc_queue" value="f4e88981db011010f37a7b82399619c6"/></parameters></results>

 

 

 

3 REPLIES 3

Ankur Bawiskar
Tera Patron
Tera Patron

Hi Sanjay,

it should allow; please try to use simple java code and check

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Simple Java code is allowed but if i am adding any external Java API(Itext.jar for ex)with this java code  then  i am not able to call this from ServiceNow

Priyanka Chandr
Mega Guru

Hi,

Please have a look

https://community.servicenow.com/community?id=community_article&sys_id=d947860cdbbe1380e0e80b55ca961...

Please mark it correct and helpful if applicable.

Thanks,