Sha256: 4ed5fd218f4d93561d502a20e6850af2b5af7298800dc694fca42638891891f1

Contents?: true

Size: 1.4 KB

Versions: 6

Compression:

Stored size: 1.4 KB

Contents

# encoding: utf-8

require_relative 'base'

require 'libis/format/tool/pdf_merge'

module Libis
  module Format
    module Converter

      # noinspection DuplicatedCode
      class PdfAssembler < Libis::Format::Converter::Base

        def self.input_types
          [:PDF]
        end

        def self.output_types(format = nil)
          return [] unless input_types.include?(format) if format
          [:PDF]
        end

        def self.category
          :assembler
        end

        def pdf_assemnble(_)
          #force usage of this converter
        end

        def convert(source, target, format, opts = {})
          super

          result = if source.is_a? Array
                     assemble(source, target)
                   elsif File.directory?(source)
                     source_list = Dir[File.join(source, '**', '*')].reject {|p| File.directory? p}
                     assemble(source_list, target)
                   else
                     assemble([source], target)
                   end
          return nil unless result

          result
        end

        private

        def assemble(source, target)

          result = Libis::Format::Tool::PdfMerge.run(source, target)

          unless result[:err].empty?
            error("PdfMerge encountered errors:\n%s", result[:err].join(join("\n")))
            return nil
          end

          target
        end

      end

    end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
libis-format-2.0.5 lib/libis/format/converter/pdf_assembler.rb
libis-format-2.0.4 lib/libis/format/converter/pdf_assembler.rb
libis-format-2.0.3 lib/libis/format/converter/pdf_assembler.rb
libis-format-2.0.2 lib/libis/format/converter/pdf_assembler.rb
libis-format-2.0.1 lib/libis/format/converter/pdf_assembler.rb
libis-format-2.0.0 lib/libis/format/converter/pdf_assembler.rb