SelectPDF 不显示网格数据

SelectPDF not Showing Grid Data

我正在使用 Select PDF - Community Edition 呈现网页(例如文档)的输出。当我查看 PDF 时...网格中的数据为空。

作为实验...我将 "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 中没有网格数据:

免责声明:我为 SelectPdf 工作。

可能是 javascript 错误。尝试使用 converter.ConversionResult.ConsoleLog 获取转换后的控制台日志。查看是否有任何 javascript 错误。

  • 旧版本中不存在 ConsoleLog 对象
  • 只需升级到列出的最新版本here

SelectPdf 支持几个rendering engines。默认的 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