2

私のウィケットアプリケーションはいくつかのpdfファイルを作成しました。今、私はそれを印刷するためのボタンを追加したいと思ってます。

4

1 に答える 1

3

2つのものを混ぜ合わせているようです。あなたの例はjavascriptです。これは PDF ではなく、ドキュメントを印刷するだけです。ブラウザ メニューの [ファイル] -> [印刷] と同じですが、イベントはボタン アクションを処理する JavaScript から呼び出されます。その例と同じボタンを使用し、Web ページに @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)
        );  

    }

}); 
于 2013-06-15T19:19:49.183 に答える