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.
390 391 392 393 394 395 396 397 |
# File 'lib/vivlio_starter/cli/pdf.rb', line 390 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
399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 |
# File 'lib/vivlio_starter/cli/pdf.rb', line 399 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 |