gpt4 book ai didi

ruby-on-rails - 如何使用 ruby​​ 修改 pdf 中的单个页面大小?

转载 作者:行者123 更新时间:2023-12-04 06:22:30 25 4
gpt4 key购买 nike

我们将 PDF 直接发送到标签打印机进行打印。打印机有一个切割器,可以根据页面尺寸将连续的标签条切割成合适的长度。为了节省标签纸,我们希望减少每页的长度以删除任何空白,这因页面而异。我可以计算出将页面长度修改到的点,但不知道该怎么做。

我正在使用 Ruby on Rails。我不介意我使用什么库,但我已经在使用 imagemagick 和 rghost,所以这两个都不错。

最佳答案

假设每个页面都有图像,我尝试调整页面大小。希望我理解正确。

我用了HexaPDF .

作为 ruby​​ 项目运行:

  1. 创建目录 foo
  2. CD foo
  3. 捆绑初始化
  4. 添加 gem 'hexapdf' 到 Gemfile
  5. 捆绑
  6. 创建amend.rb文件

    # amend.rb
    require 'hexapdf'

    pdf = HexaPDF::Document.open(ARGV[0])
    # page_dimensions = { page_index => { w: content_width (image), h: content_height (image) } }
    page_dimensions = { 0 => { w: 323, h: 115 }, 1 => { w: 504, h: 709 }, 2 => { w: 432, h: 443 } }
    padding = 70 # You can change it if you want
    pdf.pages.each do |page|
    media_box = page.box.value.dup
    # With media_box, you can set the page dimensions.
    # [left, bottom, right, top]
    # Bottom left values: [0, 0, 0, 0]
    # A4 page dimensions: [0, 0, 595, 842]
    media_box[1] = media_box[3] - page_dimensions[page.index][:h] - 2 * padding
    media_box[2] = page_dimensions[page.index][:w] + 2 * padding
    page[:MediaBox] = media_box
    end
    pdf.write(ARGV[1])
  7. 将您的 PDF 文件添加到 foo 目录。我们称它为 X.pdf
  8. 运行程序

    ruby amend.rb X.pdf X_new.pdf
  9. 检查X_new.pdf

关于ruby-on-rails - 如何使用 ruby​​ 修改 pdf 中的单个页面大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58122993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com