cancel
Showing results for 
Search instead for 
Did you mean: 

Generate pdf using Web Dynpro Java API.

Former Member
0 Kudos
176

I created pdf form by using standard "InteractiveFormElement" and it is displaying correctly in browser.

Now there is a requirement to provide url link to the same pdf that is displayed with InteractiveFormElement. To generate pdf, I was doing something the below.

//Copied  XDP file from the srcconfigurationcomponents<package><file>.xdp 
//to srcmimiescomponents<package><file>.xdp

try {
	templateUrl = WDURLGenerator.getWebResourceURL(
                               wdComponentAPI.getDeployableObjectPart(),
			       "CompView_InteractiveForm.xdp");
} catch (WDURLException e) {			
	}
IWDPDFDocumentCreationContext pdfContext = 
   WDPDFDocumentFactory.getDocumentHandler().getDocumentCreationContext();  

pdfContext.setData(
   WDInteractiveFormHelper.getContextDataAsStream(wdContext.nodeDataNode()));

pdfContext.setTemplate(templateUrl);		
IWDPDFDocument pdf = null;
try {
	pdf = pdfContext.execute();			 
} catch (WDPDFDocumentRenderException e) {
			wdComponentAPI.getMessageManager().reportException(
"pdfContext.execute() " + e.getLocalizedMessage(), false);
		}

IWDPDFDocument.execute() is raising exeception "Template used in PDF render

operation is invalid or cannot be found". template url is indeed correct. I checked by

assigning to that url to linkToUrl Element and opening the xdp file.

Please help me to identify the issue. Thank you.

View Entire Topic
krishanu_biswas
Advisor
Advisor
0 Kudos

Hi Ajay,

Let's understand why this problem: you are passing an HTTP url as the template source. This URL then woould be passed on to ADS (which i guess is a different server for you) which will try to access this template and that fails because of authentication issue (most likely) as ADS does not have access to your server.

Solution: There are two ways you can solve this issue:

1. Use pdfContext.setTemplate(byte[] template) method instead of URL. Read the binary on your own and pass the binary itself.

2. Configure a destination on ADS and pass t