Class: VivlioStarter::CLI::PdfCommands::PdfRasterizer
- Inherits:
-
Object
- Object
- VivlioStarter::CLI::PdfCommands::PdfRasterizer
- Defined in:
- lib/vivlio_starter/cli/pdf.rb
Overview
PDF 全ページを JPEG 経由でラスタライズして再結合する
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(options, cli_input = nil, pdf_to_jpeg: ::VivlioStarter::Pdf::PdfToJpeg, jpeg_to_pdf: ::VivlioStarter::Pdf::JpegToPdf) ⇒ PdfRasterizer
constructor
A new instance of PdfRasterizer.
Constructor Details
#initialize(options, cli_input = nil, pdf_to_jpeg: ::VivlioStarter::Pdf::PdfToJpeg, jpeg_to_pdf: ::VivlioStarter::Pdf::JpegToPdf) ⇒ PdfRasterizer
Returns a new instance of PdfRasterizer.
472 473 474 475 476 477 478 479 |
# File 'lib/vivlio_starter/cli/pdf.rb', line 472 def initialize(, cli_input = nil, pdf_to_jpeg: ::VivlioStarter::Pdf::PdfToJpeg, jpeg_to_pdf: ::VivlioStarter::Pdf::JpegToPdf) @options = || {} @cli_input = cli_input @pdf_to_jpeg = pdf_to_jpeg @jpeg_to_pdf = jpeg_to_pdf end |
Instance Method Details
#call ⇒ Object
481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 |
# File 'lib/vivlio_starter/cli/pdf.rb', line 481 def call apply_verbose pdf_path = resolve_pdf_path ensure_input_exists!(pdf_path) ensure_pdf_rasterize_tools! base = File.basename(pdf_path, '.*') work_dir = "#{base}_images" output_pdf = "#{base}_rasterized.pdf" Common.log_action("--- Phase 1: PDF → JPEG (#{normalized_dpi}dpi / quality #{normalized_quality}) ---") images = pdf_to_jpeg.convert(pdf_path, output_dir: work_dir, dpi: normalized_dpi, quality: normalized_quality) Common.log_info("#{images.size} ページを生成しました") Common.log_action('--- Phase 2: JPEG → PDF ---') jpeg_to_pdf.convert(images, output_pdf) Common.log_result("#{images.size} ページをラスタライズしました: " \ "#{File.basename(output_pdf)}(#{output_size_mb(output_pdf)} MB)", status: :success) cleanup_work_dir_if_needed(work_dir) { pdf_path:, work_dir:, output_pdf:, images: } end |