jpeg2pdf 0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +37 -0
- data/README +162 -0
- data/bin/jpeg2pdf +102 -0
- data/bin/test.rb +111 -0
- data/install.rb +1360 -0
- data/jpeg2pdf.gemspec +18 -0
- data/lib/image_size.rb +291 -0
- data/lib/jpeg2pdf.rb +84 -0
- data/lib/rpdf.rb +48 -0
- data/lib/rpdf/crossreftable.rb +33 -0
- data/lib/rpdf/document.rb +61 -0
- data/lib/rpdf/documentcatalog.rb +18 -0
- data/lib/rpdf/imagedictionary.rb +23 -0
- data/lib/rpdf/page.rb +21 -0
- data/lib/rpdf/pagetree.rb +24 -0
- data/lib/rpdf/pdfarray.rb +35 -0
- data/lib/rpdf/pdfboolean.rb +28 -0
- data/lib/rpdf/pdfdictionary.rb +51 -0
- data/lib/rpdf/pdfinteger.rb +17 -0
- data/lib/rpdf/pdfname.rb +35 -0
- data/lib/rpdf/pdfnull.rb +19 -0
- data/lib/rpdf/pdfnumeric.rb +28 -0
- data/lib/rpdf/pdfobject.rb +60 -0
- data/lib/rpdf/pdfstream.rb +32 -0
- data/lib/rpdf/pdfstring.rb +38 -0
- data/lib/rpdf/rectangle.rb +15 -0
- data/lib/rpdf/trailer.rb +30 -0
- data/lib/rpdf/util.rb +41 -0
- data/lib/rpdf/version.rb +31 -0
- metadata +71 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'rpdf/pdfobject'
|
2
|
+
|
3
|
+
module RPDF
|
4
|
+
|
5
|
+
# String Object
|
6
|
+
# [PDFRef15 p29]
|
7
|
+
class PDFString < PDFObject
|
8
|
+
attr_reader :value
|
9
|
+
|
10
|
+
attr_accessor :hexadecimal
|
11
|
+
|
12
|
+
def initialize(value, document=nil)
|
13
|
+
raise Exception.new("PDFString is not a string") unless value.kind_of?(String)
|
14
|
+
@value = value
|
15
|
+
@hexadecimal = false
|
16
|
+
super(document)
|
17
|
+
end
|
18
|
+
|
19
|
+
def ==(other)
|
20
|
+
@value == other.value
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_s
|
24
|
+
if @hexadecimal
|
25
|
+
# [PDFRef15 p32]
|
26
|
+
hexval = String.new
|
27
|
+
@value.each_byte { |byte|
|
28
|
+
hexval << "%02X" % byte
|
29
|
+
}
|
30
|
+
"<#{hexval}>"
|
31
|
+
else
|
32
|
+
"(#{@value.dump})" # nonprinting characters should be replaced by \nnn and special characters escaped
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
data/lib/rpdf/trailer.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'rpdf/document'
|
2
|
+
require 'rpdf/pdfdictionary'
|
3
|
+
require 'rpdf/pdfinteger'
|
4
|
+
require 'rpdf/pdfname'
|
5
|
+
|
6
|
+
module RPDF
|
7
|
+
|
8
|
+
# File Trailer [PDFRef15 p72]
|
9
|
+
class Trailer
|
10
|
+
|
11
|
+
attr_accessor :startxref
|
12
|
+
|
13
|
+
def initialize(document)
|
14
|
+
@document = document
|
15
|
+
end
|
16
|
+
|
17
|
+
def to_pdf
|
18
|
+
dict = PDFDictionary.new({ :Size => @document.size + 1,
|
19
|
+
:Root => @document.root })
|
20
|
+
|
21
|
+
bytes = "trailer\n"
|
22
|
+
bytes << dict.to_pdf
|
23
|
+
bytes << "\nstartxref\n"
|
24
|
+
bytes << startxref.to_s << "\n"
|
25
|
+
bytes << "%%EOF\n"
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
data/lib/rpdf/util.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
module RPDF
|
2
|
+
|
3
|
+
EOL = "\r\n"
|
4
|
+
|
5
|
+
# [PDFRef15 p26]
|
6
|
+
def includes_whitespace?(string)
|
7
|
+
string =~ /[\0\t\r\n\f ]/ ? true : false
|
8
|
+
end
|
9
|
+
|
10
|
+
def includes_delimiter?(string)
|
11
|
+
string =~ /[\(\)<>\[\]{}\/%]/ ? true : false
|
12
|
+
end
|
13
|
+
|
14
|
+
# convert basic object to PDF Object
|
15
|
+
def topdfobject(object, document=nil)
|
16
|
+
if object.kind_of?(TrueClass) or object.kind_of?(FalseClass)
|
17
|
+
PDFBoolean.new(object, document)
|
18
|
+
elsif object.kind_of?(Integer)
|
19
|
+
PDFInteger.new(object, document)
|
20
|
+
elsif object.kind_of?(Numeric)
|
21
|
+
PDFNumeric.new(object, document)
|
22
|
+
elsif object.kind_of?(String)
|
23
|
+
PDFString.new(object, document)
|
24
|
+
elsif object.kind_of?(Symbol)
|
25
|
+
PDFName.new(object.to_s, document)
|
26
|
+
elsif object.kind_of?(Array)
|
27
|
+
PDFArray.new(object, document)
|
28
|
+
elsif object.kind_of?(Hash)
|
29
|
+
PDFDictionary.new(object, document)
|
30
|
+
elsif object.kind_of?(NilClass)
|
31
|
+
PDFNull.new
|
32
|
+
elsif object.kind_of?(PDFObject)
|
33
|
+
object
|
34
|
+
else
|
35
|
+
raise Exception.new("Cannot convert #{object.class} to PDF object")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
module_function :includes_whitespace?, :includes_delimiter?, :topdfobject
|
40
|
+
|
41
|
+
end
|
data/lib/rpdf/version.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
module RPDF
|
2
|
+
|
3
|
+
# class describing a PDF version.
|
4
|
+
# Don't use this class directly, but use the constants defined in this file.
|
5
|
+
# [PDFRef15 p68]
|
6
|
+
class PDFVersion
|
7
|
+
include Comparable
|
8
|
+
|
9
|
+
attr_reader :value
|
10
|
+
|
11
|
+
def initialize(version_string)
|
12
|
+
@value = version_string
|
13
|
+
end
|
14
|
+
|
15
|
+
def <=>(other_version)
|
16
|
+
@value <=> other_version.value
|
17
|
+
end
|
18
|
+
|
19
|
+
def to_pdf
|
20
|
+
"%PDF-#{@value}\n"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
VERSION_10 = PDFVersion.new("1.0")
|
25
|
+
VERSION_11 = PDFVersion.new("1.1")
|
26
|
+
VERSION_12 = PDFVersion.new("1.2")
|
27
|
+
VERSION_13 = PDFVersion.new("1.3")
|
28
|
+
VERSION_14 = PDFVersion.new("1.4")
|
29
|
+
VERSION_15 = PDFVersion.new("1.5")
|
30
|
+
VERSION_DEFAULT = VERSION_14
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: "0.8"
|
3
|
+
specification_version: 1
|
4
|
+
name: jpeg2pdf
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: "0.12"
|
7
|
+
date: 2004-10-23
|
8
|
+
summary: jpeg2pdf is a free program that converts a directory of JPEG files to a PDF file.
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
author: Koen Vervloesem
|
12
|
+
email: koen.vervloesem@myrealbox.com
|
13
|
+
homepage: http://koan.studentenweb.org/software/jpeg2pdf.html
|
14
|
+
rubyforge_project:
|
15
|
+
description:
|
16
|
+
autorequire: jpeg2pdf
|
17
|
+
default_executable: jpeg2pdf
|
18
|
+
bindir: bin
|
19
|
+
has_rdoc: true
|
20
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
21
|
+
requirements:
|
22
|
+
-
|
23
|
+
- ">"
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: 0.0.0
|
26
|
+
version:
|
27
|
+
platform: ruby
|
28
|
+
files:
|
29
|
+
- bin
|
30
|
+
- install.rb
|
31
|
+
- lib
|
32
|
+
- LICENSE
|
33
|
+
- README
|
34
|
+
- jpeg2pdf.gemspec
|
35
|
+
- bin/jpeg2pdf
|
36
|
+
- bin/test.rb
|
37
|
+
- lib/image_size.rb
|
38
|
+
- lib/jpeg2pdf.rb
|
39
|
+
- lib/rpdf
|
40
|
+
- lib/rpdf.rb
|
41
|
+
- lib/rpdf/crossreftable.rb
|
42
|
+
- lib/rpdf/document.rb
|
43
|
+
- lib/rpdf/documentcatalog.rb
|
44
|
+
- lib/rpdf/imagedictionary.rb
|
45
|
+
- lib/rpdf/page.rb
|
46
|
+
- lib/rpdf/pagetree.rb
|
47
|
+
- lib/rpdf/pdfarray.rb
|
48
|
+
- lib/rpdf/pdfboolean.rb
|
49
|
+
- lib/rpdf/pdfdictionary.rb
|
50
|
+
- lib/rpdf/pdfinteger.rb
|
51
|
+
- lib/rpdf/pdfname.rb
|
52
|
+
- lib/rpdf/pdfnull.rb
|
53
|
+
- lib/rpdf/pdfnumeric.rb
|
54
|
+
- lib/rpdf/pdfobject.rb
|
55
|
+
- lib/rpdf/pdfstream.rb
|
56
|
+
- lib/rpdf/pdfstring.rb
|
57
|
+
- lib/rpdf/rectangle.rb
|
58
|
+
- lib/rpdf/trailer.rb
|
59
|
+
- lib/rpdf/util.rb
|
60
|
+
- lib/rpdf/version.rb
|
61
|
+
test_files: []
|
62
|
+
rdoc_options:
|
63
|
+
- "--main"
|
64
|
+
- README
|
65
|
+
extra_rdoc_files:
|
66
|
+
- README
|
67
|
+
executables:
|
68
|
+
- jpeg2pdf
|
69
|
+
extensions: []
|
70
|
+
requirements: []
|
71
|
+
dependencies: []
|