在不使用 ghostscript 或 itext 调整图像大小的情况下将 JPG 图像转换为 PDF
Converting JPG image to PDF without resizing image with ghostscript or itext
我正在尝试将 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 or 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 网站上找到:How to add multiple images into a single PDF?
在MultipleImages example, we take a selection of images, and we convert them to a PDF: multiple_images.pdf
页面大小设置为与图像大小相匹配:
第一张图片:
Image img = Image.getInstance(IMAGES[0]);
Document document = new Document(img);
如您所见,我们将 img
传递给 Document
构造函数。这是可行的,因为 Image
扩展了 Rectangle
class.
对于后续图片,我们更改页面大小:
document.setPageSize(img);
注意我们还需要设置绝对位置:
img.setAbsolutePosition(0, 0);
如果您想查找有关 iText 的信息和示例,请转到 official web site。我花了好几个月的时间来编写所有这些内容并将其发布到网站上。当我看到人们没有利用所有这些工作时,我感到很沮丧。 (感觉浪费了时间。)
我正在尝试将 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 or 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 网站上找到:How to add multiple images into a single PDF?
在MultipleImages example, we take a selection of images, and we convert them to a PDF: multiple_images.pdf
页面大小设置为与图像大小相匹配:
第一张图片:
Image img = Image.getInstance(IMAGES[0]);
Document document = new Document(img);
如您所见,我们将 img
传递给 Document
构造函数。这是可行的,因为 Image
扩展了 Rectangle
class.
对于后续图片,我们更改页面大小:
document.setPageSize(img);
注意我们还需要设置绝对位置:
img.setAbsolutePosition(0, 0);
如果您想查找有关 iText 的信息和示例,请转到 official web site。我花了好几个月的时间来编写所有这些内容并将其发布到网站上。当我看到人们没有利用所有这些工作时,我感到很沮丧。 (感觉浪费了时间。)