0

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

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

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

      org.apache.wicket.markup.html.DynamicWebResource

而这已经不存在了。

我发现它被替换为

      org.apache.wicket.request.resource.ByteArrayResource

有没有关于如何做到这一点的教程/提示(Wicket 1.5 或更高版本)?

4

2 回答 2

3

您可以将 ResourceLink 与 ByteArrayResource 一起使用,或者您可以使用任何链接/按钮并在其 onClick/onSubmit() 中执行以下操作:

getRequestCycle().scheduleRequestHandlerAfterCurrent(
    new ResourceRequestHandler(new ByteArrayResource(...)))

在这两种情况下,您可能都需要通过覆盖org.apache.wicket.request.resource.ByteArrayResource#configureResponse()和调用来设置 content-disposition 标头ResourceResponse#setContentDisposition(INLINE)

于 2012-08-23T05:29:31.773 回答
0

当您从您的对象标签中修改数据时,传递一个页码。这会将页面传递给 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);
于 2012-08-23T06:50:27.553 回答