Sha256: e890a2c44738558f0f0a1df84099c824d43f5ee226bf6c43add35bb6fd910b4b

Contents?: true

Size: 646 Bytes

Versions: 22

Compression:

Stored size: 646 Bytes

Contents

class FormatParser::PDFParser
  include FormatParser::IOUtils

  # First 9 bytes of a PDF should be in this format, according to:
  #
  #  https://stackoverflow.com/questions/3108201/detect-if-pdf-file-is-correct-header-pdf
  #
  # There are however exceptions, which are left out for now.
  #
  PDF_MARKER = /%PDF-1\.[0-8]{1}/

  def likely_match?(filename)
    filename =~ /\.(pdf|ai)$/i
  end

  def call(io)
    io = FormatParser::IOConstraint.new(io)

    return unless safe_read(io, 9) =~ PDF_MARKER

    FormatParser::Document.new(format: :pdf)
  end

  FormatParser.register_parser new, natures: :document, formats: :pdf, priority: 1
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
format_parser-0.26.0 lib/parsers/pdf_parser.rb
format_parser-0.25.6 lib/parsers/pdf_parser.rb
format_parser-0.25.5 lib/parsers/pdf_parser.rb
format_parser-0.25.4 lib/parsers/pdf_parser.rb
format_parser-0.25.3 lib/parsers/pdf_parser.rb
format_parser-0.25.2 lib/parsers/pdf_parser.rb
format_parser-0.25.1 lib/parsers/pdf_parser.rb
format_parser-0.25.0 lib/parsers/pdf_parser.rb
format_parser-0.24.2 lib/parsers/pdf_parser.rb
format_parser-0.24.1 lib/parsers/pdf_parser.rb
format_parser-0.24.0 lib/parsers/pdf_parser.rb
format_parser-0.23.1 lib/parsers/pdf_parser.rb
format_parser-0.23.0 lib/parsers/pdf_parser.rb
format_parser-0.22.1 lib/parsers/pdf_parser.rb
format_parser-0.22.0 lib/parsers/pdf_parser.rb
format_parser-0.21.1 lib/parsers/pdf_parser.rb
format_parser-0.21.0 lib/parsers/pdf_parser.rb
format_parser-0.20.1 lib/parsers/pdf_parser.rb
format_parser-0.20.0 lib/parsers/pdf_parser.rb
format_parser-0.19.0 lib/parsers/pdf_parser.rb