Jak*_*kob 7 pdf jpeg pdf-generation pdflatex imagemagick-convert
给定一个包含多个 jpg 文件(照片)的目录,我想创建一个 pdf 文件,每页一张照片。但是,我希望照片原封不动地存储在 pdf 文件中;即,我想避免解码和重新编码。因此,理想情况下,我希望能够使用 linux 命令行等从 pdf 文件中提取原始 jpg 文件(可能减去元数据)pdfimages。
到目前为止我的想法:
imagemagick convert。但是,我对压缩选项感到困惑:如果我选择 100% quality,是否意味着 jpg 会在内部解码,然后进行无损编码?(这显然不是我想要的?)pdflatex。有些人声称图形包包含无损图像,而其他人则对此提出异议。无论如何,pdflatex会稍微麻烦一些(我首先必须找出照片的尺寸,然后相应地设置页面大小,确保没有边距、标题等)。Ger*_*mia 11
将光栅图像无损转换为 PDF,无需重新编码 PNG、JPEG 和 JPEG2000 图像。这可以实现 PNG、JPEG 和 JPEG2000 图像的无损转换,唯一增加的文件大小来自 PDF 容器本身。其他光栅图形格式使用与 PNG 相同的编码进行无损存储。由于 PDF 不支持透明图像,并且 img2pdf 的目标是永不有损,因此不支持具有 alpha 通道的输入图像。
(pdfimages -all效果恰恰相反。)
您可以使用以下依赖于HexaPDF 的小脚本(注意:我是 HexaPDF 的作者)来执行此操作。
注意:确保您已安装 Ruby 2.4,然后运行gem install hexapdf安装 hexapdf。
这是脚本:
require 'hexapdf'
doc = HexaPDF::Document.new
ARGV.each do |image_file|
image = doc.images.add(image_file)
page = doc.pages.add
iw = image.info.width.to_f
ih = image.info.height.to_f
pw = page.box(:media).width.to_f
ph = page.box(:media).height.to_f
rw, rh = pw / iw, ph / ih
ratio = [rw, rh].min
iw, ih = iw * ratio, ih * ratio
x, y = (pw - iw) / 2, (ph - ih) / 2
page.canvas.image(image, at: [x, y], width: iw, height: ih)
end
doc.write('images.pdf')
Run Code Online (Sandbox Code Playgroud)
只需在命令行上提供图像作为参数,输出文件将被命名为images.pdf. 大多数代码涉及居中和缩放图像以很好地适应页面。
| 归档时间: |
|
| 查看次数: |
2918 次 |
| 最近记录: |