xamlにWebビューがあります。これは、Webビューのサイズが原因で、すべてのhtmlコンテンツを一度に表示できなかったため、scrollviewerがあります。HTMLファイルのすべてのコンテンツを印刷したいのですが、デバイスチャームでプリンターを選択すると、プレビューページには現在Webビューに表示されているコンテンツのみが表示され、非表示のコンテンツはプレビューページに表示できませんでした。助けられる?以下は私のコードです。
public sealed partial class MainPage : Page
{
PrintDocument printDocument;
IPrintDocumentSource printDocumentSource;
WebView wv;
public MainPage()
{
this.InitializeComponent();
printDocument = new PrintDocument();
printDocumentSource = printDocument.DocumentSource;
printDocument.Paginate += OnPrintDocumentPaginate;
printDocument.GetPreviewPage += OnPrintDocumentGetPreviewPage;
printDocument.AddPages += OnPrintDocumentAddPages;
wv = FindName("webviewPrint") as WebView;
}
private void OnPrintDocumentAddPages(object sender, AddPagesEventArgs e)
{
printDocument.AddPage(wv);
printDocument.AddPagesComplete();
}
private void OnPrintDocumentGetPreviewPage(object sender, GetPreviewPageEventArgs e)
{
printDocument.SetPreviewPage(e.PageNumber, wv);
}
private void OnPrintDocumentPaginate(object sender, PaginateEventArgs e)
{
printDocument.SetPreviewPageCount(1, PreviewPageCountType.Final);
}
private void OnPrintManagerPrintTaskRequested(PrintManager sender, PrintTaskRequestedEventArgs args)
{
args.Request.CreatePrintTask("Hello Printer", OnPrintTaskSourceRequested);
}
void OnPrintTaskSourceRequested(PrintTaskSourceRequestedArgs args)
{
args.SetSource(printDocumentSource);
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
PrintManager.GetForCurrentView().PrintTaskRequested += OnPrintManagerPrintTaskRequested;
base.OnNavigatedTo(e);
}
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
PrintManager.GetForCurrentView().PrintTaskRequested -= OnPrintManagerPrintTaskRequested;
base.OnNavigatingFrom(e);
}
}