serious print to pdf problem in servoy 3.5.5 webclient

I’m facing some issues printing to pdf in the webclient.

this code works fine, in servy 3.1.6 webclient but the code just stops, when the first line of pdf printing is reached in 3.5.5:

var success = plugins.pdf_output.startMetaPrintJob()
//plugins.pdf_output.insertFontDirectory('c:/Windows/Fonts'); 

if (success)
{
	forms.pdflayout1.controller.print(true,false,plugins.pdf_output.getPDFPrinter());

	forms[orderform].controller.print(true,false,plugins.pdf_output.getPDFPrinter());

	if(ticketpdf == 1)
	{
		forms.tickets.controller.loadRecords(registrations_to_tickets)
		forms.tickets.controller.print(false,false,plugins.pdf_output.getPDFPrinter());
	}
}

var thepdfblob = plugins.pdf_output.endMetaPrintJob()
var installdir = java.lang.System.getProperty("user.dir")
var rnd =  Math.round(Math.random()*373840329493398)
var filepath = installdir + '/server/webapps/ROOT/pdf/pfc' + rnd + '.pdf'
//var filepath = 'c:/test.pdf'
plugins.file.writeFile(plugins.file.convertToJSFile(filepath), thepdfblob)
if (application.getApplicationType()==5)
{
   application.showURL('/pdf/pfc'+rnd+'.pdf','_self')
}
else
{
   application.showURL(filepath,'_self')
}

anyone else seeing this problem in webclient in 3.5.5?

btw: I’m seeing this in the servoy-admin page:

