pdflib_mini 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +9 -0
  5. data/CODE_OF_CONDUCT.md +49 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +160 -0
  9. data/Rakefile +6 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/lib/pdflib_mini.rb +38 -0
  13. data/lib/pdflib_mini/handle.rb +4 -0
  14. data/lib/pdflib_mini/handle/action.rb +10 -0
  15. data/lib/pdflib_mini/handle/asset.rb +10 -0
  16. data/lib/pdflib_mini/handle/base.rb +16 -0
  17. data/lib/pdflib_mini/handle/bookmark.rb +10 -0
  18. data/lib/pdflib_mini/handle/color.rb +10 -0
  19. data/lib/pdflib_mini/handle/data3d.rb +10 -0
  20. data/lib/pdflib_mini/handle/data3d_view.rb +10 -0
  21. data/lib/pdflib_mini/handle/folder.rb +22 -0
  22. data/lib/pdflib_mini/handle/font.rb +42 -0
  23. data/lib/pdflib_mini/handle/graphics.rb +39 -0
  24. data/lib/pdflib_mini/handle/graphics_state.rb +16 -0
  25. data/lib/pdflib_mini/handle/image.rb +39 -0
  26. data/lib/pdflib_mini/handle/item.rb +22 -0
  27. data/lib/pdflib_mini/handle/layer.rb +17 -0
  28. data/lib/pdflib_mini/handle/path.rb +45 -0
  29. data/lib/pdflib_mini/handle/pattern.rb +16 -0
  30. data/lib/pdflib_mini/handle/pdf.rb +6 -0
  31. data/lib/pdflib_mini/handle/pdf/document.rb +51 -0
  32. data/lib/pdflib_mini/handle/pdf/page.rb +72 -0
  33. data/lib/pdflib_mini/handle/profile.rb +10 -0
  34. data/lib/pdflib_mini/handle/shading.rb +16 -0
  35. data/lib/pdflib_mini/handle/table_cell.rb +39 -0
  36. data/lib/pdflib_mini/handle/template.rb +16 -0
  37. data/lib/pdflib_mini/handle/textflow.rb +42 -0
  38. data/lib/pdflib_mini/handle/textline.rb +33 -0
  39. data/lib/pdflib_mini/info.rb +237 -0
  40. data/lib/pdflib_mini/info_reader.rb +54 -0
  41. data/lib/pdflib_mini/pdflib.rb +457 -0
  42. data/lib/pdflib_mini/version.rb +3 -0
  43. data/pdflib_mini.gemspec +28 -0
  44. 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,16 @@
1
+ module PdflibMini
2
+ module Handle
3
+ class Pattern < Base
4
+ def initialize(pattern, p)
5
+ super(pattern)
6
+ @p = p
7
+ end
8
+
9
+ # 8.3 Patterns and Shadings
10
+ # end_pattern( )
11
+ def end_pattern
12
+ @p.end_pattern
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,6 @@
1
+ module PdflibMini
2
+ module Handle
3
+ module Pdf
4
+ end
5
+ end
6
+ 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,10 @@
1
+ module PdflibMini
2
+ module Handle
3
+ class Profile < Base
4
+ def initialize(profile, p)
5
+ super(profile)
6
+ @p = p
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,16 @@
1
+ module PdflibMini
2
+ module Handle
3
+ class Shading < Base
4
+ def initialize(sharding, p)
5
+ super(sharding)
6
+ @p = p
7
+ end
8
+
9
+ # 8.3 Patterns and Shadings
10
+ # shfill(int shading)
11
+ def shfill
12
+ @p.shfill(self)
13
+ end
14
+ end
15
+ end
16
+ 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