javascript - 将 PDF 转换为 PNG Node.JS

标签 javascript node.js pdf imagemagick

我正在构建一个 Node.js 应用程序来将 PDF 转换为 PNG 并显示在用户页面上。

该应用程序将像这样工作:

  1. User uploads a PDF to the server
  2. Server converts the PDFs pages to individual PNGs
  3. Display PNGs on the User page


我发现了一个很棒的包,叫做 Node ImageMagick https://github.com/rsms/node-imagemagick但它并不完美。

-monitor 这样的东西ImageMagick 中的标志不起作用,但也不适用于 vanilla node.js:
var exec = require('child_process').exec;

exec('convert -monitor myFile.pdf myFile.png', function(error, stdout, stderr) {
    console.log('converting is done');
});

我想要实现的是转换函数返回转换后的文件的名称,如:myFile-0.png、myFile-1.png。

我想要实现的解决方案是使用 PDF 的名称创建一个目录并在那里转换 PNG,如:
   exec('convert myFile.pdf myFile/myFile.png', function(error, stdout, stderr) {
        console.log('converting is done');
    });

然后读取该目录的内容并将文件名和路径发送给用户。

这是一个好的解决方案吗?

有人可以解释我如何实现这个目标吗?

最佳答案

更新答案

我认为这一切最终都会出现,因为 Ghostscript 实际上是代表 IM 完成工作。您可能需要检查 PDF 中有多少页,然后如果您想要细粒度控制,请执行循环。

# 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

原答案

不确定我 100% 理解你想要什么,但我认为它是这样的......

假设您有一个 20 页的 PDF,名为 input.pdf .如果您打印 scene number ,其转义序列为 %s , 像这样
convert input.pdf -format "%s\n" -write info: z%d.png

你会得到这个:

输出
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

和这些文件:
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

关于javascript - 将 PDF 转换为 PNG Node.JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32903737/

相关文章:

r - 将ggplot2网格导出为PDF错误: 'Error in grid.Call.graphics... invalid font type'

javascript - Angular JS - ng-repeat 和循环条件

javascript - 如何让div元素包裹其他元素?(代码中存在伪选择器)

node.js - Electron:尝试设置 `nativeTheme.themeSource` ,但 `nativeTheme` 未定义

objective-c - 带水平滚动的 PDF View

c# .NET CORE 使用 ITextSharp 将具有透明度的图像添加到现有 PDF

php - 通过 getJSON 检索的图像的 <div> 在append()之后消失

javascript - 工具提示背景颜色变淡 angular-chart.js

python - 安装line-in包时出错: NodeJS

html - 外部 CSS 在 NodeJS 中不起作用