【问题标题】:Wicket display pdf on Page x? (java)检票口在第 x 页上显示 pdf? (爪哇)
【发布时间】:2012-09-12 18:21:00
【问题描述】:

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

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

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

      org.apache.wicket.markup.html.DynamicWebResource

而这已经不存在了。

我发现它被替换为

      org.apache.wicket.request.resource.ByteArrayResource

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

【问题讨论】:

    标签: java wicket


    【解决方案1】:

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

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

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

    【讨论】:

    • 我现在用的资源引用是不是和资源链接一样?
    【解决方案2】:

    当你从你的对象标签中修改数据时,传递一个页码。这会将页面传递给 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-15
      • 1970-01-01
      • 2016-11-26
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 1970-01-01
      • 2012-04-28
      • 1970-01-01
      相关资源
      最近更新 更多