【问题标题】:Converting JPG image to PDF without resizing image with ghostscript or itext无需使用 ghostscript 或 itext 调整图像大小即可将 JPG 图像转换为 PDF
【发布时间】:2016-08-05 15:41:19
【问题描述】:

我正在尝试将 JPG 格式的图像与标准 PDF 文档合并,同时保持图像大小相同。早些时候我使用 ImageMagick 的 convert,但由于它将所有内容都转换为图像,因此导致质量大幅下降,因此我正在切换到 ghostscript(或最终使用 itextpdf)。

我发现this code 将缩放后的图像插入 A4 页面:

gs \
 -sDEVICE=pdfwrite \
 -o foo.pdf \
  /usr/local/share/ghostscript/8.71/lib/viewjpeg.ps \
 -c \(my.jpg\) viewJPEG

this way 或 that way 中来自 itextpdf 的 PdfWriter 可能是替代方案,但它也会将图像添加到页面中。

检查 ImageMagick 的行为后,我发现它使用的命令最接近我的解决方案,但当我尝试修改或使用它时它似乎不起作用。应该怎么修改?

gs -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 -sDEVICE=pngalpha -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r72x72  -sOutputFile=out_gs.pdf fox_big.jpg

【问题讨论】:

  • 这很奇怪:当您谈论 iText 时,您指的是两个与 iText 没有任何关系的晦涩网站上的文章。我希望您链接到official iText web site 上的文章。您在使用 iText 时不使用 iText 网站有什么原因吗?
  • 我的印象是整个生态系统都是糟糕的教程,通常是过时的代码复制/粘贴在一起,唯一的目的是生成网页浏览量......
  • 我在另一个与 itext 相关的 SO 问题上找到了第一个链接。在谷歌上搜索“itext jpg pdf”时,当您的页面位于第 9 位时,我发现第二个链接是第一个结果。我保证在将来提出问题之前会进行更好的研究。
  • 顺便说一句,上述命令不起作用的原因是它不使用viewjpeg.ps,因此无法直接读取JPEG文件。您需要包含“/usr/local/....../viewjpeg.ps -c (fox_big.jpg) viewJPEG” 当然,该命令的其余部分会生成 PNG,但也许这就是您所期望的。如果你打算使用 Ghostscript,最好使用更新一点的东西,8.71 是(IIRC)6 岁。

标签: java pdf itext ghostscript imagemagick-convert


【解决方案1】:

您的问题的答案可以在 iText 官方网站上找到:How to add multiple images into a single PDF?

在MultipleImages 示例中,我们选择了一些图像,并将它们转换为 PDF:multiple_images.pdf

页面大小设置为与图片大小相匹配:

对于第一张图片:

Image img = Image.getInstance(IMAGES[0]);
Document document = new Document(img);

如您所见,我们将img 传递给Document 构造函数。这是可行的,因为Image 扩展了Rectangle 类。

对于后续的图片,我们改变页面大小:

document.setPageSize(img);

注意,我们还需要设置绝对位置:

img.setAbsolutePosition(0, 0);

如果您想在 iText 上查找信息和示例,请转到 official web site。我花了好几个月的时间编写所有这些内容并将其放到网站上。当我看到人们没有利用所有这些工作时,我感到很沮丧。 (感觉像是在浪费时间。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-20
    • 2017-11-29
    • 2012-06-22
    • 2015-12-14
    • 2015-12-06
    • 2012-11-16
    相关资源
    最近更新 更多