- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 pdf2image
构建一个将 PDF 文件转换为 PNG 的 Node.js 应用程序。
正如 official repo 的自述文件所说,pdf2image
需要两个外部依赖项:Ghostscript 和 GraphicsMagick。这两个都安装在我的本地 Windows 机器上。
现在我可以使用以下代码将 PDF 文件的缓冲区转换为 PNG 图像的缓冲区:
const fromBuffer = require('pdf2pic').fromBuffer;
convertPdfToImg = async (pdfBuffer) => {
const pdf2picOptions = {
format: 'png',
width: 4000,
height: 5176,
density: 330,
savePath: './output',
};
const convert = fromBuffer(pdfBuffer, pdf2picOptions);
const pageOutput = await convert(1, true);
const pngBuffer = Buffer.from(pageOutput.base64, 'base64');
return pngBuffer;
};
一切正常,每个人都很开心! (目前)
Ghostscript 9.52
和
GraphicsMagick 1.3.35 2020-02-23 Q16
)。但是,上面提到的代码片段将不再起作用,并返回一个空缓冲区。
pageOutput.base64
是空的,这意味着可能没有正确安装 Ghostscript 和 GraphicsMagick(因为我在 Windows 中测试了没有依赖关系的代码,并且也给了我空的
pageOutput.base64
)。
gs --version
再次检查了 Ghostscript 是否安装在 Centos 中,它给出了
9.52
作为输出。
gm version
检查了 GraphicsMagick,它给了我以下输出:
GraphicsMagick 1.3.35 2020-02-23 Q16 http://www.GraphicsMagick.org/
Copyright (C) 2002-2020 GraphicsMagick Group.
Additional copyrights and licenses apply to this software.
See http://www.GraphicsMagick.org/www/Copyright.html for details.
Feature Support:
Native Thread Safe yes
Large Files (> 32 bit) yes
Large Memory (> 32 bit) yes
BZIP no
DPS no
FlashPix no
FreeType no
Ghostscript (Library) no
JBIG no
JPEG-2000 no
JPEG no
Little CMS no
Loadable Modules no
Solaris mtmalloc no
Google perftools tcmalloc no
OpenMP yes (201511 "4.5")
PNG no
TIFF no
TRIO no
Solaris umem no
WebP no
WMF no
X11 no
XML yes
ZLIB yes
Host type: x86_64-pc-linux-gnu
Configured using the command:
./configure '--with-quantum-depth=16'
Final Build Parameters:
CC = gcc
CFLAGS = -fopenmp -g -O2 -Wall -pthread
CPPFLAGS = -I/usr/include/libxml2
CXX = g++
CXXFLAGS = -pthread
LDFLAGS =
LIBS = -llzma -lxml2 -lz -lm -lpthread
请注意,这两个依赖项是直接从源安装的。
pdf2image
与部署在 linux 系统(特别是 CentOS Stream)上的 Node.js 一起工作?
最佳答案
我最终使用了 pdf-to-png-converter , 它需要 0 个外部依赖,并且在 Windows 和 CentOS 中都能完美运行。
这是我的做法:
const pdfToPng = require('pdf-to-png-converter').pdfToPng;
convertPdfToImg = async (buffer) => {
const pngPage = await pdfToPng(buffer, {
disableFontFace: false,
useSystemFonts: false,
pagesToProcess: [1],
viewportScale: 2.0
});
return pngPage[0].content;
}
我希望我早点知道这个很棒的实用程序。
关于node.js - 在 Node.js 和 CentOS 中使用 pdf2image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72407394/
当我调用 png.Decode(imageFile) 时,它返回类型 image.Image。但我找不到将其转换为 image.NRGBA 或 image.RGBA 的记录方式,我可以在其上调用 At
image/jpeg 和 image/png 包有 Decode 和 Encode 函数,可以读取和写入 jpeg 和 png 图像,但 image/gif 包没有 - 只有 Decode 和 Dec
我正在尝试从一系列任意的非调色板图像创建动画 GIF。为了创建调色板图像,我需要以某种方式想出一个调色板。 // RGBA, etc. images from somewhere else var f
我在今年夏天的空闲时间使用 Go 镜像包进行一些练习。 package main import ( "os" "image" "image/png" "image/co
关闭。这个问题需要debugging details .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 1年前关闭。 Improve this question 今天
我正在尝试在 TilePane 中列出图像。当我尝试创建图像 new ImageView("address"); 时出现错误,地址如下: "file:D:/Chrysanthemum.jpeg/" 以
我有一个用于为画廊选择图像的表单,我希望允许用户仅选择 jpg、gif 和 png 图像格式。 现在,为了测试,我将图像的扩展名更改为 .bmp,例如“image1.bmp”,当我在输入文件中单击以选
我有创建图像的代码:(m_img 是 javafx.scene.image.Image) Image m_img = new Image("file:" + p_Fil.getAbsoluteFile
假设我有一个这样的 8 位灰度图像: var pixels []byte = ... width := 100 height := 100 如何将其转换为实现 image.Image 的东西? 最佳答
这段代码是我在localhost:8088 URL上的索引/主页的一部分,如果我想将用户发送到url localhost:8088/image/1,我应该写href='image/{{$image->
我正在尝试对图像进行简单的裁剪。这是代码 from PIL.Image import Image def get_image_half(image, half="upper"): if hal
我在这个问题上花了一整天,但在堆栈溢出中没有看到答案! 我试过了但是没用: >> pil_image = Image.frombytes('RGBA', wand_image.size, wa
所以,我是那些以始终使用最新版本的浏览器而自豪的人之一(当然 Internet Explorer 除外 - 我说的不是那个浏览器)。 我遇到了 this awesome CSS3 website详细介
如果 image_tag 无法从 url 加载图像,我想呈现默认图像: 因此,如果 image_tag 无法从 url 加载图像: 然后呈现默认值: 这将生成结果 HTML: 关于image -
我正在创建一个类似横幅的组件,并将图像设置为组件的背景,但我无法让它工作。我尝试了网上发布的不同建议,但没有成功,目前我不确定我的错误是否在 react 代码中,或者是 webpack 没有正确加载文
如何解决 Dart 中的这种歧义错误。 import 'dart:io'; import 'package:flutter/material.dart'; import 'package:camera
Center( child: CachedNetworkImage( imageUrl: "http:/ sosme link he
设置 www.website.com/sds/(index.htm) 以便鼠标悬停在不同位置时显示图像。 出于某种原因,当您将鼠标悬停在蓝色气球上时,图像 2.jpg 和 3.jpg(在蓝色气球上来回
社交网络在共享 URL 时可以很好地从网站中提取标题和描述,但对于图像,仍然需要创建自定义元标记:property="og:image" name="twitter:image" itemprop="
我正在尝试写一个简短的,它将读取一个 PNG 文件,并将一个 channel 与另一个 channel (R,G,B) 交换作为可能的选择。 但是,我无法找到如何从 image.At(x,y) 返回的
我是一名优秀的程序员,十分优秀!