Node.js ImageMagick 7.0.4/NodeJS 6.9.2/GPLGS 9.15/Win 7:无法转换文件

Node.js ImageMagick 7.0.4/NodeJS 6.9.2/GPLGS 9.15/Win 7:无法转换文件,node.js,imagemagick,ghostscript,Node.js,Imagemagick,Ghostscript,问题 我可以使用convert.exeImageMagick命令从命令行将PDF转换为另一种图像格式。然而,当在节点中运行以下JS时,我会得到下面代码后面的错误 JavaScript fs = require('fs'); var PDFImage = require("pdf-image").PDFImage; console.log("Start"); var pdfImage = new PDFImage('test.pdf'); pdfImage.convertPage(0).th

问题

我可以使用
convert.exe
ImageMagick命令从命令行将PDF转换为另一种图像格式。然而,当在节点中运行以下JS时,我会得到下面代码后面的错误

JavaScript

fs = require('fs');

var PDFImage = require("pdf-image").PDFImage;

console.log("Start");

var pdfImage = new PDFImage('test.pdf');
pdfImage.convertPage(0).then(function (imagePath) {
  // 0-th page (first page) of the slide.pdf is available as slide-0.png 
  console.log('Converted');
  fs.existsSync('test-0.png') // => true 
}, function (err) {
    console.log(err);
});
package.json

{
  "name": "pdftester",
  "version": "1.0.0",
  "description": "PDF Tester",
  "main": "PDFTester.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "John Doe",
  "license": "ISC",
  "dependencies": {
    "async": "^2.1.4",
    "imagemagick": "^0.1.3",
    "pdf-image": "^1.1.0",
    "pdftotextjs": "^0.4.0"
  }
}
结果

Start
{ message: 'Failed to convert page to image',
  error: 
   { Error: Command failed: convert 'test.pdf[0]' 'test-0.png'
   convert: unable to open image ''test.pdf[0]'': No such file or directory @ error/blob.c/OpenBlob/2691.
   convert: unable to open module file 'C:\ImageMagick-7.0.4-Q16\modules\coders\IM_MOD_RL_PDF[0]'_.dll': No such file or directory @ warning/module.c/GetMagickModulePath/680.
   convert: no decode delegate for this image format `PDF[0]'' @ error/constitute.c/ReadImage/509.
   convert: no images defined `'test-0.png'' @ error/convert.c/ConvertImageCommand/3254.

       at ChildProcess.exithandler (child_process.js:206:12)
       at emitTwo (events.js:106:13)
       at ChildProcess.emit (events.js:191:7)
       at maybeClose (internal/child_process.js:877:16)
       at Socket.<anonymous> (internal/child_process.js:334:11)
       at emitOne (events.js:96:13)
       at Socket.emit (events.js:188:7)
       at Pipe._handle.close [as _onclose] (net.js:498:12)
     killed: false,
     code: 1,
     signal: null,
     cmd: 'convert \'test.pdf[0]\' \'test-0.png\'' },
  stdout: '',
  stderr: 'convert: unable to open image \'\'test.pdf[0]\'\': No such file or directory @ error/blob.c/OpenBlob/2691.\r\nconvert: unable to open module file \'C:\\ImageMagick-7.0.4-Q16\\modules\\coders\\IM_MOD_RL_PDF[0]\'_.dll\': No such file or directory @ warning/module.c/GetMagickModulePath/680.\r\nconvert: no decode delegate for this image format `PDF[0]\'\' @ error/constitute.c/ReadImage/509.\r\nconvert: no images defined `\'test-0.png\'\' @ error/convert.c/ConvertImageCommand/3254.\r\n' }
是什么在添加额外的斜杠、记号(')和“[0]”


提前谢谢

根据您的问题,额外的斜杠表示要进入文件夹。
您必须将文件放在服务器文件的起始位置。或者将您的pdf文件放入运行应用程序的位置。

根据您的问题,额外的斜杠表示要进入文件夹。
您必须将文件放在服务器文件的起始位置。或者将您的pdf文件放在运行应用程序的位置。

我想不会。斜杠在我看来像是“转义”,以保留引号字符。如果文件名中有空格,则可能会出现引号。请注意package.json代码中双引号前面的斜杠。请按如下方式定义服务器的路径(从运行服务器的位置)。/tmp/slide.pdf“我认为您没有抓住要点,它们不是目录分隔符,而是转义字符,意思是“按字面意思对待下一个字符”。海报的问题是(他说)有东西在命令行中添加\字符。他自己的代码根本没有目录分隔符。虽然我想知道问题是否在于程序执行时当前的工作目录不同,但我认为不是。斜杠在我看来像是“转义”,以保留引号字符。如果文件名中有空格,则可能会出现引号。请注意package.json代码中双引号前面的斜杠。请按如下方式定义服务器的路径(从运行服务器的位置)。/tmp/slide.pdf“我认为您没有抓住要点,它们不是目录分隔符,而是转义字符,意思是“按字面意思对待下一个字符”。海报的问题是(他说)有东西在命令行中添加\字符。他自己的代码根本没有目录分隔符。尽管我想知道问题是否在于程序执行时当前工作目录不同。
'convert \'test.pdf[0]\' \'test-0.png\''