SelectPDF не отображает данные сетки - PullRequest
0 голосов
/ 19 июня 2020

Я использую Select PDF - Community Edition для визуализации вывода веб-страницы (например, документа). Когда я просматриваю PDF ... данные в сетках пусты.

  • И да, данные сетки отображаются при обычном просмотре
  • В качестве примечания ... Я использую Kendo Grids

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

public byte[] ToPDF(IPdfConverterArgs args)
{
    if (args == null)
        throw new ArgumentNullException();

    if (!(args is SelectPdfUrlConverterArgs))
        throw new ArgumentException(string.Format("Args.Type '{0}' is not a valid type.", typeof(SelectPdfUrlConverterArgs).Name));

    var arguments = args as SelectPdfUrlConverterArgs;

    if (string.IsNullOrWhiteSpace(arguments.Url))
        throw new ArgumentNullException();

    var pdfPageSize = (PdfPageSize)Enum.Parse(typeof(PdfPageSize), arguments.PdfPageSize, true);
    var pdfOrientation = (PdfPageOrientation)Enum.Parse(typeof(PdfPageOrientation), arguments.PdfOrientation, true);

    HtmlToPdf converter = new HtmlToPdf();

    converter.Options.PdfPageSize = pdfPageSize;
    converter.Options.PdfPageOrientation = pdfOrientation;
    converter.Options.WebPageWidth = arguments.WebPageWidth;
    converter.Options.WebPageHeight = arguments.WebPageHeight;
    converter.Options.MinPageLoadTime = arguments.MinPageLoadTime; //<<< In my testing...I temporarily set this to 15 (for seconds)

    PdfDocument doc = converter.ConvertUrl(arguments.Url);
    var bytes = doc.Save();

    return bytes;
}

НЕТ ДАННЫХ СЕТКИ в PDF: введите описание изображения здесь

1 Ответ

2 голосов
/ 20 июня 2020

Отказ от ответственности: я работаю с SelectPdf.

Это может быть ошибка javascript. Попробуйте получить журнал консоли после преобразования с помощью converter.ConversionResult.ConsoleLog . Посмотрите, есть ли ошибки javascript.

  • Объект ConsoleLog не существует в более старых версиях
  • Просто обновите до последней версии, как указано здесь

SelectPdf поддерживает несколько механизмов рендеринга . Механизм визуализации WebKit по умолчанию может отображать ES5 javascript. Новые синтаксисы ES6 javascript могут привести к ошибкам.

HtmlToPdf converter = new HtmlToPdf();

converter.Options.PdfPageSize = pdfPageSize;
converter.Options.PdfPageOrientation = pdfOrientation;
converter.Options.WebPageWidth = arguments.WebPageWidth;
converter.Options.WebPageHeight = arguments.WebPageHeight;
converter.Options.MinPageLoadTime = arguments.MinPageLoadTime;

PdfDocument doc = converter.ConvertUrl(arguments.Url);
// At this point...you can look at the ConsoleLog object off of the ConversionResult to find any JavaScript Errors
...