@@ -33,34 +33,21 @@ if (!json.html || !json.html.trim()) exit('Did not receive any html')
33
33
var options = json . options
34
34
var page = webpage . create ( )
35
35
36
- if ( options . httpHeaders ) page . customHeaders = options . httpHeaders
37
- if ( options . viewportSize ) page . viewportSize = options . viewportSize
38
- if ( options . zoomFactor ) page . zoomFactor = options . zoomFactor
39
- if ( options . base ) page . setContent ( json . html , options . base )
40
- else page . setContent ( json . html , null )
41
-
42
- page . onError = function ( msg , trace ) {
43
- exit ( buildStack ( 'Evaluation - ' + msg , trace ) )
44
- }
45
-
46
- // Force cleanup after 2 minutes
47
- // Add 2 seconds to make sure master process triggers kill
48
- // before to the phantom process
49
- var timeout = ( options . timeout || 120000 ) + 2000
50
- setTimeout ( function ( ) {
51
- exit ( 'Force timeout' )
52
- } , timeout )
53
-
54
36
// Completely load page & end process
55
37
// ----------------------------------
56
38
var rendered = false
57
39
var renderTimeout
58
40
59
41
// If renderDelay is manual, then listen for an event and don't automatically render
60
- if ( options . renderDelay === 'manual' ) page . onCallback = renderNow
42
+ if ( options . renderDelay === 'manual' ) {
43
+ page . onCallback = function ( message ) {
44
+ setTimeout ( renderNow , 0 )
45
+ return message
46
+ }
47
+ }
61
48
62
49
page . onLoadFinished = function ( ) {
63
- if ( typeof options . renderDelay === 'manual' ) return
50
+ if ( options . renderDelay === 'manual' ) return
64
51
renderTimeout = setTimeout ( renderNow , Math . floor ( options . renderDelay ) || 0 )
65
52
}
66
53
@@ -76,14 +63,33 @@ function renderNow () {
76
63
}
77
64
78
65
var filename = options . filename || ( options . directory || '/tmp' ) + '/html-pdf-' + system . pid + '.' + fileOptions . type
79
-
80
66
page . render ( filename , fileOptions )
81
67
82
68
// Output to parent process
83
69
system . stdout . write ( JSON . stringify ( { filename : filename } ) )
84
70
exit ( null )
85
71
}
86
72
73
+ // Set Content and begin loading
74
+ // -----------------------------
75
+ if ( options . httpHeaders ) page . customHeaders = options . httpHeaders
76
+ if ( options . viewportSize ) page . viewportSize = options . viewportSize
77
+ if ( options . zoomFactor ) page . zoomFactor = options . zoomFactor
78
+ if ( options . base ) page . setContent ( json . html , options . base )
79
+ else page . setContent ( json . html , null )
80
+
81
+ page . onError = function ( msg , trace ) {
82
+ exit ( buildStack ( 'Evaluation - ' + msg , trace ) )
83
+ }
84
+
85
+ // Force cleanup after 2 minutes
86
+ // Add 2 seconds to make sure master process triggers kill
87
+ // before to the phantom process
88
+ var timeout = ( options . timeout || 120000 ) + 2000
89
+ setTimeout ( function ( ) {
90
+ exit ( 'Force timeout' )
91
+ } , timeout )
92
+
87
93
// Returns a hash of HTML content
88
94
// ------------------------------
89
95
function getContent ( page ) {
0 commit comments