hexapdf 0.37.1 → 0.37.2

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 (253) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/LICENSE +1 -1
  4. data/lib/hexapdf/cli/batch.rb +1 -1
  5. data/lib/hexapdf/cli/command.rb +1 -1
  6. data/lib/hexapdf/cli/files.rb +1 -1
  7. data/lib/hexapdf/cli/fonts.rb +1 -1
  8. data/lib/hexapdf/cli/form.rb +1 -1
  9. data/lib/hexapdf/cli/image2pdf.rb +1 -1
  10. data/lib/hexapdf/cli/images.rb +1 -1
  11. data/lib/hexapdf/cli/info.rb +1 -1
  12. data/lib/hexapdf/cli/inspect.rb +1 -1
  13. data/lib/hexapdf/cli/merge.rb +1 -1
  14. data/lib/hexapdf/cli/modify.rb +1 -1
  15. data/lib/hexapdf/cli/optimize.rb +1 -1
  16. data/lib/hexapdf/cli/split.rb +1 -1
  17. data/lib/hexapdf/cli/watermark.rb +1 -1
  18. data/lib/hexapdf/cli.rb +1 -1
  19. data/lib/hexapdf/composer.rb +1 -1
  20. data/lib/hexapdf/configuration.rb +3 -4
  21. data/lib/hexapdf/content/canvas.rb +2 -2
  22. data/lib/hexapdf/content/canvas_composer.rb +1 -1
  23. data/lib/hexapdf/content/color_space.rb +1 -1
  24. data/lib/hexapdf/content/graphic_object/arc.rb +1 -1
  25. data/lib/hexapdf/content/graphic_object/endpoint_arc.rb +1 -1
  26. data/lib/hexapdf/content/graphic_object/geom2d.rb +1 -1
  27. data/lib/hexapdf/content/graphic_object/solid_arc.rb +1 -1
  28. data/lib/hexapdf/content/graphic_object.rb +1 -1
  29. data/lib/hexapdf/content/graphics_state.rb +1 -1
  30. data/lib/hexapdf/content/operator.rb +1 -1
  31. data/lib/hexapdf/content/parser.rb +1 -1
  32. data/lib/hexapdf/content/processor.rb +4 -4
  33. data/lib/hexapdf/content/transformation_matrix.rb +3 -3
  34. data/lib/hexapdf/content.rb +1 -1
  35. data/lib/hexapdf/data_dir.rb +1 -1
  36. data/lib/hexapdf/dictionary.rb +1 -1
  37. data/lib/hexapdf/dictionary_fields.rb +1 -1
  38. data/lib/hexapdf/digital_signature/cms_handler.rb +1 -2
  39. data/lib/hexapdf/digital_signature/handler.rb +1 -1
  40. data/lib/hexapdf/digital_signature/pkcs1_handler.rb +1 -1
  41. data/lib/hexapdf/digital_signature/signature.rb +2 -2
  42. data/lib/hexapdf/digital_signature/signatures.rb +1 -1
  43. data/lib/hexapdf/digital_signature/signing/default_handler.rb +1 -1
  44. data/lib/hexapdf/digital_signature/signing/signed_data_creator.rb +1 -1
  45. data/lib/hexapdf/digital_signature/signing/timestamp_handler.rb +1 -1
  46. data/lib/hexapdf/digital_signature/signing.rb +1 -1
  47. data/lib/hexapdf/digital_signature/verification_result.rb +1 -1
  48. data/lib/hexapdf/digital_signature.rb +1 -1
  49. data/lib/hexapdf/document/destinations.rb +1 -1
  50. data/lib/hexapdf/document/files.rb +1 -1
  51. data/lib/hexapdf/document/fonts.rb +1 -1
  52. data/lib/hexapdf/document/images.rb +1 -1
  53. data/lib/hexapdf/document/layout.rb +1 -1
  54. data/lib/hexapdf/document/metadata.rb +14 -13
  55. data/lib/hexapdf/document/pages.rb +1 -1
  56. data/lib/hexapdf/document.rb +1 -1
  57. data/lib/hexapdf/encryption/aes.rb +1 -1
  58. data/lib/hexapdf/encryption/arc4.rb +1 -1
  59. data/lib/hexapdf/encryption/fast_aes.rb +1 -1
  60. data/lib/hexapdf/encryption/fast_arc4.rb +1 -1
  61. data/lib/hexapdf/encryption/identity.rb +1 -1
  62. data/lib/hexapdf/encryption/ruby_aes.rb +1 -1
  63. data/lib/hexapdf/encryption/ruby_arc4.rb +1 -1
  64. data/lib/hexapdf/encryption/security_handler.rb +1 -1
  65. data/lib/hexapdf/encryption/standard_security_handler.rb +1 -1
  66. data/lib/hexapdf/encryption.rb +1 -1
  67. data/lib/hexapdf/error.rb +1 -1
  68. data/lib/hexapdf/filter/ascii85_decode.rb +1 -1
  69. data/lib/hexapdf/filter/ascii_hex_decode.rb +1 -1
  70. data/lib/hexapdf/filter/crypt.rb +1 -1
  71. data/lib/hexapdf/filter/encryption.rb +1 -1
  72. data/lib/hexapdf/filter/flate_decode.rb +1 -1
  73. data/lib/hexapdf/filter/lzw_decode.rb +1 -1
  74. data/lib/hexapdf/filter/pass_through.rb +1 -1
  75. data/lib/hexapdf/filter/predictor.rb +1 -1
  76. data/lib/hexapdf/filter/run_length_decode.rb +1 -1
  77. data/lib/hexapdf/filter.rb +1 -1
  78. data/lib/hexapdf/font/cmap/parser.rb +1 -1
  79. data/lib/hexapdf/font/cmap/writer.rb +1 -1
  80. data/lib/hexapdf/font/cmap.rb +1 -1
  81. data/lib/hexapdf/font/encoding/base.rb +1 -1
  82. data/lib/hexapdf/font/encoding/difference_encoding.rb +1 -1
  83. data/lib/hexapdf/font/encoding/glyph_list.rb +2 -2
  84. data/lib/hexapdf/font/encoding/mac_expert_encoding.rb +1 -1
  85. data/lib/hexapdf/font/encoding/mac_roman_encoding.rb +1 -1
  86. data/lib/hexapdf/font/encoding/standard_encoding.rb +1 -1
  87. data/lib/hexapdf/font/encoding/symbol_encoding.rb +1 -1
  88. data/lib/hexapdf/font/encoding/win_ansi_encoding.rb +1 -1
  89. data/lib/hexapdf/font/encoding/zapf_dingbats_encoding.rb +1 -1
  90. data/lib/hexapdf/font/encoding.rb +1 -1
  91. data/lib/hexapdf/font/invalid_glyph.rb +1 -1
  92. data/lib/hexapdf/font/true_type/builder.rb +2 -2
  93. data/lib/hexapdf/font/true_type/font.rb +1 -1
  94. data/lib/hexapdf/font/true_type/optimizer.rb +1 -1
  95. data/lib/hexapdf/font/true_type/subsetter.rb +1 -1
  96. data/lib/hexapdf/font/true_type/table/cmap.rb +1 -1
  97. data/lib/hexapdf/font/true_type/table/cmap_subtable.rb +1 -1
  98. data/lib/hexapdf/font/true_type/table/directory.rb +1 -1
  99. data/lib/hexapdf/font/true_type/table/glyf.rb +1 -1
  100. data/lib/hexapdf/font/true_type/table/head.rb +1 -1
  101. data/lib/hexapdf/font/true_type/table/hhea.rb +1 -1
  102. data/lib/hexapdf/font/true_type/table/hmtx.rb +1 -1
  103. data/lib/hexapdf/font/true_type/table/kern.rb +1 -1
  104. data/lib/hexapdf/font/true_type/table/loca.rb +1 -1
  105. data/lib/hexapdf/font/true_type/table/maxp.rb +1 -1
  106. data/lib/hexapdf/font/true_type/table/name.rb +1 -1
  107. data/lib/hexapdf/font/true_type/table/os2.rb +1 -1
  108. data/lib/hexapdf/font/true_type/table/post.rb +1 -1
  109. data/lib/hexapdf/font/true_type/table.rb +1 -1
  110. data/lib/hexapdf/font/true_type.rb +1 -1
  111. data/lib/hexapdf/font/true_type_wrapper.rb +1 -1
  112. data/lib/hexapdf/font/type1/afm_parser.rb +1 -1
  113. data/lib/hexapdf/font/type1/character_metrics.rb +1 -1
  114. data/lib/hexapdf/font/type1/font.rb +2 -2
  115. data/lib/hexapdf/font/type1/font_metrics.rb +1 -1
  116. data/lib/hexapdf/font/type1/pfb_parser.rb +1 -1
  117. data/lib/hexapdf/font/type1.rb +1 -1
  118. data/lib/hexapdf/font/type1_wrapper.rb +2 -2
  119. data/lib/hexapdf/font_loader/from_configuration.rb +1 -1
  120. data/lib/hexapdf/font_loader/from_file.rb +1 -1
  121. data/lib/hexapdf/font_loader/standard14.rb +1 -1
  122. data/lib/hexapdf/font_loader.rb +1 -1
  123. data/lib/hexapdf/image_loader/jpeg.rb +1 -1
  124. data/lib/hexapdf/image_loader/pdf.rb +1 -1
  125. data/lib/hexapdf/image_loader/png.rb +1 -1
  126. data/lib/hexapdf/image_loader.rb +1 -1
  127. data/lib/hexapdf/importer.rb +1 -1
  128. data/lib/hexapdf/layout/box.rb +4 -4
  129. data/lib/hexapdf/layout/box_fitter.rb +1 -1
  130. data/lib/hexapdf/layout/column_box.rb +1 -1
  131. data/lib/hexapdf/layout/container_box.rb +4 -4
  132. data/lib/hexapdf/layout/frame.rb +1 -1
  133. data/lib/hexapdf/layout/image_box.rb +1 -1
  134. data/lib/hexapdf/layout/inline_box.rb +1 -1
  135. data/lib/hexapdf/layout/line.rb +1 -1
  136. data/lib/hexapdf/layout/list_box.rb +4 -6
  137. data/lib/hexapdf/layout/numeric_refinements.rb +1 -1
  138. data/lib/hexapdf/layout/page_style.rb +1 -1
  139. data/lib/hexapdf/layout/style.rb +1 -1
  140. data/lib/hexapdf/layout/table_box.rb +4 -4
  141. data/lib/hexapdf/layout/text_box.rb +1 -1
  142. data/lib/hexapdf/layout/text_fragment.rb +1 -1
  143. data/lib/hexapdf/layout/text_layouter.rb +1 -1
  144. data/lib/hexapdf/layout/text_shaper.rb +1 -1
  145. data/lib/hexapdf/layout/width_from_polygon.rb +1 -1
  146. data/lib/hexapdf/layout.rb +1 -1
  147. data/lib/hexapdf/name_tree_node.rb +1 -1
  148. data/lib/hexapdf/number_tree_node.rb +1 -1
  149. data/lib/hexapdf/object.rb +3 -3
  150. data/lib/hexapdf/parser.rb +1 -1
  151. data/lib/hexapdf/pdf_array.rb +1 -1
  152. data/lib/hexapdf/rectangle.rb +1 -1
  153. data/lib/hexapdf/reference.rb +1 -1
  154. data/lib/hexapdf/revision.rb +1 -1
  155. data/lib/hexapdf/revisions.rb +1 -1
  156. data/lib/hexapdf/serializer.rb +1 -1
  157. data/lib/hexapdf/stream.rb +1 -1
  158. data/lib/hexapdf/task/dereference.rb +1 -1
  159. data/lib/hexapdf/task/optimize.rb +1 -1
  160. data/lib/hexapdf/task.rb +1 -1
  161. data/lib/hexapdf/test_utils.rb +1 -1
  162. data/lib/hexapdf/tokenizer.rb +1 -1
  163. data/lib/hexapdf/type/acro_form/appearance_generator.rb +5 -5
  164. data/lib/hexapdf/type/acro_form/button_field.rb +1 -1
  165. data/lib/hexapdf/type/acro_form/choice_field.rb +12 -2
  166. data/lib/hexapdf/type/acro_form/field.rb +1 -1
  167. data/lib/hexapdf/type/acro_form/form.rb +2 -1
  168. data/lib/hexapdf/type/acro_form/signature_field.rb +1 -1
  169. data/lib/hexapdf/type/acro_form/text_field.rb +1 -1
  170. data/lib/hexapdf/type/acro_form/variable_text_field.rb +8 -5
  171. data/lib/hexapdf/type/acro_form.rb +1 -1
  172. data/lib/hexapdf/type/action.rb +1 -1
  173. data/lib/hexapdf/type/actions/go_to.rb +1 -1
  174. data/lib/hexapdf/type/actions/go_to_r.rb +1 -1
  175. data/lib/hexapdf/type/actions/launch.rb +1 -1
  176. data/lib/hexapdf/type/actions/set_ocg_state.rb +1 -1
  177. data/lib/hexapdf/type/actions/uri.rb +1 -1
  178. data/lib/hexapdf/type/actions.rb +1 -1
  179. data/lib/hexapdf/type/annotation.rb +2 -2
  180. data/lib/hexapdf/type/annotations/link.rb +1 -1
  181. data/lib/hexapdf/type/annotations/markup_annotation.rb +1 -1
  182. data/lib/hexapdf/type/annotations/text.rb +1 -1
  183. data/lib/hexapdf/type/annotations/widget.rb +1 -1
  184. data/lib/hexapdf/type/annotations.rb +1 -1
  185. data/lib/hexapdf/type/catalog.rb +1 -1
  186. data/lib/hexapdf/type/cid_font.rb +1 -1
  187. data/lib/hexapdf/type/embedded_file.rb +1 -1
  188. data/lib/hexapdf/type/file_specification.rb +1 -1
  189. data/lib/hexapdf/type/font.rb +1 -1
  190. data/lib/hexapdf/type/font_descriptor.rb +1 -1
  191. data/lib/hexapdf/type/font_simple.rb +1 -1
  192. data/lib/hexapdf/type/font_true_type.rb +1 -1
  193. data/lib/hexapdf/type/font_type0.rb +2 -2
  194. data/lib/hexapdf/type/font_type1.rb +1 -1
  195. data/lib/hexapdf/type/font_type3.rb +1 -1
  196. data/lib/hexapdf/type/form.rb +16 -16
  197. data/lib/hexapdf/type/graphics_state_parameter.rb +1 -1
  198. data/lib/hexapdf/type/icon_fit.rb +1 -1
  199. data/lib/hexapdf/type/image.rb +1 -1
  200. data/lib/hexapdf/type/info.rb +1 -1
  201. data/lib/hexapdf/type/mark_information.rb +1 -1
  202. data/lib/hexapdf/type/metadata.rb +1 -1
  203. data/lib/hexapdf/type/names.rb +1 -1
  204. data/lib/hexapdf/type/object_stream.rb +1 -1
  205. data/lib/hexapdf/type/optional_content_configuration.rb +5 -5
  206. data/lib/hexapdf/type/optional_content_group.rb +17 -1
  207. data/lib/hexapdf/type/optional_content_membership.rb +1 -1
  208. data/lib/hexapdf/type/optional_content_properties.rb +1 -2
  209. data/lib/hexapdf/type/outline.rb +1 -1
  210. data/lib/hexapdf/type/outline_item.rb +1 -1
  211. data/lib/hexapdf/type/page.rb +30 -15
  212. data/lib/hexapdf/type/page_label.rb +1 -1
  213. data/lib/hexapdf/type/page_tree_node.rb +1 -1
  214. data/lib/hexapdf/type/resources.rb +1 -1
  215. data/lib/hexapdf/type/trailer.rb +1 -1
  216. data/lib/hexapdf/type/viewer_preferences.rb +1 -1
  217. data/lib/hexapdf/type/xref_stream.rb +1 -1
  218. data/lib/hexapdf/type.rb +1 -1
  219. data/lib/hexapdf/utils/bit_field.rb +1 -1
  220. data/lib/hexapdf/utils/bit_stream.rb +1 -1
  221. data/lib/hexapdf/utils/graphics_helpers.rb +1 -1
  222. data/lib/hexapdf/utils/lru_cache.rb +1 -1
  223. data/lib/hexapdf/utils/math_helpers.rb +1 -1
  224. data/lib/hexapdf/utils/object_hash.rb +1 -1
  225. data/lib/hexapdf/utils/pdf_doc_encoding.rb +1 -1
  226. data/lib/hexapdf/utils/sorted_tree_node.rb +1 -1
  227. data/lib/hexapdf/utils.rb +3 -3
  228. data/lib/hexapdf/version.rb +2 -2
  229. data/lib/hexapdf/writer.rb +1 -1
  230. data/lib/hexapdf/xref_section.rb +1 -1
  231. data/lib/hexapdf.rb +1 -1
  232. data/test/hexapdf/content/test_canvas.rb +1 -1
  233. data/test/hexapdf/digital_signature/common.rb +1 -1
  234. data/test/hexapdf/document/test_layout.rb +2 -2
  235. data/test/hexapdf/document/test_metadata.rb +28 -28
  236. data/test/hexapdf/encryption/test_standard_security_handler.rb +9 -9
  237. data/test/hexapdf/font/true_type/table/test_cmap_subtable.rb +2 -2
  238. data/test/hexapdf/font/true_type/table/test_name.rb +5 -5
  239. data/test/hexapdf/layout/test_box.rb +2 -2
  240. data/test/hexapdf/layout/test_column_box.rb +5 -5
  241. data/test/hexapdf/layout/test_frame.rb +4 -5
  242. data/test/hexapdf/layout/test_text_fragment.rb +1 -1
  243. data/test/hexapdf/layout/test_text_shaper.rb +2 -2
  244. data/test/hexapdf/test_composer.rb +1 -1
  245. data/test/hexapdf/test_utils.rb +1 -1
  246. data/test/hexapdf/test_writer.rb +2 -2
  247. data/test/hexapdf/type/acro_form/test_choice_field.rb +7 -0
  248. data/test/hexapdf/type/acro_form/test_form.rb +6 -0
  249. data/test/hexapdf/type/acro_form/test_variable_text_field.rb +12 -0
  250. data/test/hexapdf/type/test_annotation.rb +1 -1
  251. data/test/hexapdf/type/test_optional_content_group.rb +2 -2
  252. data/test/hexapdf/type/test_page.rb +67 -38
  253. metadata +2 -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -92,7 +92,7 @@ module HexaPDF
