Naprawa problemów z przekroczeniem czasu renderowania PDF

This article was translated from English: Does it need improvement?
Translated
View the article in English
  • Nie można zrenderować PDF z HTML
  • Nie można zrenderować PDF z URL
  • Błąd podczas generowania PDF z HTML
  • Błąd podczas generowania PDF z URL
  • Niesprecyzowany błąd natywny

Te ogólne komunikaty o błędach wskazują, że silnik renderowania Chrome napotkał awarię.

Zastosowanie poniższego fragmentu kodu stworzy plik log "Default.log", który może pomóc w określeniu przyczyny awarii.

// Enable logging for all events and set the file path for the log file.
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
IronPdf.Logging.Logger.LogFilePath = "Default.log";
// Enable logging for all events and set the file path for the log file.
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;
IronPdf.Logging.Logger.LogFilePath = "Default.log";
' Enable logging for all events and set the file path for the log file.
IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All
IronPdf.Logging.Logger.LogFilePath = "Default.log"
$vbLabelText   $csharpLabel

Przekroczenie Czasu Renderowania

Przekroczenie czasu to funkcja zaimplementowana w IronPDF, aby zapobiec zakleszczeniu aplikacji i jej niereagowaniu z powodu długiego czasu renderowania PDF. Może to pomóc użytkownikom w zarządzaniu zasobami, zapewniając, że zasoby takie jak CPU, pamięć i przepustowość sieci nie są zajmowane przez procesy trwające zbyt długo. Błąd przekroczenia czasu, jak opisano poniżej, zostanie zgłoszony, jeśli proces renderowania PDF nie zostanie ukończony na czas.

  • Przekroczenie czasu po 60s podczas renderowania PDF z HTML
  • Przekroczenie czasu po 60s podczas renderowania PDF z URL
  • Przekroczenie czasu podczas generowania PDF z HTML
  • Przekroczenie czasu podczas generowania PDF z URL
  • Przekroczenie czasu podczas renderowania PDF z HTML
  • Przekroczenie czasu podczas renderowania PDF z URL

Istnieje wiele powodów, dla których czasy renderowania w IronPDF mogą być długie, co może prowadzić do błędów przekroczenia czasu, takich jak renderowanie dużych lub ciężkich PDF, pobieranie zdalnych zasobów/zasobów do renderowania PDF lub problemy podczas samego renderowania. Jednak zwykle można rozwiązać problem przez nadpisanie czasu przekroczenia.

Aby nadpisać domyślne ustawienie, użytkownicy mogą uzyskać dostęp do właściwości Timeout w klasie ChromePdfRenderOptions i ustawić ją na wyższą wartość.

// Set the timeout for rendering to 120 seconds.
RenderingOptions.Timeout = 120; // seconds
// Set the timeout for rendering to 120 seconds.
RenderingOptions.Timeout = 120; // seconds
' Set the timeout for rendering to 120 seconds.
RenderingOptions.Timeout = 120 ' seconds
$vbLabelText   $csharpLabel

Zwróć uwagęPocząwszy od wersji 2021.12.4995, domyślny limit czasu renderowania w IronPDF wynosi 60 sekund.

Opóźnienie Renderowania

W niektórych przypadkach, IronPDF może renderować:

  • Pusty PDF
  • PDF z niekompletną zawartością
  • PDF z brakującymi zasobami graficznymi

Ten problem może wystąpić, ponieważ dokument PDF został zrenderowany przed zakończeniem pobierania zawartości lub zasobów z zasobu.

Zastosowanie opóźnienia renderowania do renderera PDF zazwyczaj pomaga w rozwiązaniu problemu. To spowoduje, że renderer opóźni renderowanie PDF o ustalony czas, aby zawartość lub zasoby mogły zostać załadowane na czas przed renderowaniem PDF. Aby to zrobić, wystarczy uzyskać dostęp do metody RenderDelay() w obiekcie opakowującym WaitFor, ustawić pożądany czas trwania jako parametr metody i zastosować go do renderera jako jedną ze właściwości ChromePdfRenderOptions.

// Set a render delay of 5000 milliseconds (5 seconds) to ensure content and assets are loaded before rendering.
RenderingOptions.WaitFor.RenderDelay(5000);  // milliseconds
// Set a render delay of 5000 milliseconds (5 seconds) to ensure content and assets are loaded before rendering.
RenderingOptions.WaitFor.RenderDelay(5000);  // milliseconds
' Set a render delay of 5000 milliseconds (5 seconds) to ensure content and assets are loaded before rendering.
RenderingOptions.WaitFor.RenderDelay(5000) ' milliseconds
$vbLabelText   $csharpLabel

Zwróć uwagęDomyślny czas trwania RenderDelay to 20 ms

Oprócz metody RenderDelay(), w obiekcie opakowującym WaitFor można wykorzystać również inne metody.

Aby uzyskać więcej informacji na temat dzienników i sposobu zgłaszania błędu naszym inżynierom do analizy, zobacz Jak złożyć wniosek o wsparcie inżynieryjne dla IronPDF.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,135,201 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.