Весь контент веб-просмотра напечатан на одной странице - PullRequest
0 голосов
/ 06 февраля 2020

Дело : пользователь должен иметь возможность просматривать и печатать pdf

Мое решение : я открываю PDF внутри Webview с помощью docs.google.com/gview , Ниже мой код

Настройка Webview

    string url = "http://www.africau.edu/images/default/sample.pdf";
    string gview = $"https://docs.google.com/gview?embedded=true&url={url}";
    mWebView.LoadUrl(gview);

Печать PDF

    var printMgr = (PrintManager)GetSystemService(PrintService);
    printMgr.Print("print", mWebView.CreatePrintDocumentAdapter("print"), null);

Ниже приведен скриншот. Как видите, PDF отлично загружается

enter image description here

Проблема

Когда я хочу напечатать PDF, все страницы PDF напечатаны на одной бумаге, которую вы можете увидеть ниже

enter image description here

Буду признателен за любые предложения, в том числе различные библиотеки для отображения / печати PDF или предложения в Java или Kotlin я могу преобразовать их в C#.

1 Ответ

1 голос
/ 06 февраля 2020

Я не буду печатать веб-страницу, а печатать PDF-файл напрямую, так как при печати веб-страницы он просто видит ее как более длинную веб-страницу и ничего не знает о содержимом.

Вместо этого используйте пользовательский адаптер печати, но вместо того, чтобы рисовать PDF для печати, вы можете просто использовать имеющийся у вас PDF.

Подробнее см. https://developer.android.com/training/printing/custom-docs.html

...