hexapdf 0.9.0 → 0.9.1

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 (191) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/CONTRIBUTERS +2 -1
  4. data/LICENSE +1 -1
  5. data/Rakefile +0 -1
  6. data/VERSION +1 -1
  7. data/examples/019-column_box.rb +57 -0
  8. data/lib/hexapdf.rb +4 -1
  9. data/lib/hexapdf/cli.rb +4 -1
  10. data/lib/hexapdf/cli/batch.rb +4 -1
  11. data/lib/hexapdf/cli/command.rb +4 -1
  12. data/lib/hexapdf/cli/files.rb +4 -1
  13. data/lib/hexapdf/cli/images.rb +4 -1
  14. data/lib/hexapdf/cli/info.rb +4 -1
  15. data/lib/hexapdf/cli/inspect.rb +4 -1
  16. data/lib/hexapdf/cli/merge.rb +4 -1
  17. data/lib/hexapdf/cli/modify.rb +4 -1
  18. data/lib/hexapdf/cli/optimize.rb +4 -1
  19. data/lib/hexapdf/cli/split.rb +5 -2
  20. data/lib/hexapdf/composer.rb +4 -1
  21. data/lib/hexapdf/configuration.rb +4 -1
  22. data/lib/hexapdf/content.rb +4 -1
  23. data/lib/hexapdf/content/canvas.rb +4 -1
  24. data/lib/hexapdf/content/color_space.rb +4 -1
  25. data/lib/hexapdf/content/graphic_object.rb +4 -1
  26. data/lib/hexapdf/content/graphic_object/arc.rb +4 -1
  27. data/lib/hexapdf/content/graphic_object/endpoint_arc.rb +4 -1
  28. data/lib/hexapdf/content/graphic_object/geom2d.rb +4 -1
  29. data/lib/hexapdf/content/graphic_object/solid_arc.rb +4 -1
  30. data/lib/hexapdf/content/graphics_state.rb +4 -1
  31. data/lib/hexapdf/content/operator.rb +4 -1
  32. data/lib/hexapdf/content/parser.rb +4 -1
  33. data/lib/hexapdf/content/processor.rb +4 -1
  34. data/lib/hexapdf/content/transformation_matrix.rb +4 -1
  35. data/lib/hexapdf/data_dir.rb +4 -1
  36. data/lib/hexapdf/dictionary.rb +4 -1
  37. data/lib/hexapdf/dictionary_fields.rb +4 -1
  38. data/lib/hexapdf/document.rb +4 -1
  39. data/lib/hexapdf/document/files.rb +4 -1
  40. data/lib/hexapdf/document/fonts.rb +4 -1
  41. data/lib/hexapdf/document/images.rb +4 -1
  42. data/lib/hexapdf/document/pages.rb +4 -1
  43. data/lib/hexapdf/encryption.rb +4 -1
  44. data/lib/hexapdf/encryption/aes.rb +4 -1
  45. data/lib/hexapdf/encryption/arc4.rb +4 -1
  46. data/lib/hexapdf/encryption/fast_aes.rb +4 -1
  47. data/lib/hexapdf/encryption/fast_arc4.rb +4 -1
  48. data/lib/hexapdf/encryption/identity.rb +4 -1
  49. data/lib/hexapdf/encryption/ruby_aes.rb +4 -1
  50. data/lib/hexapdf/encryption/ruby_arc4.rb +4 -1
  51. data/lib/hexapdf/encryption/security_handler.rb +4 -1
  52. data/lib/hexapdf/encryption/standard_security_handler.rb +4 -1
  53. data/lib/hexapdf/error.rb +4 -1
  54. data/lib/hexapdf/filter.rb +4 -1
  55. data/lib/hexapdf/filter/ascii85_decode.rb +4 -1
  56. data/lib/hexapdf/filter/ascii_hex_decode.rb +4 -1
  57. data/lib/hexapdf/filter/dct_decode.rb +4 -1
  58. data/lib/hexapdf/filter/encryption.rb +4 -1
  59. data/lib/hexapdf/filter/flate_decode.rb +4 -1
  60. data/lib/hexapdf/filter/jpx_decode.rb +4 -1
  61. data/lib/hexapdf/filter/lzw_decode.rb +4 -1
  62. data/lib/hexapdf/filter/predictor.rb +4 -1
  63. data/lib/hexapdf/filter/run_length_decode.rb +4 -1
  64. data/lib/hexapdf/font/cmap.rb +4 -1
  65. data/lib/hexapdf/font/cmap/parser.rb +4 -1
  66. data/lib/hexapdf/font/cmap/writer.rb +5 -2
  67. data/lib/hexapdf/font/encoding.rb +4 -1
  68. data/lib/hexapdf/font/encoding/base.rb +4 -1
  69. data/lib/hexapdf/font/encoding/difference_encoding.rb +4 -1
  70. data/lib/hexapdf/font/encoding/glyph_list.rb +4 -1
  71. data/lib/hexapdf/font/encoding/mac_expert_encoding.rb +4 -1
  72. data/lib/hexapdf/font/encoding/mac_roman_encoding.rb +4 -1
  73. data/lib/hexapdf/font/encoding/standard_encoding.rb +4 -1
  74. data/lib/hexapdf/font/encoding/symbol_encoding.rb +4 -1
  75. data/lib/hexapdf/font/encoding/win_ansi_encoding.rb +4 -1
  76. data/lib/hexapdf/font/encoding/zapf_dingbats_encoding.rb +4 -1
  77. data/lib/hexapdf/font/invalid_glyph.rb +4 -1
  78. data/lib/hexapdf/font/true_type.rb +4 -1
  79. data/lib/hexapdf/font/true_type/builder.rb +4 -1
  80. data/lib/hexapdf/font/true_type/font.rb +4 -1
  81. data/lib/hexapdf/font/true_type/optimizer.rb +4 -1
  82. data/lib/hexapdf/font/true_type/subsetter.rb +4 -1
  83. data/lib/hexapdf/font/true_type/table.rb +4 -1
  84. data/lib/hexapdf/font/true_type/table/cmap.rb +4 -1
  85. data/lib/hexapdf/font/true_type/table/cmap_subtable.rb +4 -1
  86. data/lib/hexapdf/font/true_type/table/directory.rb +4 -1
  87. data/lib/hexapdf/font/true_type/table/glyf.rb +4 -1
  88. data/lib/hexapdf/font/true_type/table/head.rb +4 -1
  89. data/lib/hexapdf/font/true_type/table/hhea.rb +4 -1
  90. data/lib/hexapdf/font/true_type/table/hmtx.rb +4 -1
  91. data/lib/hexapdf/font/true_type/table/kern.rb +4 -1
  92. data/lib/hexapdf/font/true_type/table/loca.rb +4 -1
  93. data/lib/hexapdf/font/true_type/table/maxp.rb +4 -1
  94. data/lib/hexapdf/font/true_type/table/name.rb +4 -1
  95. data/lib/hexapdf/font/true_type/table/os2.rb +4 -1
  96. data/lib/hexapdf/font/true_type/table/post.rb +4 -1
  97. data/lib/hexapdf/font/true_type_wrapper.rb +4 -1
  98. data/lib/hexapdf/font/type1.rb +4 -1
  99. data/lib/hexapdf/font/type1/afm_parser.rb +4 -1
  100. data/lib/hexapdf/font/type1/character_metrics.rb +4 -1
  101. data/lib/hexapdf/font/type1/font.rb +4 -1
  102. data/lib/hexapdf/font/type1/font_metrics.rb +4 -1
  103. data/lib/hexapdf/font/type1/pfb_parser.rb +4 -1
  104. data/lib/hexapdf/font/type1_wrapper.rb +4 -1
  105. data/lib/hexapdf/font_loader.rb +4 -1
  106. data/lib/hexapdf/font_loader/from_configuration.rb +4 -1
  107. data/lib/hexapdf/font_loader/from_file.rb +4 -1
  108. data/lib/hexapdf/font_loader/standard14.rb +4 -1
  109. data/lib/hexapdf/image_loader.rb +4 -1
  110. data/lib/hexapdf/image_loader/jpeg.rb +4 -1
  111. data/lib/hexapdf/image_loader/pdf.rb +4 -1
  112. data/lib/hexapdf/image_loader/png.rb +4 -1
  113. data/lib/hexapdf/importer.rb +4 -1
  114. data/lib/hexapdf/layout.rb +4 -1
  115. data/lib/hexapdf/layout/box.rb +4 -1
  116. data/lib/hexapdf/layout/column_box.rb +161 -0
  117. data/lib/hexapdf/layout/frame.rb +4 -1
  118. data/lib/hexapdf/layout/image_box.rb +4 -1
  119. data/lib/hexapdf/layout/inline_box.rb +4 -1
  120. data/lib/hexapdf/layout/line.rb +4 -1
  121. data/lib/hexapdf/layout/numeric_refinements.rb +4 -1
  122. data/lib/hexapdf/layout/style.rb +4 -1
  123. data/lib/hexapdf/layout/text_box.rb +4 -1
  124. data/lib/hexapdf/layout/text_fragment.rb +4 -1
  125. data/lib/hexapdf/layout/text_layouter.rb +4 -1
  126. data/lib/hexapdf/layout/text_shaper.rb +4 -1
  127. data/lib/hexapdf/layout/width_from_polygon.rb +4 -1
  128. data/lib/hexapdf/name_tree_node.rb +4 -1
  129. data/lib/hexapdf/number_tree_node.rb +4 -1
  130. data/lib/hexapdf/object.rb +4 -1
  131. data/lib/hexapdf/parser.rb +4 -1
  132. data/lib/hexapdf/rectangle.rb +4 -1
  133. data/lib/hexapdf/reference.rb +4 -1
  134. data/lib/hexapdf/revision.rb +4 -1
  135. data/lib/hexapdf/revisions.rb +4 -1
  136. data/lib/hexapdf/serializer.rb +9 -2
  137. data/lib/hexapdf/stream.rb +4 -1
  138. data/lib/hexapdf/task.rb +4 -1
  139. data/lib/hexapdf/task/dereference.rb +4 -1
  140. data/lib/hexapdf/task/optimize.rb +4 -1
  141. data/lib/hexapdf/tokenizer.rb +4 -1
  142. data/lib/hexapdf/type.rb +4 -1
  143. data/lib/hexapdf/type/action.rb +4 -1
  144. data/lib/hexapdf/type/actions.rb +4 -1
  145. data/lib/hexapdf/type/actions/go_to.rb +4 -1
  146. data/lib/hexapdf/type/actions/go_to_r.rb +4 -1
  147. data/lib/hexapdf/type/actions/launch.rb +4 -1
  148. data/lib/hexapdf/type/actions/uri.rb +4 -1
  149. data/lib/hexapdf/type/annotation.rb +4 -1
  150. data/lib/hexapdf/type/annotations.rb +4 -1
  151. data/lib/hexapdf/type/annotations/link.rb +4 -1
  152. data/lib/hexapdf/type/annotations/markup_annotation.rb +4 -1
  153. data/lib/hexapdf/type/annotations/text.rb +4 -1
  154. data/lib/hexapdf/type/catalog.rb +4 -1
  155. data/lib/hexapdf/type/cid_font.rb +4 -1
  156. data/lib/hexapdf/type/embedded_file.rb +4 -1
  157. data/lib/hexapdf/type/file_specification.rb +4 -1
  158. data/lib/hexapdf/type/font.rb +4 -1
  159. data/lib/hexapdf/type/font_descriptor.rb +4 -1
  160. data/lib/hexapdf/type/font_simple.rb +4 -1
  161. data/lib/hexapdf/type/font_true_type.rb +4 -1
  162. data/lib/hexapdf/type/font_type0.rb +4 -1
  163. data/lib/hexapdf/type/font_type1.rb +4 -1
  164. data/lib/hexapdf/type/font_type3.rb +4 -1
  165. data/lib/hexapdf/type/form.rb +4 -1
  166. data/lib/hexapdf/type/graphics_state_parameter.rb +4 -1
  167. data/lib/hexapdf/type/image.rb +4 -1
  168. data/lib/hexapdf/type/info.rb +4 -1
  169. data/lib/hexapdf/type/names.rb +4 -1
  170. data/lib/hexapdf/type/object_stream.rb +4 -1
  171. data/lib/hexapdf/type/page.rb +4 -1
  172. data/lib/hexapdf/type/page_tree_node.rb +4 -1
  173. data/lib/hexapdf/type/resources.rb +4 -1
  174. data/lib/hexapdf/type/trailer.rb +4 -1
  175. data/lib/hexapdf/type/viewer_preferences.rb +4 -1
  176. data/lib/hexapdf/type/xref_stream.rb +4 -1
  177. data/lib/hexapdf/utils/bit_field.rb +4 -1
  178. data/lib/hexapdf/utils/bit_stream.rb +4 -1
  179. data/lib/hexapdf/utils/graphics_helpers.rb +4 -1
  180. data/lib/hexapdf/utils/lru_cache.rb +4 -1
  181. data/lib/hexapdf/utils/math_helpers.rb +4 -1
  182. data/lib/hexapdf/utils/object_hash.rb +4 -1
  183. data/lib/hexapdf/utils/pdf_doc_encoding.rb +4 -1
  184. data/lib/hexapdf/utils/sorted_tree_node.rb +4 -1
  185. data/lib/hexapdf/version.rb +5 -2
  186. data/lib/hexapdf/writer.rb +4 -1
  187. data/lib/hexapdf/xref_section.rb +4 -1
  188. data/test/hexapdf/font/cmap/test_writer.rb +9 -1
  189. data/test/hexapdf/test_serializer.rb +6 -0
  190. data/test/hexapdf/test_writer.rb +2 -2
  191. metadata +4 -2
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2017 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/layout/width_from_polygon'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
  require 'hexapdf/layout/box'
