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