pdflib_mini 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +9 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +160 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/pdflib_mini.rb +38 -0
- data/lib/pdflib_mini/handle.rb +4 -0
- data/lib/pdflib_mini/handle/action.rb +10 -0
- data/lib/pdflib_mini/handle/asset.rb +10 -0
- data/lib/pdflib_mini/handle/base.rb +16 -0
- data/lib/pdflib_mini/handle/bookmark.rb +10 -0
- data/lib/pdflib_mini/handle/color.rb +10 -0
- data/lib/pdflib_mini/handle/data3d.rb +10 -0
- data/lib/pdflib_mini/handle/data3d_view.rb +10 -0
- data/lib/pdflib_mini/handle/folder.rb +22 -0
- data/lib/pdflib_mini/handle/font.rb +42 -0
- data/lib/pdflib_mini/handle/graphics.rb +39 -0
- data/lib/pdflib_mini/handle/graphics_state.rb +16 -0
- data/lib/pdflib_mini/handle/image.rb +39 -0
- data/lib/pdflib_mini/handle/item.rb +22 -0
- data/lib/pdflib_mini/handle/layer.rb +17 -0
- data/lib/pdflib_mini/handle/path.rb +45 -0
- data/lib/pdflib_mini/handle/pattern.rb +16 -0
- data/lib/pdflib_mini/handle/pdf.rb +6 -0
- data/lib/pdflib_mini/handle/pdf/document.rb +51 -0
- data/lib/pdflib_mini/handle/pdf/page.rb +72 -0
- data/lib/pdflib_mini/handle/profile.rb +10 -0
- data/lib/pdflib_mini/handle/shading.rb +16 -0
- data/lib/pdflib_mini/handle/table_cell.rb +39 -0
- data/lib/pdflib_mini/handle/template.rb +16 -0
- data/lib/pdflib_mini/handle/textflow.rb +42 -0
- data/lib/pdflib_mini/handle/textline.rb +33 -0
- data/lib/pdflib_mini/info.rb +237 -0
- data/lib/pdflib_mini/info_reader.rb +54 -0
- data/lib/pdflib_mini/pdflib.rb +457 -0
- data/lib/pdflib_mini/version.rb +3 -0
- data/pdflib_mini.gemspec +28 -0
- metadata +142 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
module PdflibMini
|
2
|
+
module Handle
|
3
|
+
class Font < Base
|
4
|
+
include PdflibMini::InfoReader
|
5
|
+
|
6
|
+
INFO_KEYWORD = PdflibMini::Info::INFO_KEYWORD_TABLE_4_5
|
7
|
+
|
8
|
+
INFO_KEYWORD.each do |keyword, type|
|
9
|
+
info_reader(:info_font, keyword, type)
|
10
|
+
end
|
11
|
+
|
12
|
+
def initialize(font, p)
|
13
|
+
super(font)
|
14
|
+
@p = p
|
15
|
+
end
|
16
|
+
|
17
|
+
# 4.1 Font Handling
|
18
|
+
# close_font(int font)
|
19
|
+
def close_font
|
20
|
+
@p.close_font(self)
|
21
|
+
end
|
22
|
+
|
23
|
+
# 4.1 Font Handling
|
24
|
+
# float info_font(int font, string keyword, string optlist)
|
25
|
+
def info_font(*args)
|
26
|
+
@p.info_font(self, *args)
|
27
|
+
end
|
28
|
+
|
29
|
+
# 4.3 Simple Text Output
|
30
|
+
# setfont(int font, float fontsize)
|
31
|
+
def setfont(*args)
|
32
|
+
@p.setfont(self, *args)
|
33
|
+
end
|
34
|
+
|
35
|
+
# 4.3 Simple Text Output
|
36
|
+
# float stringwidth(string text, int font, float fontsize)
|
37
|
+
def stringwidth(text, fontsize)
|
38
|
+
@p.stringwidth(text, self, fontsize)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module PdflibMini
|
2
|
+
module Handle
|
3
|
+
class Graphics < Base
|
4
|
+
include PdflibMini::InfoReader
|
5
|
+
|
6
|
+
INFO_KEYWORD = [
|
7
|
+
PdflibMini::Info::INFO_KEYWORD_TABLE_6_3,
|
8
|
+
PdflibMini::Info::INFO_KEYWORD_TABLE_9_8,
|
9
|
+
].reduce([], :+)
|
10
|
+
|
11
|
+
INFO_KEYWORD.each do |keyword, type|
|
12
|
+
info_reader(:info_graphics, keyword, type)
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(graphics, p)
|
16
|
+
super(graphics)
|
17
|
+
@p = p
|
18
|
+
end
|
19
|
+
|
20
|
+
# 9.2 SVG Graphics
|
21
|
+
# close_graphics(int graphics)
|
22
|
+
def close_graphics
|
23
|
+
@p.close_graphics(self)
|
24
|
+
end
|
25
|
+
|
26
|
+
# 9.2 SVG Graphics
|
27
|
+
# fit_graphics(int graphics, float x, float y, string optlist)
|
28
|
+
def fit_graphics(*args)
|
29
|
+
@p.fit_graphics(self, *args)
|
30
|
+
end
|
31
|
+
|
32
|
+
# 9.2 SVG Graphics
|
33
|
+
# float info_graphics(int graphics, string keyword, string optlist)
|
34
|
+
def info_graphics(*args)
|
35
|
+
@p.info_graphics(self, *args)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module PdflibMini
|
2
|
+
module Handle
|
3
|
+
class GraphicsState < Base
|
4
|
+
def initialize(graphics_state, p)
|
5
|
+
super(graphics_state)
|
6
|
+
@p = p
|
7
|
+
end
|
8
|
+
|
9
|
+
# 7.2 Graphics State
|
10
|
+
# set_gstate(int gstate)
|
11
|
+
def set_gstate
|
12
|
+
@p.set_gstate(self)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module PdflibMini
|
2
|
+
module Handle
|
3
|
+
class Image < Base
|
4
|
+
include PdflibMini::InfoReader
|
5
|
+
|
6
|
+
INFO_KEYWORD = [
|
7
|
+
PdflibMini::Info::INFO_KEYWORD_TABLE_6_3,
|
8
|
+
PdflibMini::Info::INFO_KEYWORD_TABLE_9_4,
|
9
|
+
].reduce([], :+)
|
10
|
+
|
11
|
+
INFO_KEYWORD.each do |keyword, type|
|
12
|
+
info_reader(:info_image, keyword, type)
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(image, p)
|
16
|
+
super(image)
|
17
|
+
@p = p
|
18
|
+
end
|
19
|
+
|
20
|
+
# 9.1 Images
|
21
|
+
# close_image(int image)
|
22
|
+
def close_image
|
23
|
+
@p.close_image(self)
|
24
|
+
end
|
25
|
+
|
26
|
+
# 9.1 Images
|
27
|
+
# fit_image(int image, float x, float y, string optlist)
|
28
|
+
def fit_image(*args)
|
29
|
+
@p.fit_image(self, *args)
|
30
|
+
end
|
31
|
+
|
32
|
+
# 9.1 Images
|
33
|
+
# float info_image(int image, string keyword, string optlist)
|
34
|
+
def info_image(*args)
|
35
|
+
@p.info_image(self, *args)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module PdflibMini
|
2
|
+
module Handle
|
3
|
+
class Item < Base
|
4
|
+
def initialize(item, p)
|
5
|
+
super(item)
|
6
|
+
@p = p
|
7
|
+
end
|
8
|
+
|
9
|
+
# 14.3 Tagged PDF
|
10
|
+
# end_item(int id)
|
11
|
+
def end_item
|
12
|
+
@p.end_item(self)
|
13
|
+
end
|
14
|
+
|
15
|
+
# 14.3 Tagged PDF
|
16
|
+
# activate_item(int id)
|
17
|
+
def activate_item
|
18
|
+
@p.activate_item(self)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module PdflibMini
|
2
|
+
module Handle
|
3
|
+
class Layer < Base
|
4
|
+
def initialize(layer, p)
|
5
|
+
super(layer)
|
6
|
+
@p = p
|
7
|
+
end
|
8
|
+
|
9
|
+
# 3.4 Layers
|
10
|
+
# begin_layer(int layer)
|
11
|
+
# end_layer( )
|
12
|
+
def begin_layer(&block)
|
13
|
+
@p.begin_layer(self, &block)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module PdflibMini
|
2
|
+
module Handle
|
3
|
+
class Path < Base
|
4
|
+
include PdflibMini::InfoReader
|
5
|
+
|
6
|
+
INFO_KEYWORD = [
|
7
|
+
PdflibMini::Info::INFO_KEYWORD_TABLE_6_3,
|
8
|
+
PdflibMini::Info::INFO_KEYWORD_TABLE_7_8,
|
9
|
+
].reduce([], :+)
|
10
|
+
|
11
|
+
INFO_KEYWORD.each do |keyword, type|
|
12
|
+
info_reader(:info_path, keyword, type)
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(path, p)
|
16
|
+
super(path)
|
17
|
+
@p = p
|
18
|
+
end
|
19
|
+
|
20
|
+
# 7.6 Path Objects
|
21
|
+
# int add_path_point(int path, float x, float y, string type, string optlist)
|
22
|
+
def add_path_point(*args)
|
23
|
+
@p.add_path_point(self, *args)
|
24
|
+
end
|
25
|
+
|
26
|
+
# 7.6 Path Objects
|
27
|
+
# draw_path(int path, float x, float y, string optlist)
|
28
|
+
def draw_path(*args)
|
29
|
+
@p.draw_path(self, *args)
|
30
|
+
end
|
31
|
+
|
32
|
+
# 7.6 Path Objects
|
33
|
+
# float info_path(int path, string keyword, string optlist)
|
34
|
+
def info_path(*args)
|
35
|
+
@p.info_path(self, *args)
|
36
|
+
end
|
37
|
+
|
38
|
+
# 7.6 Path Objects
|
39
|
+
# delete_path(int path)
|
40
|
+
def delete_path
|
41
|
+
@p.delete_path(self)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module PdflibMini
|
2
|
+
module Handle
|
3
|
+
module Pdf
|
4
|
+
class Document < Base
|
5
|
+
attr_reader :filename
|
6
|
+
|
7
|
+
def initialize(doc, p, filename)
|
8
|
+
super(doc)
|
9
|
+
@p = p
|
10
|
+
@filename = filename
|
11
|
+
end
|
12
|
+
|
13
|
+
# 10.1 Document Functions
|
14
|
+
# close_pdi_document(int doc)
|
15
|
+
def close_pdi_document
|
16
|
+
@p.close_pdi_document(self)
|
17
|
+
end
|
18
|
+
|
19
|
+
# 10.2 Page Functions
|
20
|
+
# int open_pdi_page(int doc, int pagenumber, string optlist)
|
21
|
+
def open_pdi_page(*args, &block)
|
22
|
+
@p.open_pdi_page(self, *args, &block)
|
23
|
+
end
|
24
|
+
|
25
|
+
# 10.3 Other PDI Processing
|
26
|
+
# int process_pdi(int doc, int page, string optlist)
|
27
|
+
def process_pdi(*args)
|
28
|
+
@p.process_pdi(self, *args)
|
29
|
+
end
|
30
|
+
|
31
|
+
# 10.4 pCOS Functions
|
32
|
+
# double pcos_get_number(long doc, string path)
|
33
|
+
def pcos_get_number(*args)
|
34
|
+
@p.pcos_get_number(self, *args)
|
35
|
+
end
|
36
|
+
|
37
|
+
# 10.4 pCOS Functions
|
38
|
+
# string pcos_get_string(long doc, string path)
|
39
|
+
def pcos_get_string(*args)
|
40
|
+
@p.pcos_get_string(self, *args)
|
41
|
+
end
|
42
|
+
|
43
|
+
# 10.4 pCOS Functions
|
44
|
+
# string pcos_get_stream(long doc, string optlist, string path)
|
45
|
+
def pcos_get_stream(*args)
|
46
|
+
@p.pcos_get_stream(self, *args)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
module PdflibMini
|
2
|
+
module Handle
|
3
|
+
module Pdf
|
4
|
+
class Page < Base
|
5
|
+
include PdflibMini::InfoReader
|
6
|
+
|
7
|
+
INFO_KEYWORD = [
|
8
|
+
PdflibMini::Info::INFO_KEYWORD_TABLE_6_3,
|
9
|
+
PdflibMini::Info::INFO_KEYWORD_TABLE_10_4,
|
10
|
+
].reduce([], :+)
|
11
|
+
|
12
|
+
INFO_KEYWORD.each do |keyword, type|
|
13
|
+
info_reader(:info_pdi_page, keyword, type)
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize(page, doc, p)
|
17
|
+
super(page)
|
18
|
+
@doc = doc
|
19
|
+
@p = p
|
20
|
+
end
|
21
|
+
|
22
|
+
# 10.2 Page Functions
|
23
|
+
# close_pdi_page(int page)
|
24
|
+
def close_pdi_page
|
25
|
+
@p.close_pdi_page(self)
|
26
|
+
end
|
27
|
+
|
28
|
+
# 10.2 Page Functions
|
29
|
+
# fit_pdi_page(int page, float x, float y, string optlist)
|
30
|
+
def fit_pdi_page(x, y, optlist)
|
31
|
+
@p.fit_pdi_page(self, x, y, optlist)
|
32
|
+
end
|
33
|
+
|
34
|
+
# 10.2 Page Functions
|
35
|
+
# float info_pdi_page(int page, string keyword, string optlist)
|
36
|
+
def info_pdi_page(keyword, optlist)
|
37
|
+
@p.info_pdi_page(self, keyword, optlist)
|
38
|
+
end
|
39
|
+
|
40
|
+
# 10.3 Other PDI Processing
|
41
|
+
# int process_pdi(int doc, int page, string optlist)
|
42
|
+
def process_pdi(*args)
|
43
|
+
@doc.process_pdi(self, *args)
|
44
|
+
end
|
45
|
+
|
46
|
+
# 11.2 Textline and Textflow Blocks
|
47
|
+
# int fill_textblock(int page, string blockname, string text, string optlist)
|
48
|
+
def fill_textblock(*args)
|
49
|
+
@p.fill_textblock(self, *args)
|
50
|
+
end
|
51
|
+
|
52
|
+
# 11.3 Image Blocks
|
53
|
+
# int fill_imageblock(int page, string blockname, int image, string optlist)
|
54
|
+
def fill_imageblock(*args)
|
55
|
+
@p.fill_imageblock(self, *args)
|
56
|
+
end
|
57
|
+
|
58
|
+
# 11.4 PDF Blocks
|
59
|
+
# int fill_pdfblock(int page, string blockname, int contents, string optlist)
|
60
|
+
def fill_pdfblock(*args)
|
61
|
+
@p.fill_pdfblock(self, *args)
|
62
|
+
end
|
63
|
+
|
64
|
+
# 11.5 Graphics Blocks
|
65
|
+
# int fill_graphicsblock(int page, string blockname, int contents, string optlist)
|
66
|
+
def fill_graphicsblock(*args)
|
67
|
+
@p.fill_graphicsblock(self, *args)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module PdflibMini
|
2
|
+
module Handle
|
3
|
+
class TableCell < Base
|
4
|
+
include PdflibMini::InfoReader
|
5
|
+
|
6
|
+
INFO_KEYWORD = [
|
7
|
+
PdflibMini::Info::INFO_KEYWORD_TABLE_5_19,
|
8
|
+
PdflibMini::Info::INFO_KEYWORD_TABLE_6_3,
|
9
|
+
].reduce([], :+)
|
10
|
+
|
11
|
+
INFO_KEYWORD.each do |keyword, type|
|
12
|
+
info_reader(:info_table, keyword, type)
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(table_cell, p)
|
16
|
+
super(table_cell)
|
17
|
+
@p = p
|
18
|
+
end
|
19
|
+
|
20
|
+
# 5.3 Table Formatting
|
21
|
+
# string fit_table(int table, float llx, float lly, float urx, float ury, string optlist)
|
22
|
+
def fit_table(*args)
|
23
|
+
@p.fit_table(self, *args)
|
24
|
+
end
|
25
|
+
|
26
|
+
# 5.3 Table Formatting
|
27
|
+
# float info_table(int table, string keyword)
|
28
|
+
def info_table(keyword, _)
|
29
|
+
@p.info_table(self, keyword)
|
30
|
+
end
|
31
|
+
|
32
|
+
# 5.3 Table Formatting
|
33
|
+
# delete_table(int table, string optlist)
|
34
|
+
def delete_table(*args)
|
35
|
+
@p.delete_table(self, *args)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|