Module: VivlioStarter::CLI::Build::PdfFinalizer

Defined in:
lib/vivlio_starter/cli/build/pdf_finalizer.rb

Overview

PDF 圧縮・リネームモジュール 中間 PDF はワークスペース pdf/ 内にあり、最終リネームでのみルートへ出る(P4 §3.4-6)

Class Method Summary collapse

Class Method Details

.compress_pdf!Object

Step 12: 生成PDFを圧縮 pipeline: true — PDF は生成済みのため、gs 不在や圧縮失敗で ビルド全体を止めず、スキップして未圧縮 PDF のまま続行する



39
40
41
42
# File 'lib/vivlio_starter/cli/build/pdf_finalizer.rb', line 39

def compress_pdf!
  Common.log_action('[Step 12] 生成PDFを圧縮します…')
  PdfCommands.execute_pdf_compress({ pipeline: true }, workspace_output_pdf, workspace_compressed_output_pdf)
end

.rename_compressed_pdfObject

pdf/output_compressed.pdf をルート直下の動的生成ファイル名へ移動



61
62
63
64
65
66
# File 'lib/vivlio_starter/cli/build/pdf_finalizer.rb', line 61

def rename_compressed_pdf
  target_name = Common.generate_compressed_pdf_filename('pdf')
  FileUtils.rm_f(target_name)
  FileUtils.mv(workspace_compressed_output_pdf, target_name)
  Common.log_success("圧縮PDFをリネームしました: output_compressed.pdf → #{target_name}")
end

.rename_main_pdfObject

pdf/output.pdf をルート直下の動的生成ファイル名へ移動



51
52
53
54
55
56
57
58
# File 'lib/vivlio_starter/cli/build/pdf_finalizer.rb', line 51

def rename_main_pdf
  return unless File.exist?(workspace_output_pdf)

  target_name = Common.generate_output_filename('pdf')
  FileUtils.rm_f(target_name)
  FileUtils.mv(workspace_output_pdf, target_name)
  Common.log_success("出力PDFをリネームしました: output.pdf → #{target_name}")
end

.rename_output_pdfs!Object

Step 13: 出力PDFを最終ファイル名にリネーム(ワークスペース → ルート)



45
46
47
48
# File 'lib/vivlio_starter/cli/build/pdf_finalizer.rb', line 45

def rename_output_pdfs!
  rename_main_pdf
  rename_compressed_pdf if File.exist?(workspace_compressed_output_pdf)
end

.workspace_compressed_output_pdfObject



34
# File 'lib/vivlio_starter/cli/build/pdf_finalizer.rb', line 34

def workspace_compressed_output_pdf = File.join(Common::BUILD_PDF_DIR, 'output_compressed.pdf')

.workspace_output_pdfObject

結合済み PDF(リネーム前)のワークスペース内パス



33
# File 'lib/vivlio_starter/cli/build/pdf_finalizer.rb', line 33

def workspace_output_pdf            = File.join(Common::BUILD_PDF_DIR, 'output.pdf')