我想添加一个在某个页面上显示pdf的功能。我在我的代码中将pdf作为文件。所以我无法从我的网络服务器上获取它。
我也有页面编号。 我已经看到adobe插件接受#page = 1但我不知道如何在基于Web的应用程序中使用它。
我还发现了一些在iframe中显示它的教程。但这些用法:
org.apache.wicket.markup.html.DynamicWebResource
这不再存在了。
我发现它已被
取代 org.apache.wicket.request.resource.ByteArrayResource
是否有关于如何执行此操作的教程/提示(Wicket 1.5或更高版本)?
答案 0 :(得分:2)
您可以将ResourceLink与ByteArrayResource一起使用,或者您可以使用任何链接/按钮,并在其onClick / onSubmit()中执行:
getRequestCycle().scheduleRequestHandlerAfterCurrent(
new ResourceRequestHandler(new ByteArrayResource(...)))
在这两种情况下,您可能需要通过覆盖org.apache.wicket.request.resource.ByteArrayResource#configureResponse()
并为其调用ResourceResponse#setContentDisposition(INLINE)
来设置内容处置标头。
答案 1 :(得分:0)
当您修改数据时,您的对象标记会传递一个pagenumber。这会将页面传递给adobe插件并自动设置页面。 (我只在chrome 21和IE9中测试了这个)
<object wicket:id="myFile" data="" border="1" width="100%" height="600px"></object>
WebMarkupContainer wmc = new WebMarkupContainer("myFile");
wmc.add(new AttributeModifier("data", (String) urlFor(rr, null)+"#page="+ pageNmbr));
add(wmc);