34
37
 
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/layout/box'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/error'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  module HexaPDF
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/error'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
  require 'hexapdf/layout/box'
34
37
  require 'hexapdf/layout/text_layouter'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/layout/style'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/error'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/layout/numeric_refinements'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2017 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  module HexaPDF
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/dictionary'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/dictionary'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/error'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/error'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/object'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/error'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/error'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/error'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'time'
@@ -294,10 +297,12 @@ module HexaPDF
294
297
  def serialize_hexapdf_stream(obj)
295
298
  if !obj.indirect?
296
299
  raise HexaPDF::Error, "Can't serialize PDF stream without object identifier"
297
- elsif obj != @object
300
+ elsif obj != @object || @in_object
298
301
  return serialize_hexapdf_reference(obj)
299
302
  end
300
303
 
304
+ @in_object = true
305
+
301
306
  fiber = if @encrypter
302
307
  encrypter.encrypt_stream(obj)
303
308
  else
@@ -323,6 +328,8 @@ module HexaPDF
323
328
  str << data
324
329
  str << "\nendstream"
325
330
  end
331
+ ensure
332
+ @in_object = false
326
333
  end
327
334
 
328
335
  # Invokes the correct serialization method for the object.
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  require 'hexapdf/error'
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  module HexaPDF
@@ -4,7 +4,7 @@
4
4
  # This file is part of HexaPDF.
5
5
  #
6
6
  # HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
7
- # Copyright (C) 2014-2018 Thomas Leitner
7
+ # Copyright (C) 2014-2019 Thomas Leitner
8
8
  #
9
9
  # HexaPDF is free software: you can redistribute it and/or modify it
10
10
  # under the terms of the GNU Affero General Public License version 3 as
@@ -29,6 +29,9 @@
29
29
  # In accordance with Section 7(b) of the GNU Affero General Public
30
30
  # License, a covered work must retain the producer line in every PDF that
31
31
  # is created or manipulated using HexaPDF.
32
+ #
33
+ # If the GNU Affero General Public License doesn't fit your need,
34
+ # commercial licenses are available at <https://gettalong.at/hexapdf/>.
32
35
  #++
33
36
 
34
37
  module HexaPDF