3

Windows 8 アプリから接続されたプリンターに PDF ファイルを印刷しようとしています。私は WinJS でコーディングしており、Windows 8 アプリから印刷を開始するには印刷タスクを作成する必要があることを知っています。したがって、ドキュメントを確認した後、次のコードがあります。

 onPrintTaskRequested: function (e) {
        var self = Application.navigator.pageControl,
            printTask = e.request.createPrintTask("Print Test Doc", function (args) {
                args.setSource(MSApp.getHtmlPrintDocumentSource(document));

                // Register the handler for print task completion event
                printTask.oncompleted = self.onPrintTaskCompleted;
            });
    }

ドキュメントによると、MSApp.getHhtmlPrintDocumentSource メソッドは特定のデータ型のセットを受け入れます。ドキュメントに記載されているように:

これは、ルート ドキュメント、IFrame 内のドキュメント、ドキュメント フラグメント、または SVG ドキュメントのいずれかです。htmlDoc は要素ではなくドキュメントである必要があることに注意してください。

どうやら、 getHtmlPrintDocumentSource の引数を .PDF または .PNG バイナリに単純に設定することはできません。それで、私は興味があります: WinJS ライブラリは、接続されたプリンターへの PDF ファイルの印刷を実装できる印刷方法を提供しますか? 誰かが実装するためのヒントを提供できますか?

4

2 に答える 2

0

私が知る限り、MSApp.getHtmlPrintDocumentSource(document)HTML ドキュメント オブジェクトで使用することを意図しており、それ以外には何も使用しません。

Windows 8.1 を想定できる場合は、PdfPage.RenderToStreamAsyncを使用して各ページをラスター イメージにエクスポートすることにより、PDF ファイルから新しい HTML ドキュメントを組み立てることができます。MSDNには、この新しい API を使用する PDF ビューアのサンプル プロジェクトがあり、このメソッドの使用方法を学ぶことができます。

Windows 8.1 を想定できず、プレーンな Windows 8 または Windows RT (ARM) をサポートする必要がある場合は、サード パーティのライブラリを使用してラスター イメージを作成するか、すべて一緒に印刷する必要があります。

たとえば、WinRT 用の Amyuni PDF Creatorは、印刷を行うことができます免責事項:私は現在、ライブラリを開発する会社で働いています

于 2013-07-08T19:28:29.783 に答える