jsreport/jsreport-core

"Bad argument" error

Closed this issue · 2 comments

I am receiving the following error when trying to run the "Quick Example" shown on the readme:

internal/child_process.js:290
  var err = this._handle.spawn(options);
                         ^

TypeError: Bad argument
    at TypeError (native)
    at ChildProcess.spawn (internal/child_process.js:290:26)
    at exports.spawn (child_process.js:365:9)
    at Object.exports.execFile (child_process.js:139:15)
    at d:\redacted\node_modules\jsreport-phantom-pdf\node_modules\phantom-html-to-pdf\lib\dedicatedProcessStrategy.js:47:34
    at d:\redacted\node_modules\graceful-fs\graceful-fs.js:43:10
    at FSReqWrap.oncomplete (fs.js:82:15)

I am on Windows.

hi!

i guess that you are using the following steps and code, right?:

npm install jsreport-core
npm install jsreport-jsrender
npm install jsreport-phantom-pdf

var jsreport = require('jsreport-core')()

jsreport.init().then(function () {     
   return jsreport.render({
	   template: {
		   content: '<h1>Hello {{:foo}}</h1>',
		   engine: 'jsrender',
		   recipe: 'phantom-pdf'
		},
		data: {
			foo: "world"
		}
	}).then(function(resp) {
	 //prints pdf with headline Hello world
     console.log(resp.content.toString())
   });
}).catch(function(e) {
  console.log(e)
})

if this is the same code that you are using then i would say that probably something went wrong in the npm installation (when phantomjs was downloaded), probably a quick test can be to delete your node_modules folder an try to reinstall everything, before you reinstall everything run this: npm cache clean to ensure that there won't be any corrupted temp file in npm's cache.

another cause can be that when phantomjs is installed your directory does not have the right permission to extract internal zip file that contains the phantomjs executable. what is the directory of your project? when re-installing you can also try to run the installation in an elevated command prompt with administrative privileges, a.k.a "Run as administrator"

Yes, that is the same code I was using. And yes, it looks like something was wrong with the phantomjs installation. I just tried the sample in a fresh directory and it worked as expected.

Thanks! 👍