Hi all, i have a problem with the pdf_output plugin used in unix.
I have the following method that works on windows, but doesn’t in unix, can somebody help me?
function Generar_reporte()
{
var xfecha = new Date()
var maxReturnedRows1 = 10
var query1 = 'select material_number from productos where id = ? ';
var args1 = new Array();
var maxReturnedRows = 10
var query = 'select * from actores where id = ? ';
var args = new Array();
args[0] = globals.vactores_id
var dataset = databaseManager.getDataSetByQuery(controller.getServerName(), query, args, maxReturnedRows);
// var pdfform = plugins.file.readFile('c:/Trazabilidad/LotesImpresion/Originales/LoteImpresion.pdf');
var osname = application.getOSName()
if(utils.stringMiddle(osname,1,3) == "Lin")
{ var pdfform = plugins.file.readFile('/app/servoy/Trazabilidad/LotesImpresion/Originales/LoteImpresion.pdf');
}
else
{ var pdfform = plugins.file.readFile('c:/Trazabilidad/LotesImpresion/Originales/LoteImpresion.pdf');
}
//var field_values = plugins.file.readFile('c:/temp/1040a-data.fdf');//read adobe fdf values or
var field_values = new Array()
field_values[0] = 'usuario='+globals.vusuario_nombre_completo
field_values[1] = 'fecha='+xfecha
field_values[2] = 'lote='+String(vlote_impr_cabecera_id)
field_values[3] = 'razon_social='+dataset.getValue(1,4)
field_values[4] = 'direccion_calle='+dataset.getValue(1,7)
field_values[5] = 'direccion_numero='+dataset.getValue(1,8)
field_values[6] = 'localidad='+dataset.getValue(1,9)
field_values[7] = 'partido='+dataset.getValue(1,10)
field_values[8] = 'cod_pos='+dataset.getValue(1,11)
field_values[9] = 'pais=Argentina'
field_values[10] = 'provincia='+dataset.getValue(1,12)
field_values[11] = 'telefonos='+dataset.getValue(1,13)
field_values[12] = 'pagina_web='+dataset.getValue(1,14)
var ipdf = 16
var primero = 0
for(var ix = 1;ix <= vtopearr;ix++)
{ if(arrSeries[ix][7] == 1)
{ args1[0] = arrSeries[ix][1]
var dataset1 = databaseManager.getDataSetByQuery(controller.getServerName(), query1, args1, maxReturnedRows1);
if(primero == 0)
{ field_values[13] = 'descripcion='+arrSeries[ix][8]
field_values[14] = 'cantidad='+arrSeries[ix][6]
field_values[15] = 'gtin='+arrSeries[ix][2]
field_values[16] = 'material_number='+dataset1.getValue(1,1)
primero = 1
}
else
{ args1[0] = arrSeries[ix][1]
var dataset1 = databaseManager.getDataSetByQuery(controller.getServerName(), query1, args1, maxReturnedRows1);
ipdf++
field_values[ipdf] = 'descripcion'+utils.numberFormat(ix,'0')+'='+arrSeries[ix][8]
ipdf++
field_values[ipdf] = 'gtin'+utils.numberFormat(ix,'0')+'='+arrSeries[ix][2]
ipdf++
field_values[ipdf] = 'material_number'+utils.numberFormat(ix,'0')+'='+dataset1.getValue(1,1)
ipdf++
field_values[ipdf] = 'cantidad'+utils.numberFormat(ix,'0')+'='+arrSeries[ix][6]
}
}
}
// var nomfil = 'c:/Trazabilidad/LotesImpresion/Lote'+utils.numberFormat(vlote_impr_cabecera_id,0000000)+'.pdf'
if(utils.stringMiddle(osname,1,3) == "Lin")
{ var nomfil = '/app/servoy/Trazabilidad/LotesImpresion/Lote'+utils.numberFormat(vlote_impr_cabecera_id,0000000)+'.pdf'
}
else
{ var nomfil = 'c:/Trazabilidad/LotesImpresion/Lote'+utils.numberFormat(vlote_impr_cabecera_id,0000000)+'.pdf'
}
var result_pdf_doc = plugins.pdf_output.convertPDFFormToPDFDocument(pdfform, field_values)
if (result_pdf_doc != null)
{ plugins.file.writeFile(nomfil, result_pdf_doc)
}
}
The log mesage:
java.lang.NullPointerException
at com.lowagie.text.pdf.RandomAccessFileOrArray.length(Unknown Source)
at com.lowagie.text.pdf.PdfReader.readPdf(Unknown Source)
at com.lowagie.text.pdf.PdfReader.(Unknown Source)
at com.servoy.extensions.plugins.pdf_output.PDFProvider.js_convertProtectedPDFFormToPDFDocument(PDFProvider.java:203)
at com.servoy.extensions.plugins.pdf_output.PDFProvider.js_convertPDFFormToPDFDocument(PDFProvider.java:262)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:592)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:179)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:347)
at org.mozilla.javascript.Interpreter.interpretLoop(Interpreter.java:3666)
at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2680)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:166)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:387)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3125)
at org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:165)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:126)
at com.servoy.j2db.plugins.ClientPluginAccessProvider$MethodExecutor.run(ClientPluginAccessProvider.java:12)
at com.servoy.j2db.server.headlessclient.SessionClient.invokeLater(SessionClient.java:263)
at com.servoy.j2db.plugins.ClientPluginAccessProvider$1.run(ClientPluginAccessProvider.java:15)
at com.servoy.j2db.util.TaskExecuter.run(TaskExecuter.java:25)
at java.lang.Thread.run(Thread.java:595)
any clues?
thanks in advanced
andres