修复 PDF 渲染超时问题

2022年5月11日
已更新 2024年10月20日
分享:
This article was translated from English: Does it need improvement?
Translated
View the article in English
  • 无法从HTML渲染PDF
  • 無法從 URL 渲染 PDF
  • 生成 PDF 時出錯
  • 從 URL 生成 PDF 時發生錯誤
  • 未指定的原生異常

    這些通用錯誤訊息表示 Chrome 渲染引擎已指示出現故障。

    应用以下代码片段将生成“Default.log”日志文件,有助于确定故障原因。

IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
IronPdf.Logging.Logger.LogFilePath = "Default.log";

渲染超時

Timeout 是 IronPDF 實施的一項功能,旨在防止應用程序因 PDF 渲染時間過長而陷入死結並變得無響應,這主要可以幫助用戶管理資源,確保像 CPU、內存和網絡帶寬這樣的資源不會因為過程耗時過長而被占用。 如果 PDF 渲染過程未能及時完成,將拋出以下超時錯誤。

  • 在將 HTML 渲染成 pdf 時,在 60s 後逾時。
  • 從 URL 渲染 pdf 時,在 60s 後超時。
  • 在從HTML生成PDF時發生超時
  • 從網址生成 PDF 時超時
  • 渲染 HTML 成 PDF 時發生逾時
  • 從 URL 渲染 PDF 時發生超時

    在IronPDF中,導致渲染時間過長可能導致超時錯誤的原因有很多,例如渲染大型或繁重的PDF、檢索用於渲染PDF的遠程資源/資產,或在渲染過程中出現問題。 但是,通常可以通過覆蓋超時持續時間來解決問題。

    若要覆寫預設設定,用戶可以訪問 ChromePdfRenderOptions 類別中的Timeout 屬性並將其設置為更高的值。

RenderingOptions.Timeout = 120; // seconds;

請注意
從2021.12.4995版本開始,IronPDF的預設渲染超時時間為60秒。

渲染延遲

在某些情況下,IronPDF 渲染了

  • 空白 PDF

  • PDF內容不完整

  • PDF 缺少圖像資產

    這個問題可能是因為在調用從資源擷取內容或資產完成之前,PDF文檔就已經渲染了。

    將 RenderDelay 應用於 PDF 渲染器通常有助於解決問題。 這將指示渲染器延遲PDF渲染一段設定的時間,以便在PDF渲染之前及時加載內容或資產。 要做到這一點,只需訪問 WaitFor 包裝物件中的RenderDelay()方法,將所需的持續時間設定為方法參數,並將其作為 ChromePdfRenderOptions 屬性之一應用到渲染器。

RenderingOptions.WaitFor.RenderDelay(5000);  //miliseconds

請注意
預設的 RenderDelay 持續時間為 20 毫秒

除了 RenderDelay() 方法外,WaitFor 包裝物件中還有其他方法可供使用。

有關日誌和向我們的工程師報告錯誤以供審核的詳細信息,請參閱如何為 IronPDF 提出工程支援請求