Wicket在第x页上显示pdf? (Java)的

时间:2012-08-22 12:24:12

标签: java wicket

我想添加一个在某个页面上显示pdf的功能。我在我的代码中将pdf作为文件。所以我无法从我的网络服务器上获取它。

我也有页面编号。 我已经看到adobe插件接受#page = 1但我不知道如何在基于Web的应用程序中使用它。

我还发现了一些在iframe中显示它的教程。但这些用法:

      org.apache.wicket.markup.html.DynamicWebResource

这不再存在了。

我发现它已被

取代
      org.apache.wicket.request.resource.ByteArrayResource

是否有关于如何执行此操作的教程/提示(Wicket 1.5或更高版本)?

2 个答案:

答案 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);