admin管理员组文章数量:1391929
I'm building a Node.js application to convert PDF to PNGs and display on the user page.
The app will work like this:
- User uploads a PDF to the server
- Server converts the PDFs pages to individual PNGs
- Display PNGs on the User page
I found a great package called Node ImageMagick but Its not a perfect fit.
Some things like -monitor
flag from ImageMagick doesn't work but doesn't work on vanilla node.js as well:
var exec = require('child_process').exec;
exec('convert -monitor myFile.pdf myFile.png', function(error, stdout, stderr) {
console.log('converting is done');
});
The thing I want to achieve is that the converting function to return the name of the files converted like: myFile-0.png, myFile-1.png.
The solution I wanted to implement was to make a directory with the name of the PDF and convert the PNGs there like:
exec('convert myFile.pdf myFile/myFile.png', function(error, stdout, stderr) {
console.log('converting is done');
});
Then read the content of that directory and send to the user the names of files and the paths.
Is this a good solution?
Can someone explain me how to achieve this goal?
I'm building a Node.js application to convert PDF to PNGs and display on the user page.
The app will work like this:
- User uploads a PDF to the server
- Server converts the PDFs pages to individual PNGs
- Display PNGs on the User page
I found a great package called Node ImageMagick https://github./rsms/node-imagemagick but Its not a perfect fit.
Some things like -monitor
flag from ImageMagick doesn't work but doesn't work on vanilla node.js as well:
var exec = require('child_process').exec;
exec('convert -monitor myFile.pdf myFile.png', function(error, stdout, stderr) {
console.log('converting is done');
});
The thing I want to achieve is that the converting function to return the name of the files converted like: myFile-0.png, myFile-1.png.
The solution I wanted to implement was to make a directory with the name of the PDF and convert the PNGs there like:
exec('convert myFile.pdf myFile/myFile.png', function(error, stdout, stderr) {
console.log('converting is done');
});
Then read the content of that directory and send to the user the names of files and the paths.
Is this a good solution?
Can someone explain me how to achieve this goal?
Share Improve this question edited Sep 8, 2017 at 8:51 CommunityBot 11 silver badge asked Oct 2, 2015 at 8:57 HieroHiero 2,2057 gold badges30 silver badges48 bronze badges1 Answer
Reset to default 3Updated Answer
I think it all es out at the end because Ghostscript is actually doing the work on behalf of IM. You may need to check how many pages there are in your PDF and then do a loop if you want fine-grained control.
# Get number of pages in "a.pdf"
pages=$(identify a.pdf | wc -l)
# Alternative, faster way of getting number of pages - pdfinfo is part of Poppler package
pages=$(pdfinfo a.pdf | grep "^Pages")
for all pages 0 .. (pages-1)
convert a.pdf[$page] page-${page}.png
done
Original Answer
Not sure I 100% understand what you want, but I think it is something like this...
Say you have a 20-page PDF, called input.pdf
. If you print the scene number
, whose escape sequence is %s
, like this
convert input.pdf -format "%s\n" -write info: z%d.png
you will get this:
Output
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
and these files:
ls z*
z0.png z10.png z12.png z14.png z16.png z18.png z2.png z4.png z6.png z8.png
z1.png z11.png z13.png z15.png z17.png z19.png z3.png z5.png z7.png z9.png
本文标签: javascriptConvert PDF to PNG NodeJSStack Overflow
版权声明:本文标题:javascript - Convert PDF to PNG Node.JS - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744709368a2621033.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论