我的wicket应用程序创建了一些pdf文件。现在我想添加按钮来打印这样的内容:http://javascript.about.com/library/blprint.htm我该怎么做?
答案 0 :(得分:2)
它看起来你把两件事混在一起。你的例子是一个javascript。它不是PDF,只是打印您的文档。它等于浏览器菜单文件 - >打印,但事件是从处理按钮操作的JavaScript调用的。您可以使用与该示例中相同的按钮,并将@print CSS添加到您的网页,以使您的文档可以很好地打印。
还有另一种方式。如果要从应用程序打印PDF文档并从Java代码生成PDF,请查看Wicket 1.6的以下示例:
add(new Link<Void>("myPdfLink") {
private static final long serialVersionUID = 1L;
@Override
public void onClick() {
byte[] data = ... // TODO your data
final ByteArrayInputStream stream = new ByteArrayInputStream(data);
IResourceStream resourceStream = new AbstractResourceStream() {
private static final long serialVersionUID = 1L;
@Override
public InputStream getInputStream() throws ResourceStreamNotFoundException {
return stream;
}
@Override
public void close() throws IOException {
stream.close();
}
@Override
public String getContentType() {
return "application/pdf";
}
};
getRequestCycle().scheduleRequestHandlerAfterCurrent(
new ResourceStreamRequestHandler(resourceStream)
.setFileName("my-pdf-to-download.pdf")
.setContentDisposition(ContentDisposition.ATTACHMENT)
.setCacheDuration(Duration.ONE_SECOND)
);
}
});