Found the solution already. I did it that way:
public class FlyingSaucerPdfResource extends ByteArrayResource {
public FlyingSaucerPdfResource() {
super("application/pdf");
}
@Override
protected byte[] getData(Attributes attributes) {
ByteArrayOutputStream os;
try {
CharSequence buf = renderPage(HomePage.class,
attributes.getParameters());
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(buf.toString());
renderer.layout();
renderer.createPDF(os = new ByteArrayOutputStream());
os.close();
} catch (IOException | DocumentException e) {
throw new RuntimeException(e);
}
return os.toByteArray();
}
private CharSequence renderPage(final Class<? extends Page> pageClass,
PageParameters parameters) {
final RenderPageRequestHandler handler = new
RenderPageRequestHandler(
new PageProvider(pageClass, parameters),
RedirectPolicy.NEVER_REDIRECT);
final PageRenderer pageRenderer = getApplication()
.getPageRendererProvider().get(handler);
RequestCycle originalRequestCycle = RequestCycle.get();
BufferedWebResponse tempResponse = new BufferedWebResponse(null);
RequestCycleContext requestCycleContext = new RequestCycleContext(
originalRequestCycle.getRequest(), tempResponse,
getApplication().getRootRequestMapper(), getApplication()
.getExceptionMapperProvider().get());
RequestCycle tempRequestCycle = new
RequestCycle(requestCycleContext);
final Response oldResponse = originalRequestCycle.getResponse();
try {
originalRequestCycle.setResponse(tempResponse);
pageRenderer.respond(tempRequestCycle);
} finally {
originalRequestCycle.setResponse(oldResponse);
}
return tempResponse.getText();
}
private Application getApplication() {
return Application.get();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org