jpeg2pdf 0.12
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|