Sha256: 41a75ea2fe512bd746e88594e93def8458bcaec2ab3d8b4ee0ddd83d43fc51a4

Contents?: true

Size: 1.29 KB

Versions: 103

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

require 'pdf-reader'

module PWN
  module Plugins
    # This plugin is used for parsing and interacting with PDF files
    module PDFParse
      # Supported Method Parameters::
      # PWN::Plugins::PDFParse.read_text(
      #   pdf_path: 'optional path to dir defaults to .'
      # )

      public_class_method def self.read_text(opts = {})
        pdf_path = opts[:pdf_path].to_s.scrub if File.exist?(opts[:pdf_path].to_s.scrub)
        raise "PWN Error: Invalid Directory #{pdf_path}" if pdf_path.nil?

        pdf_pages_hash = {}
        page_no = 1
        reader = PDF::Reader.new(pdf_path)
        reader.pages.each do |page|
          print '.'
          pdf_pages_hash[page_no] = page.text
          page_no += 1
        end
        print "\n"
        pdf_pages_hash
      rescue StandardError => e
        raise e
      end

      # Author(s):: 0day Inc. <support@0dayinc.com>

      public_class_method def self.authors
        "AUTHOR(S):
          0day Inc. <support@0dayinc.com>
        "
      end

      # Display Usage for this Module

      public_class_method def self.help
        puts "USAGE:
          pdf_pages_hash = #{self}.read_text(
            pdf_path: 'required path to pdf file'
          )

          #{self}.authors
        "
      end
    end
  end
end

Version data entries

103 entries across 103 versions & 1 rubygems

Version Path
pwn-0.5.253 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.252 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.251 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.250 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.249 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.248 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.247 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.246 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.245 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.244 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.243 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.242 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.241 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.240 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.239 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.238 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.237 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.236 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.235 lib/pwn/plugins/pdf_parse.rb
pwn-0.5.234 lib/pwn/plugins/pdf_parse.rb