我正在创建一个从 PDF 文件创建杂志的项目,但是每个上传的杂志都应该有一个带有封面照片的重击,我想从 PDF 中提取这个图像作为 JPEG 以将其设置为封面照片.
有没有办法使用 Ghostscript 或任何其他命令行工具来做到这一点?
我正在创建一个从 PDF 文件创建杂志的项目,但是每个上传的杂志都应该有一个带有封面照片的重击,我想从 PDF 中提取这个图像作为 JPEG 以将其设置为封面照片.
有没有办法使用 Ghostscript 或任何其他命令行工具来做到这一点?
您的意思是要将 PDF 文件的第一页呈现为图像格式吗?如果是这样,那么是的,Ghostscript 可以做到这一点(ImageMagick 也使用 Ghostscript、MuPDF 和可能还有许多其他实用程序)。
如果您的意思是第一页包含图像,并且您确实想要提取它,那么这是一项更难的工作,您将需要一个 PDF 工具包来完成它。Ghostscript可以做到这一点,但它可能有点矫枉过正,你可能会发现 MuPDF 更方便。我有一个模糊的记忆,pdftk可以提取图像,但我可能弄错了。如果这是您想要的,在 Google 上进行快速搜索可能会有所帮助。
Poppler/XPDF 附带pdfimages
:
Pdfimages 将可移植文档格式 (PDF) 文件中的图像保存为可移植像素图 (PPM)、可移植位图 (PBM) 或 JPEG 文件。pdfimages 读取 PDF 文件 PDF-file,扫描一页或多页,并为每个图像写入一个 PPM、PBM 或 JPEG 文件,image-root-nnn.xxx,其中 nnn 是图像编号,xxx 是图像类型( .ppm、.pbm、.jpg)。
从 PDF 的第 1 页提取所有图像的命令行如下:
pdfimages -j -f 1 -l 1 some.pdf subdir/prefix
图像将保存到subdir/
命名prefix-0000.jpeg
的 , prefix-0001.jpeg
。如果可能,该-j
参数将尝试获取 JPEG 图像。直接 JPEG 提取可能会失败,在这种情况下,提取的图像将保存为 PPM 或 PNM(注意,它们很大,因为它们是未压缩的)。如果需要,这些可以通过 ImageMagick 转换为 JPEG:
convert subdir/prefix-0022.ppm subdir/prefix-0022.jpeg
ABCpdf 将允许您从 PDF 中提取图像。这是一个两阶段的操作。首先,您需要确定图像在文档中出现的位置。然后你需要导出它们。
你需要这样的东西...
using (Doc theDoc = new Doc()) {
theDoc.Read(theSrc);
ImageOperation op = new ImageOperation(theDoc);
op.PageContents.AddPages();
ICollection<ImageProperties> images = op.GetImageProperties();
foreach (ImageProperties pl in images) {
foreach (ImageRendition plc in pl.Renditions) {
... if plc is a good match
plc.PixMap.GetBitmap().Save(@"c:\output.jpg");
}
}
}
我在 ABCpdf .NET 软件组件上工作,因此我的回复可能包含基于 ABCpdf 的概念。这只是我所知道的。:-)”