Креветка - изображение обрезано, а полное изображение не отображается

В настоящее время я работаю над приложением Ruby on Rails 5.2, используя Prawn и CombinePDF. Делаю запрос на получение файла в апи бокса. Файл, который я получаю из коробки, я затем преобразую в строку, используя StringIO.new(image), которую затем добавляю в документ креветки, как показано.

attach_docs_from_submission(user_data).each do |file|
      image = client.download_file(file)
      format_image = StringIO.new(image)
      pdf_prawn = Prawn::Document.new
      pdf_prawn.image format_image
      pdf_data = pdf_prawn.render
      pdf << CombinePDF.parse(pdf_data)
    end

Однако, когда я проверяю PDF, это не полное изображение. введите здесь описание изображения

Есть ли способ подогнать изображение в полный размер? проблема исходит от Prawn или CombinePDF?


person Steven Aguilar    schedule 07.11.2018    source источник


Ответы (2)


Этот ответ основан на моих предпочтениях, так как я понял, что есть много способов сделать это. Лично для меня это самое экономичное и гибкое решение.

      pdf_prawn = Prawn::Document.new(page_size: 'LETTER')
      pdf_prawn.image format_image, fit: [610, 790],
                                    position: :center,
                                    position: :center

Таким образом, вы устанавливаете page_size в LETTER, а затем получаете размеры буквы и передаете их в качестве аргументов в fit: с учетом поля .5 на странице. Вы также можете использовать scale: для изменения размера изображения, но мне не хватает точности. Дополнительную информацию об этом можно найти в руководстве Prawn.

person Steven Aguilar    schedule 07.11.2018

Вы можете получить размеры страницы, используя:

pdf_prawn.bounds.width
pdf_prawn.bounds.height

Вы можете пройти те, чтобы соответствовать.

person bonsai    schedule 08.11.2018