PDF, созданный из WebView, не включает весь контент - PullRequest
0 голосов
/ 25 марта 2019

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

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

view.Measure(
View.MeasureSpec.MakeMeasureSpec( ViewGroup.LayoutParams.WrapContent,MeasureSpecMode.Unspecified), 
 View.MeasureSpec.MakeMeasureSpec(ViewGroup.LayoutParams.WrapContent, MeasureSpecMode.Unspecified));
            view.Layout(0, 0, view.MeasuredWidth, view.MeasuredHeight);


            var printAttributesBuilder = new PrintAttributes.Builder();
            printAttributesBuilder.SetColorMode(PrintColorMode.Color);
            printAttributesBuilder.SetMediaSize(PrintAttributes.MediaSize.IsoA4);
            printAttributesBuilder.SetDuplexMode(DuplexMode.None);
            printAttributesBuilder.SetMinMargins(PrintAttributes.Margins.NoMargins);


            PdfDocument document = new PrintedPdfDocument(view.Context, printAttributesBuilder.Build());


            PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(view.MeasuredWidth, view.MeasuredHeight, 1).Create();


            PdfDocument.Page page = document.StartPage(pageInfo);


            view.Draw(page.Canvas);


            document.FinishPage(page);


            byte[] docBytes = null;


            using (MemoryStream memoryStream = new MemoryStream())
            {
                try
                {
                    document.WriteTo(memoryStream);


                    docBytes = memoryStream.ToArray();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }


            return docBytes;

, а также

WebView.EnableSlowWholeDocumentDraw();

Я считаю, что размер PDF правильный, каким-то образом только содержание перестает добавляться.Оставшееся пустое пространство занимает примерно такое же пространство, как и отсутствующее содержимое.Я попытался использовать PrintManager, и он генерирует 30-страничный PDF на основе того же HTML.Но Я не хочу использовать PrintManager или любые другие библиотеки , я должен заставить опубликованное решение работать.

Любые входные данные высоко ценятся!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...