1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activestorage/test/previewer/poppler_pdf_previewer_test.rb
Vincent Robert 3803671a81 Generate a preview without print margins
When a PDF is used for both printing and displaying. It will most likely
contain a crop box in order to hide print margins when displaying the PDF.

Use Poppler's parameter to automatically use the crop box (visible box)
rather than the media box (printable box) in order to remove those margins
when drawing the PDF.

See https://manpages.debian.org/testing/poppler-utils/pdftoppm.1.en.html
2020-09-17 11:59:45 -04:00

34 lines
1.1 KiB
Ruby

# frozen_string_literal: true
require "test_helper"
require "database/setup"
require "active_storage/previewer/poppler_pdf_previewer"
class ActiveStorage::Previewer::PopplerPDFPreviewerTest < ActiveSupport::TestCase
test "previewing a PDF document" do
blob = create_file_blob(filename: "report.pdf", content_type: "application/pdf")
ActiveStorage::Previewer::PopplerPDFPreviewer.new(blob).preview do |attachable|
assert_equal "image/png", attachable[:content_type]
assert_equal "report.png", attachable[:filename]
image = MiniMagick::Image.read(attachable[:io])
assert_equal 612, image.width
assert_equal 792, image.height
end
end
test "previewing a cropped PDF document" do
blob = create_file_blob(filename: "cropped.pdf", content_type: "application/pdf")
ActiveStorage::Previewer::PopplerPDFPreviewer.new(blob).preview do |attachable|
assert_equal "image/png", attachable[:content_type]
assert_equal "cropped.png", attachable[:filename]
image = MiniMagick::Image.read(attachable[:io])
assert_equal 430, image.width
assert_equal 145, image.height
end
end
end