92
92
  if @metrics.encoding_scheme == 'AdobeStandardEncoding'
93
93
  Encoding.for_name(:StandardEncoding)
94
94
  elsif font_name == 'ZapfDingbats' || font_name == 'Symbol'
95
- Encoding.for_name("#{font_name}Encoding".to_sym)
95
+ Encoding.for_name(:"#{font_name}Encoding")
96
96
  else
97
97
  encoding = Encoding::Base.new
98
98
  @metrics.character_metrics.each do |key, char_metric|
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -220,7 +220,7 @@ module HexaPDF
220
220
  (name == :'.notdef' || !@wrapped_font.metrics.character_metrics.key?(name))
221
221
  name = @encoding.name(codepoint)
222
222
  end
223
- name = +"u" << codepoint.to_s(16).rjust(6, '0') if name == :'.notdef'
223
+ name = +"u" << codepoint.to_s(16).rjust(6, '0').upcase if name == :'.notdef'
224
224
  glyph(name)
225
225
  end
226
226
  end
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -234,8 +234,8 @@ module HexaPDF
234
234
  def fit(available_width, available_height, frame)
235
235
  @width = (@initial_width > 0 ? @initial_width : available_width)
236
236
  @height = (@initial_height > 0 ? @initial_height : available_height)
237
- @fit_successful = (float_compare(@width, available_width) <= 0 &&
238
- float_compare(@height, available_height) <= 0)
237
+ @fit_successful = float_compare(@width, available_width) <= 0 &&
238
+ float_compare(@height, available_height) <= 0
239
239
  return unless @fit_successful
