1

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);
    }

}
4

1 に答える 1

0

公式 Windows SDK サンプルの印刷サンプルで、シナリオ 2 を見てください。1 つの画面には大きすぎるコンテンツを印刷します。このサンプルではRichTextBlockを使用していますが、この場合はWebViewに変更します。

于 2013-01-14T18:51:37.427 に答える