@@ -302,7 +302,9 @@ class Done(Exception):
302
302
return data
303
303
304
304
305
- def create_webdriver (chromedriver : Optional [str ], path_to_cache_dir : str ):
305
+ def create_webdriver (
306
+ chromedriver : Optional [str ], path_to_cache_dir : str , page_load_timeout : int
307
+ ) -> webdriver .Chrome :
306
308
print ("html2print: creating ChromeDriver service." , flush = True ) # noqa: T201
307
309
if chromedriver is None :
308
310
path_to_chrome = ChromeDriverManager ().get_chrome_driver (
@@ -342,7 +344,7 @@ def create_webdriver(chromedriver: Optional[str], path_to_cache_dir: str):
342
344
options = webdriver_options ,
343
345
service = service ,
344
346
)
345
- driver .set_page_load_timeout (60 )
347
+ driver .set_page_load_timeout (page_load_timeout )
346
348
347
349
return driver
348
350
@@ -397,6 +399,19 @@ def main():
397
399
type = str ,
398
400
help = "Optional path to a cache directory whereto the ChromeDriver is downloaded." ,
399
401
)
402
+ command_parser_print .add_argument (
403
+ "--page-load-timeout" ,
404
+ type = int ,
405
+ default = 2 * 60 ,
406
+ # 10 minutes should be enough to print even the largest documents.
407
+ choices = range (0 , 10 * 60 ),
408
+ help = (
409
+ "How long shall HTML2Print wait while the Chrome Driver is printing "
410
+ "a given HTML page to PDF. "
411
+ "This is mainly driven by the time it takes for Chrome to open an "
412
+ "HTML file, load it, and let HTML2PDF.js finish its job."
413
+ ),
414
+ )
400
415
command_parser_print .add_argument (
401
416
"paths" , nargs = "+" , help = "Paths to input HTML file."
402
417
)
@@ -418,10 +433,14 @@ def main():
418
433
elif args .command == "print" :
419
434
paths : List [str ] = args .paths
420
435
436
+ page_load_timeout : int = args .page_load_timeout
437
+
421
438
path_to_cache_dir = (
422
439
args .cache_dir if args .cache_dir is not None else DEFAULT_CACHE_DIR
423
440
)
424
- driver = create_webdriver (args .chromedriver , path_to_cache_dir )
441
+ driver = create_webdriver (
442
+ args .chromedriver , path_to_cache_dir , page_load_timeout
443
+ )
425
444
426
445
@atexit .register
427
446
def exit_handler ():
0 commit comments