240
240
 
241
241
  @fit_successful = fit_content(available_width, available_height, frame)
@@ -384,7 +384,7 @@ module HexaPDF
384
384
  # provide the box specific behaviour.
385
385
  #
386
386
  # See #fit for details.
387
- def fit_content(available_width, available_height, frame)
387
+ def fit_content(_available_width, _available_height, _frame)
388
388
  true
389
389
  end
390
390
 
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -130,7 +130,7 @@ module HexaPDF
130
130
  private
131
131
 
132
132
  # Fits the children into the container.
133
- def fit_content(available_width, available_height, frame)
133
+ def fit_content(_available_width, _available_height, frame)
134
134
  my_frame = Frame.new(frame.x + reserved_width_left, frame.y - @height + reserved_height_bottom,
135
135
  content_width, content_height, context: frame.context)
136
136
  @box_fitter = BoxFitter.new([my_frame])
@@ -138,8 +138,8 @@ module HexaPDF
138
138
 
139
139
  if @box_fitter.fit_successful?
140
140
  update_content_width do
141
- result = @box_fitter.fit_results.max_by {|result| result.mask.x + result.mask.width }
142
- children.size > 0 ? result.mask.x + result.mask.width - my_frame.left : 0
141
+ result = @box_fitter.fit_results.max_by {|r| r.mask.x + r.mask.width }
142
+ children.empty? ? 0 : result.mask.x + result.mask.width - my_frame.left
143
143
  end