org.apache.wicket.markup.MarkupException: Unable to find component with id 'sv_f73c21a3_f23a_4a73_92c8_6bc8778d3dd5' in [MarkupContainer [Component id = sv_792360e4_c3e2_4c0f_9c5a_fe9f026ce90f, page = com.servoy.j2db.server.headlessclient.MainPage, path = 0:servoy_page:servoy_dataform:forms:0:webform:servoywebform:View:sv_792360e4_c3e2_4c0f_9c5a_fe9f026ce90f.l, isVisible = true, isVersioned = true]]. This means that you declared wicket:id=sv_f73c21a3_f23a_4a73_92c8_6bc8778d3dd5 in your markup, but that you either did not add the component to your page at all, or that the hierarchy does not match. [markup = Markup[solution:TicketDesk, fullpath:/servoy-webclient/templates/default/TicketDesk/pdflayout1.html] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html> <head> <title>pdflayout1 - Servoy</title> <link href='/servoy-webclient/templates/default/servoy_web_client_default_t1205173168349t.css' type='text/css' rel='stylesheet'/><servoy:head> <link rel='stylesheet' type='text/css' href='/servoy-webclient/templates/default/TicketDesk/pdflayout1_t1205173168349t.css'/> </servoy:head> </head> <body id='servoy_page'> <form id='servoy_dataform'> <servoy:panel> <div id="form_pdflayout1" servoy:id="servoywebform"> <div servoy:id="View"> <div style="top: 0px;left: 0px;width: 70px;height: 1410px;position: absolute" servoy:id="default_navigator"></div><div id="sv_792360e4_c3e2_4c0f_9c5a_fe9f026ce90f" servoy:id="sv_792360e4_c3e2_4c0f_9c5a_fe9f026ce90f"> <div servoy:id="sv_8745008b_8c69_4aea_8632_ce02a69361da" class="sv_8745008b_8c69_4aea_8632_ce02a69361da field">RTF field not supported in webclient</div> <div servoy:id="sv_3e6179f7_f884_4c96_b73a_96d8302b970d" class="sv_3e6179f7_f884_4c96_b73a_96d8302b970d field"><img style="top: 1px;left: 1px;position: absolute;cursor: pointer;background-color: gray;z-index: 1" alt="Save" servoy:id="save_icon" src="#" border="0"/><img style="top: 1px;position: absolute;cursor: pointer;background-color: gray;z-index: 1;left: 17px" alt="Upload" servoy:id="upload_icon" src="#" border="0"/><input id="sv_3e6179f7_f884_4c96_b73a_96d8302b970d" style="top: 0px;left: 0px;position: absolute" alt="" servoy:id="sv_3e6179f7_f884_4c96_b73a_96d8302b970d" value="logo_up" src="#" type="image"/></div> <div servoy:id="sv_f73c21a3_f23a_4a73_92c8_6bc8778d3dd5" class="sv_f73c21a3_f23a_4a73_92c8_6bc8778d3dd5 field"><img style="top: 1px;left: 1px;position: absolute;cursor: pointer;background-color: gray;z-index: 1" alt="Save" servoy:id="save_icon" src="#" border="0"/><img style="top: 1px;position: absolute;cursor: pointer;background-color: gray;z-index: 1;left: 17px" alt="Upload" servoy:id="upload_icon" src="#" border="0"/><input id="sv_f73c21a3_f23a_4a73_92c8_6bc8778d3dd5" style="top: 0px;left: 0px;position: absolute" alt="" servoy:id="sv_f73c21a3_f23a_4a73_92c8_6bc8778d3dd5" value="null" src="#" type="image"/></div> <div servoy:id="sv_8580f8eb_f1a2_4efb_94fa_01c808b5f42d" class="sv_8580f8eb_f1a2_4efb_94fa_01c808b5f42d field"><img style="top: 1px;left: 1px;position: absolute;cursor: pointer;background-color: gray;z-index: 1" alt="Save" servoy:id="save_icon" src="#" border="0"/><img style="top: 1px;position: absolute;cursor: pointer;background-color: gray;z-index: 1;left: 17px" alt="Upload" servoy:id="upload_icon" src="#" border="0"/><input id="sv_8580f8eb_f1a2_4efb_94fa_01c808b5f42d" style="top: 0px;left: 0px;position: absolute" alt="" servoy:id="sv_8580f8eb_f1a2_4efb_94fa_01c808b5f42d" value="null" src="#" type="image"/></div> <div servoy:id="sv_d754acc7_52da_44df_aae4_1c67394a065d" class="sv_d754acc7_52da_44df_aae4_1c67394a065d field"><img style="top: 1px;left: 1px;position: absolute;cursor: pointer;background-color: gray;z-index: 1" alt="Save" servoy:id="save_icon" src="#" border="0"/><img style="top: 1px;position: absolute;cursor: pointer;background-color: gray;z-index: 1;left: 17px" alt="Upload" servoy:id="upload_icon" src="#" border="0"/><input id="sv_d754acc7_52da_44df_aae4_1c67394a065d" style="top: 0px;left: 0px;position: absolute" alt="" servoy:id="sv_d754acc7_52da_44df_aae4_1c67394a065d" value="null" src="#" type="image"/></div> <div servoy:id="sv_23a1081d_e16a_4302_99dc_0418792a88bd" class="sv_23a1081d_e16a_4302_99dc_0418792a88bd field"><img style="top: 1px;left: 1px;position: absolute;cursor: pointer;background-color: gray;z-index: 1" alt="Save" servoy:id="save_icon" src="#" border="0"/><img style="top: 1px;position: absolute;cursor: pointer;background-color: gray;z-index: 1;left: 17px" alt="Upload" servoy:id="upload_icon" src="#" border="0"/><input id="sv_23a1081d_e16a_4302_99dc_0418792a88bd" style="top: 0px;left: 0px;position: absolute" alt="" servoy:id="sv_23a1081d_e16a_4302_99dc_0418792a88bd" value="null" src="#" type="image"/></div> <div servoy:id="sv_4a0bbd8e_289d_4bdd_8d25_4ef6c6489601" class="sv_4a0bbd8e_289d_4bdd_8d25_4ef6c6489601 field"><img style="top: 1px;left: 1px;position: absolute;cursor: pointer;background-color: gray;z-index: 1" alt="Save" servoy:id="save_icon" src="#" border="0"/><img style="top: 1px;position: absolute;cursor: pointer;background-color: gray;z-index: 1;left: 17px" alt="Upload" servoy:id="upload_icon" src="#" border="0"/><input id="sv_4a0bbd8e_289d_4bdd_8d25_4ef6c6489601" style="top: 0px;left: 0px;position: absolute" alt="" servoy:id="sv_4a0bbd8e_289d_4bdd_8d25_4ef6c6489601" value="barcode" src="#" type="image"/></div> </div> </div> </div> </servoy:panel> </form> </body> </html> , index = 27, current = '<div servoy:id="sv_f73c21a3_f23a_4a73_92c8_6bc8778d3dd5" class="sv_f73c21a3_f23a_4a73_92c8_6bc8778d3dd5 field">' (line 18, column 1)]
     at org.apache.wicket.markup.MarkupStream.throwMarkupException(MarkupStream.java:464)
     at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1287)
     at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1407)
     at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1344)
     at org.apache.wicket.Component.renderComponent(Component.java:2471)
     at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1354)
     at com.servoy.j2db.server.headlessclient.dataui.l.onRender(Unknown Source)
     at org.apache.wicket.Component.render(Component.java:2308)
     at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1240)
     at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1407)
     at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1344)
     at org.apache.wicket.Component.renderComponent(Component.java:2471)
     at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1354)
     at org.apache.wicket.Component.render(Component.java:2308)
     at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1240)
     at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1407)
     at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1344)
     at org.apache.wicket.Component.renderComponent(Component.java:2471)
     at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1354)
     at org.apache.wicket.Component.render(Component.java:2308)
     at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1240)
     at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1407)
     at org.apache.wicket.MarkupContainer.renderAssociatedMarkup(MarkupContainer.java:631)
     at org.apache.wicket.markup.html.panel.Panel.onComponentTagBody(Panel.java:112)
     at org.apache.wicket.Component.renderComponent(Component.java:2471)
     at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1354)
     at org.apache.wicket.Component.render(Component.java:2308)
     at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1240)
     at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1407)
     at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1344)
     at org.apache.wicket.Component.renderComponent(Component.java:2471)
     at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1354)
     at org.apache.wicket.Component.render(Component.java:2308)
     at org.apache.wicket.markup.html.list.ListView.renderItem(ListView.java:631)
     at org.apache.wicket.markup.html.list.ListView.renderChild(ListView.java:619)
     at org.apache.wicket.markup.repeater.AbstractRepeater.onRender(AbstractRepeater.java:100)
     at org.apache.wicket.Component.render(Component.java:2308)
     at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1240)
     at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1407)
     at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1344)
     at org.apache.wicket.markup.html.form.Form.onComponentTagBody(Form.java:1653)
     at org.apache.wicket.Component.renderComponent(Component.java:2471)
     at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1354)
     at org.apache.wicket.markup.html.form.Form.onRender(Form.java:1692)
     at org.apache.wicket.Component.render(Component.java:2308)
     at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1240)
     at org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1407)
     at org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1344)
     at org.apache.wicket.Component.renderComponent(Component.java:2471)
     at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1354)
     at org.apache.wicket.Component.render(Component.java:2308)
     at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1240)
     at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1370)
     at org.apache.wicket.Page.onRender(Page.java:1454)
     at org.apache.wicket.Component.render(Component.java:2308)
     at org.apache.wicket.Page.renderPage(Page.java:897)
     at org.apache.wicket.request.target.component.PageRequestTarget.respond(PageRequestTarget.java:63)
     at org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:103)
     at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1172)
     at org.apache.wicket.RequestCycle.step(RequestCycle.java:1241)
     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1316)
     at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
     at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:354)
     at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:121)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
     at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
     at java.lang.reflect.Method.invoke(Unknown Source)
     at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244)
     at java.security.AccessController.doPrivileged(Native Method)
     at javax.security.auth.Subject.doAsPrivileged(Unknown Source)
     at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
     at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:283)
     at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56)
     at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
     at java.security.AccessController.doPrivileged(Native Method)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
     at java.lang.Thread.run(Unknown Source)

I came across this issue in my solution a while back, i think it was when we moved to 3.5.

I now use the print preview function in webclient that generates the pdf. The only problem i find is that in internet explorer it bring up a page and then hides it quickly - i assume it produces a pdf but i dont know where it goes!

It only really works well in Firefox where it works once you unblock pop-ups. Safari it doesnt really work.

So i use it and recommend firefox to my users.

David

I can’t use the printpreview function, because we print several forms to one pdf!

I tried your code almost unaltered on a very simple solution and it works on 3.5.5. Anyway, it is clear that there is a problem somewhere - there is that exception in the log.
It seems to be a problem with the web client itself, not with the PDF printing. The PDF file on the server is getting created, right?

I think the best way to go is - add a case to the support system if you can supply a sample solution.

no, the PDF is not created on the server.
the code just stops, at the first line of pdf printing.
I think something is going wrong on the form itself!!

I will try to make a reproducable case, or upload my solution into the support system.