我正在尝试将JPG格式的图像与标准PDF文档合并,同时保持图像的大小相同。之前我使用的是ImageMagick的转换,但由于它将所有内容转换为图像,因此会导致质量下降,因此我将切换到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
答案 0 :(得分:2)
您的问题的答案可以在官方的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。我花了很多时间编写所有内容并将其放在网站上。当我发现人们没有利用所有这些工作时,这令人沮丧。 (感觉我浪费了我的时间。)