144
144
  update_content_height { @box_fitter.content_heights.max }
145
145
  true
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -240,7 +240,7 @@ module HexaPDF
240
240
  end
241
241
 
242
242
  box_fitter = BoxFitter.new([item_frame])
243
- Array(child).each {|box| box_fitter.fit(box) }
243
+ Array(child).each {|ibox| box_fitter.fit(ibox) }
244
244
  item_result.box_fitter = box_fitter
245
245
  item_result.height = [item_result.height.to_i, box_fitter.content_heights[0]].max
246
246
  @results << item_result
@@ -251,9 +251,7 @@ module HexaPDF
251
251
  break if !box_fitter.fit_successful? || height <= 0
252
252
  end
253
253
 
254
- @height = @results.sum {|item_result| item_result.height } +
255
- (@results.count - 1) * item_spacing +
256
- reserved_height
254
+ @height = @results.sum(&:height) + (@results.count - 1) * item_spacing + reserved_height
257
255
 
258
256
  @draw_pos_x = frame.x + reserved_width_left
259
257
  @draw_pos_y = frame.y - @height + reserved_height_bottom
@@ -358,7 +356,7 @@ module HexaPDF
358
356
 
359
357
  # Draws the list items onto the canvas at position [x, y].
360
358
  def draw_content(canvas, x, y)
