ここでの秘訣は、印刷したいものを正しく表すドキュメントをMSApp.getHtmlPrintDocumentSource メソッドに提供することです。これは、ページに表示されるものと必ずしも同じではありません。
参照するサンプルは、現在のドキュメントオブジェクトを getHtmlPrintDocumentSource に渡すだけで、最も簡単な印刷方法ですが、お気づきのように、必要な結果が正確に得られない場合があります。
Kraig Brockschmidt の優れた (そして無料の) ebook on HTML and JavaScript Windows Store apps の第 15 章で説明されているように、出力をカスタマイズする簡単な方法は、印刷メディア タイプのメディア クエリを追加し、CSS を使用して出力を変更することです。ページ、次のように:
@media print {
.win-backbutton {
display: none;
}
.watermark {
display: none;
}
.titlearea {
font-size: xx-large;
}
}
ただし、これで直面している問題が解決される可能性はありません。あなたの場合、おそらく最もうまくいくのは、より印刷しやすい出力を提供する別のページを作成することです。
例として、印刷コントラクト サンプルのシナリオ 4 に基づいて、print.html という HTML ページをアプリのルートに配置すると、次のコードを使用して参照できます (ms-appx:/// スキームに注意してください)。 、これは私のアプリ パッケージのコンテンツを指します):
// set the alternate content
var alternateLink = document.createElement("link");
alternateLink.setAttribute("id", "alternateContent");
alternateLink.setAttribute("rel", "alternate");
alternateLink.setAttribute("href", "ms-appx:///print.html");
alternateLink.setAttribute("media", "print");
document.getElementsByTagName("head")[0].appendChild(alternateLink);
これで、デバイス チャームが呼び出されると、現在のページではなく、別のコンテンツ ページが印刷用のソースとして提供されます。代替ページに JSON ソースからコンテンツをロードし、印刷に適した方法でレンダリングすることができます。これは、コンテンツがページに表示される方法とは異なる場合があります。
Windows ストア アプリ開発の詳細については、Generation Appに登録してください。