pdflib_mini 0.1.0
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.
- 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
|