361
- translate = (style.position != :flow && (x != @draw_pos_x || y != @draw_pos_y))
359
+ translate = style.position != :flow && (x != @draw_pos_x || y != @draw_pos_y)
362
360
 
363
361
  if translate
364
362
  canvas.save_graphics_state
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -257,9 +257,9 @@ module HexaPDF
257
257
  # difference in the y direction between fitting and drawing
258
258
  y -= (@fit_results[0].available_height - content_height)
259
259
  @fit_results.each do |fit_result|
260
- fit_result.x += x
261
- fit_result.y += y
262
- fit_result.draw(canvas)
260
+ #fit_result.x += x
261
+ #fit_result.y += y
262
+ fit_result.draw(canvas, dx: x, dy: y)
263
263
  end
264
264
  end
265
265
 
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -305,7 +305,7 @@ module HexaPDF
305
305
  result
306
306
  rescue HexaPDF::Error
307
307
  raise
308
- rescue
308
+ rescue StandardError
309
309
  yield("Error: Unexpected value encountered", false, self) if block_given?
310
310
  false
311
311
  end
@@ -423,7 +423,7 @@ module HexaPDF
423
423
  # yield("/OtherKey needs to contain an odd number of elements")
424
424
  # end
425
425
  # end
426
- def perform_validation(&block)
426
+ def perform_validation
427
427
  # Validate that the object is indirect if #must_be_indirect? is +true+.
428
428
  if must_be_indirect? && !indirect?
429
429
  yield("Object must be an indirect object", true)
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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
@@ -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-2023 Thomas Leitner
7
+ # Copyright (C) 2014-2024 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