0

我正在创建一个从 PDF 文件创建杂志的项目,但是每个上传的杂志都应该有一个带有封面照片的重击,我想从 PDF 中提取这个图像作为 JPEG 以将其设置为封面照片.

有没有办法使用 Ghostscript 或任何其他命令行工具来做到这一点?

4

3 回答 3

2

您的意思是要将 PDF 文件的第一页呈现为图像格式吗?如果是这样,那么是的,Ghostscript 可以做到这一点(ImageMagick 也使用 Ghostscript、MuPDF 和可能还有许多其他实用程序)。

如果您的意思是第一页包含图像,并且您确实想要提取它,那么这是一项更难的工作,您将需要一个 PDF 工具包来完成它。Ghostscript可以做到这一点,但它可能有点矫枉过正,你可能会发现 MuPDF 更方便。我有一个模糊的记忆,pdftk可以提取图像,但我可能弄错了。如果这是您想要的,在 Google 上进行快速搜索可能会有所帮助。

于 2013-06-02T08:52:31.230 回答
1

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
于 2013-06-02T22:49:43.247 回答
0

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 的概念。这只是我所知道的。:-)”

于 2013-06-03T10:53:30.120 回答