Каков наилучший способ конвертировать PDF-файл в PNG с помощью RMagick и сохранять высокое качество? - PullRequest
0 голосов
/ 26 октября 2018


В своем приложении Rails я хочу конвертировать PDF в PNG с помощью Rmagick gam.
Я обнаружил, что эти строки делают свое дело:

require 'RMagick'
pdf = Magick::ImageList.new("file_name.pdf")
pdf.each_with_index do |page_img, i|
   page_img.write("#{i}.png")
end

НО выходной файл PNG не в хорошем качестве (источник хороший), есть ли способ улучшить его?

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

PDF - это обычно векторный графический файл. Чтобы прочитать его как растровое изображение, необходимо указать разрешение / плотность. Обычно используется 72 плотности, что немного мало (вероятно, хорошо для веб-эскизов). Если вы измените строку ImageList на

pdf = Magick::ImageList.new("file_name.pdf") {self.density="300"}

Кажется, это работает.

0 голосов
/ 26 октября 2018

Вы можете передать блок в новый метод , который устанавливает атрибут качества. (Это устанавливает атрибуты для Image :: Info )

require 'RMagick'
pdf = Magick::ImageList.new("file_name.pdf") do
        # Adjust quality (default 75)     
        self.quality = 100
      end
pdf.each_with_index do |page_img, i|
  page_img.write("#{i}.png")
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...