Class: ActiveStorage::Previewer::PopplerPDFPreviewer
- Inherits:
-
Previewer
- Object
- Previewer
- ActiveStorage::Previewer::PopplerPDFPreviewer
- Defined in:
- lib/active_storage/previewer/poppler_pdf_previewer.rb
Class Method Summary collapse
- .accept?(blob) ⇒ Boolean
- .pdf?(content_type) ⇒ Boolean
- .pdftoppm_exists? ⇒ Boolean
- .pdftoppm_path ⇒ Object
Instance Method Summary collapse
Class Method Details
.accept?(blob) ⇒ Boolean
6 7 8 |
# File 'lib/active_storage/previewer/poppler_pdf_previewer.rb', line 6 def accept?(blob) pdf?(blob.content_type) && pdftoppm_exists? end |
.pdf?(content_type) ⇒ Boolean
10 11 12 |
# File 'lib/active_storage/previewer/poppler_pdf_previewer.rb', line 10 def pdf?(content_type) Marcel::Magic.child? content_type, "application/pdf" end |
.pdftoppm_exists? ⇒ Boolean
18 19 20 21 22 |
# File 'lib/active_storage/previewer/poppler_pdf_previewer.rb', line 18 def pdftoppm_exists? return @pdftoppm_exists unless @pdftoppm_exists.nil? @pdftoppm_exists = system(pdftoppm_path, "-v", out: File::NULL, err: File::NULL) end |
.pdftoppm_path ⇒ Object
14 15 16 |
# File 'lib/active_storage/previewer/poppler_pdf_previewer.rb', line 14 def pdftoppm_path ActiveStorage.paths[:pdftoppm] || "pdftoppm" end |
Instance Method Details
#preview(**options) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/active_storage/previewer/poppler_pdf_previewer.rb', line 25 def preview(**) download_blob_to_tempfile do |input| draw_first_page_from input do |output| yield io: output, filename: "#{blob.filename.base}.png", content_type: "image/png", ** end end end |