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\''