Креветка - изображение обрезано и полное изображение не отображается - PullRequest
0 голосов
/ 07 ноября 2018

В настоящее время я работаю над приложением Ruby on Rails 5.2 с использованием Prawn и CombinePDF. Я делаю запрос, чтобы получить файл в ящик API. Файл, который я получаю из ящика, я затем конвертирую в строку, используя 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 не полное изображение. enter image description here

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

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Размеры страницы можно получить с помощью:

pdf_prawn.bounds.width
pdf_prawn.bounds.height

Вы можете передать те, которые подходят.

0 голосов
/ 07 ноября 2018

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

      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

...