pdfrb 0.2.1 → 0.6.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 (406) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/CHANGELOG.md +24 -0
  4. data/Gemfile +1 -0
  5. data/PROPOSAL.canvas-clip.md +92 -0
  6. data/PROPOSAL.canvas-draw-image-matrix.md +87 -0
  7. data/PROPOSAL.canvas-rich-text.md +103 -0
  8. data/PROPOSAL.canvas-text-lines.md +77 -0
  9. data/PROPOSAL.canvas-transparency.md +106 -0
  10. data/PROPOSAL.external-font-metrics.md +129 -0
  11. data/PROPOSAL.font-embedding-fontfile2.md +88 -0
  12. data/PROPOSAL.font-resolver-ttc.md +105 -0
  13. data/PROPOSAL.font-resolver.md +96 -0
  14. data/PROPOSAL.font-subsetting.md +98 -0
  15. data/PROPOSAL.gradient-shadings.md +110 -0
  16. data/PROPOSAL.page-mediabox-setter.md +66 -0
  17. data/PROPOSAL.per-glyph-width.md +91 -0
  18. data/PROPOSAL.stringio-require.md +53 -0
  19. data/PROPOSAL.struct-tree-root.md +102 -0
  20. data/PROPOSAL.text-measurement.md +93 -0
  21. data/PROPOSAL.ttf-table-parsing-fix.md +112 -0
  22. data/RELEASE.md +48 -0
  23. data/lib/pdfrb/action/base.rb +21 -0
  24. data/lib/pdfrb/action/types.rb +178 -0
  25. data/lib/pdfrb/action.rb +55 -0
  26. data/lib/pdfrb/annotation/base.rb +79 -0
  27. data/lib/pdfrb/annotation/types.rb +222 -0
  28. data/lib/pdfrb/annotation.rb +78 -0
  29. data/lib/pdfrb/appearance/generator.rb +216 -0
  30. data/lib/pdfrb/appearance.rb +11 -0
  31. data/lib/pdfrb/arlington/object_definition.rb +2 -2
  32. data/lib/pdfrb/arlington/predicate/evaluator.rb +1 -1
  33. data/lib/pdfrb/arlington/predicate/functions.rb +25 -9
  34. data/lib/pdfrb/arlington/predicate.rb +1 -5
  35. data/lib/pdfrb/cli/batch.rb +18 -0
  36. data/lib/pdfrb/cli/debug_info.rb +18 -0
  37. data/lib/pdfrb/cli/files.rb +16 -0
  38. data/lib/pdfrb/cli/fonts.rb +16 -0
  39. data/lib/pdfrb/cli/form.rb +18 -0
  40. data/lib/pdfrb/cli/image2pdf.rb +18 -0
  41. data/lib/pdfrb/cli/images.rb +34 -0
  42. data/lib/pdfrb/cli/info.rb +20 -0
  43. data/lib/pdfrb/cli/inspect.rb +18 -0
  44. data/lib/pdfrb/cli/merge.rb +18 -0
  45. data/lib/pdfrb/cli/modify.rb +18 -0
  46. data/lib/pdfrb/cli/optimize.rb +18 -0
  47. data/lib/pdfrb/cli/split.rb +21 -0
  48. data/lib/pdfrb/cli/watermark.rb +18 -0
  49. data/lib/pdfrb/cli.rb +312 -7
  50. data/lib/pdfrb/color/color_space.rb +259 -0
  51. data/lib/pdfrb/color/icc_profile.rb +90 -0
  52. data/lib/pdfrb/color.rb +12 -0
  53. data/lib/pdfrb/compare/comparator.rb +244 -0
  54. data/lib/pdfrb/compare/report.rb +78 -0
  55. data/lib/pdfrb/compare.rb +42 -0
  56. data/lib/pdfrb/composer.rb +161 -0
  57. data/lib/pdfrb/conformance/pdf_a.rb +317 -56
  58. data/lib/pdfrb/conformance/pdf_ua.rb +186 -29
  59. data/lib/pdfrb/conformance/pdf_x.rb +247 -0
  60. data/lib/pdfrb/conformance/rule.rb +78 -0
  61. data/lib/pdfrb/conformance/structure_elements.rb +174 -0
  62. data/lib/pdfrb/conformance/verapdf_bridge.rb +92 -0
  63. data/lib/pdfrb/conformance.rb +7 -3
  64. data/lib/pdfrb/content/canvas.rb +217 -72
  65. data/lib/pdfrb/content/color_space.rb +157 -0
  66. data/lib/pdfrb/content/hidden_text_detector.rb +167 -0
  67. data/lib/pdfrb/content/operator.rb +21 -1
  68. data/lib/pdfrb/content/operators/clipping.rb +36 -0
  69. data/lib/pdfrb/content/operators/graphics_state_params.rb +15 -0
  70. data/lib/pdfrb/content/operators.rb +21 -0
  71. data/lib/pdfrb/content/shading/base.rb +139 -0
  72. data/lib/pdfrb/content/shading.rb +17 -0
  73. data/lib/pdfrb/content/smart_text_extractor.rb +85 -0
  74. data/lib/pdfrb/content/tiling_pattern.rb +78 -0
  75. data/lib/pdfrb/content/transformation_matrix.rb +61 -0
  76. data/lib/pdfrb/content.rb +7 -26
  77. data/lib/pdfrb/destination/fit.rb +185 -0
  78. data/lib/pdfrb/destination.rb +13 -0
  79. data/lib/pdfrb/digital_signature/cms_handler.rb +22 -0
  80. data/lib/pdfrb/digital_signature/signing.rb +107 -11
  81. data/lib/pdfrb/digital_signature/timestamp_handler.rb +45 -0
  82. data/lib/pdfrb/digital_signature/verification.rb +88 -9
  83. data/lib/pdfrb/digital_signature/verification_result.rb +14 -0
  84. data/lib/pdfrb/digital_signature.rb +26 -2
  85. data/lib/pdfrb/document/annotations.rb +120 -3
  86. data/lib/pdfrb/document/associated_files.rb +104 -0
  87. data/lib/pdfrb/document/colors.rb +95 -0
  88. data/lib/pdfrb/document/destinations.rb +127 -5
  89. data/lib/pdfrb/document/display.rb +84 -0
  90. data/lib/pdfrb/document/fonts.rb +417 -45
  91. data/lib/pdfrb/document/form.rb +338 -0
  92. data/lib/pdfrb/document/form_xobject.rb +68 -0
  93. data/lib/pdfrb/document/graphics_state.rb +91 -0
  94. data/lib/pdfrb/document/images.rb +4 -4
  95. data/lib/pdfrb/document/info.rb +102 -0
  96. data/lib/pdfrb/document/layers.rb +62 -0
  97. data/lib/pdfrb/document/metadata.rb +12 -5
  98. data/lib/pdfrb/document/output_intents.rb +91 -0
  99. data/lib/pdfrb/document/page_labels.rb +80 -0
  100. data/lib/pdfrb/document/pages.rb +68 -19
  101. data/lib/pdfrb/document/portfolio.rb +119 -0
  102. data/lib/pdfrb/document/shadings.rb +159 -0
  103. data/lib/pdfrb/document/stamps.rb +68 -0
  104. data/lib/pdfrb/document/structure.rb +242 -0
  105. data/lib/pdfrb/document.rb +73 -4
  106. data/lib/pdfrb/encryption/identity.rb +13 -0
  107. data/lib/pdfrb/encryption/password_verification.rb +53 -8
  108. data/lib/pdfrb/encryption/security_handler.rb +8 -5
  109. data/lib/pdfrb/encryption/standard_security_handler.rb +154 -81
  110. data/lib/pdfrb/encryption.rb +17 -0
  111. data/lib/pdfrb/error.rb +2 -2
  112. data/lib/pdfrb/filter/brotli_decode.rb +32 -0
  113. data/lib/pdfrb/filter/ccitt_fax_decode.rb +12 -0
  114. data/lib/pdfrb/filter/crypt.rb +2 -2
  115. data/lib/pdfrb/filter/dct_decode.rb +18 -0
  116. data/lib/pdfrb/filter/flate_decode.rb +4 -18
  117. data/lib/pdfrb/filter/jbig2_decode.rb +12 -0
  118. data/lib/pdfrb/filter/jpx_decode.rb +18 -0
  119. data/lib/pdfrb/filter/lzw_decode.rb +3 -2
  120. data/lib/pdfrb/filter/png_predictor.rb +94 -0
  121. data/lib/pdfrb/filter.rb +26 -13
  122. data/lib/pdfrb/font/afm_parser.rb +50 -26
  123. data/lib/pdfrb/font/cmap/writer.rb +9 -0
  124. data/lib/pdfrb/font/encoding/win_ansi_encoding.rb +17 -0
  125. data/lib/pdfrb/font/encoding.rb +32 -3
  126. data/lib/pdfrb/font/metrics_helper.rb +121 -0
  127. data/lib/pdfrb/font/true_type/file.rb +10 -1
  128. data/lib/pdfrb/font/true_type/glyf.rb +82 -0
  129. data/lib/pdfrb/font/true_type/kern.rb +58 -0
  130. data/lib/pdfrb/font/true_type/loca.rb +42 -0
  131. data/lib/pdfrb/font/true_type/maxp.rb +44 -0
  132. data/lib/pdfrb/font/true_type/name.rb +53 -0
  133. data/lib/pdfrb/font/true_type/post.rb +93 -0
  134. data/lib/pdfrb/font/true_type/subsetter.rb +3 -5
  135. data/lib/pdfrb/font/true_type/wrapper.rb +102 -0
  136. data/lib/pdfrb/font/true_type.rb +7 -0
  137. data/lib/pdfrb/font.rb +2 -0
  138. data/lib/pdfrb/font_loader/from_configuration.rb +19 -0
  139. data/lib/pdfrb/font_loader/from_file.rb +20 -0
  140. data/lib/pdfrb/font_loader/standard14.rb +20 -0
  141. data/lib/pdfrb/font_loader/variant_from_name.rb +36 -0
  142. data/lib/pdfrb/font_loader.rb +4 -0
  143. data/lib/pdfrb/font_resolver.rb +138 -0
  144. data/lib/pdfrb/image/audit.rb +94 -0
  145. data/lib/pdfrb/image/downsampler.rb +124 -0
  146. data/lib/pdfrb/image.rb +13 -0
  147. data/lib/pdfrb/image_loader/jpeg.rb +39 -58
  148. data/lib/pdfrb/image_loader/png.rb +31 -257
  149. data/lib/pdfrb/layout/bidi.rb +198 -0
  150. data/lib/pdfrb/layout/box.rb +49 -0
  151. data/lib/pdfrb/layout/box_fitter.rb +54 -0
  152. data/lib/pdfrb/layout/column_box.rb +71 -0
  153. data/lib/pdfrb/layout/container_box.rb +45 -0
  154. data/lib/pdfrb/layout/frame.rb +67 -0
  155. data/lib/pdfrb/layout/image_box.rb +44 -0
  156. data/lib/pdfrb/layout/inline_box.rb +25 -0
  157. data/lib/pdfrb/layout/line.rb +55 -0
  158. data/lib/pdfrb/layout/list_box.rb +87 -0
  159. data/lib/pdfrb/layout/numeric_refinements.rb +43 -0
  160. data/lib/pdfrb/layout/page_style.rb +65 -0
  161. data/lib/pdfrb/layout/style.rb +62 -0
  162. data/lib/pdfrb/layout/table_box.rb +66 -0
  163. data/lib/pdfrb/layout/text_box.rb +38 -0
  164. data/lib/pdfrb/layout/text_fragment.rb +45 -0
  165. data/lib/pdfrb/layout/text_layouter.rb +123 -0
  166. data/lib/pdfrb/layout.rb +28 -0
  167. data/lib/pdfrb/linearization/hint_stream.rb +93 -0
  168. data/lib/pdfrb/linearization/writer.rb +259 -0
  169. data/lib/pdfrb/linearization.rb +21 -0
  170. data/lib/pdfrb/model/cos/dictionary.rb +12 -0
  171. data/lib/pdfrb/model/pdf_array.rb +2 -2
  172. data/lib/pdfrb/model/type/action.rb +42 -0
  173. data/lib/pdfrb/model/type/action_go_to_3d_view.rb +14 -0
  174. data/lib/pdfrb/model/type/action_go_to_dp.rb +16 -0
  175. data/lib/pdfrb/model/type/action_go_to_r.rb +26 -0
  176. data/lib/pdfrb/model/type/action_goto.rb +34 -0
  177. data/lib/pdfrb/model/type/action_hide.rb +26 -0
  178. data/lib/pdfrb/model/type/action_import_data.rb +18 -0
  179. data/lib/pdfrb/model/type/action_java_script.rb +18 -0
  180. data/lib/pdfrb/model/type/action_launch.rb +22 -0
  181. data/lib/pdfrb/model/type/action_movie.rb +22 -0
  182. data/lib/pdfrb/model/type/action_named.rb +23 -0
  183. data/lib/pdfrb/model/type/action_nop.rb +12 -0
  184. data/lib/pdfrb/model/type/action_rendition.rb +28 -0
  185. data/lib/pdfrb/model/type/action_reset_form.rb +22 -0
  186. data/lib/pdfrb/model/type/action_rich_media_execute.rb +17 -0
  187. data/lib/pdfrb/model/type/action_set_ocg_state.rb +32 -0
  188. data/lib/pdfrb/model/type/action_set_state.rb +14 -0
  189. data/lib/pdfrb/model/type/action_sound_action.rb +23 -0
  190. data/lib/pdfrb/model/type/action_submit_form.rb +64 -0
  191. data/lib/pdfrb/model/type/action_thread.rb +23 -0
  192. data/lib/pdfrb/model/type/action_trans.rb +30 -0
  193. data/lib/pdfrb/model/type/action_uri.rb +30 -0
  194. data/lib/pdfrb/model/type/af_embedded_file.rb +11 -0
  195. data/lib/pdfrb/model/type/af_file_specification.rb +34 -0
  196. data/lib/pdfrb/model/type/annotation.rb +49 -10
  197. data/lib/pdfrb/model/type/appearance.rb +41 -0
  198. data/lib/pdfrb/model/type/appearance_characteristics.rb +36 -0
  199. data/lib/pdfrb/model/type/appearance_generator.rb +22 -0
  200. data/lib/pdfrb/model/type/appearance_trap_net.rb +84 -0
  201. data/lib/pdfrb/model/type/border_effect.rb +25 -0
  202. data/lib/pdfrb/model/type/border_styling.rb +38 -0
  203. data/lib/pdfrb/model/type/box_color_info.rb +21 -0
  204. data/lib/pdfrb/model/type/box_style.rb +19 -0
  205. data/lib/pdfrb/model/type/button.rb +17 -0
  206. data/lib/pdfrb/model/type/cal_gray.rb +17 -0
  207. data/lib/pdfrb/model/type/cal_rgb.rb +22 -0
  208. data/lib/pdfrb/model/type/caret_annotation.rb +21 -0
  209. data/lib/pdfrb/model/type/catalog.rb +99 -16
  210. data/lib/pdfrb/model/type/choice.rb +21 -0
  211. data/lib/pdfrb/model/type/cid_font.rb +52 -1
  212. data/lib/pdfrb/model/type/cid_font_descriptor_metrics.rb +28 -0
  213. data/lib/pdfrb/model/type/cid_system_info.rb +28 -0
  214. data/lib/pdfrb/model/type/circle_annotation.rb +20 -0
  215. data/lib/pdfrb/model/type/collection.rb +27 -0
  216. data/lib/pdfrb/model/type/collection_field.rb +24 -0
  217. data/lib/pdfrb/model/type/collection_item.rb +19 -0
  218. data/lib/pdfrb/model/type/collection_schema.rb +25 -0
  219. data/lib/pdfrb/model/type/collection_sort.rb +13 -0
  220. data/lib/pdfrb/model/type/crypt_filter.rb +58 -0
  221. data/lib/pdfrb/model/type/device_n.rb +37 -0
  222. data/lib/pdfrb/model/type/device_n_mixing_hints.rb +17 -0
  223. data/lib/pdfrb/model/type/device_n_process.rb +13 -0
  224. data/lib/pdfrb/model/type/doc_mdp_transform_parameters.rb +21 -0
  225. data/lib/pdfrb/model/type/document_security_store.rb +55 -0
  226. data/lib/pdfrb/model/type/embedded_file.rb +19 -0
  227. data/lib/pdfrb/model/type/embedded_file_parameter.rb +48 -0
  228. data/lib/pdfrb/model/type/encryption_public_key.rb +38 -0
  229. data/lib/pdfrb/model/type/encryption_standard.rb +68 -0
  230. data/lib/pdfrb/model/type/field_mdp_transform_parameters.rb +26 -0
  231. data/lib/pdfrb/model/type/file_attachment_annotation.rb +29 -0
  232. data/lib/pdfrb/model/type/file_spec_ef.rb +22 -0
  233. data/lib/pdfrb/model/type/file_spec_rf.rb +21 -0
  234. data/lib/pdfrb/model/type/file_specification.rb +43 -0
  235. data/lib/pdfrb/model/type/file_trailer.rb +54 -0
  236. data/lib/pdfrb/model/type/font.rb +73 -2
  237. data/lib/pdfrb/model/type/font_cid_type0.rb +17 -0
  238. data/lib/pdfrb/model/type/font_cid_type2.rb +17 -0
  239. data/lib/pdfrb/model/type/font_descriptor.rb +47 -0
  240. data/lib/pdfrb/model/type/font_descriptor_cid_type0.rb +15 -0
  241. data/lib/pdfrb/model/type/font_descriptor_cid_type2.rb +15 -0
  242. data/lib/pdfrb/model/type/font_encoding.rb +47 -0
  243. data/lib/pdfrb/model/type/font_file.rb +28 -0
  244. data/lib/pdfrb/model/type/font_file2.rb +32 -0
  245. data/lib/pdfrb/model/type/font_file3.rb +23 -0
  246. data/lib/pdfrb/model/type/font_multiple_master.rb +60 -0
  247. data/lib/pdfrb/model/type/font_true_type.rb +1 -1
  248. data/lib/pdfrb/model/type/font_type0.rb +1 -1
  249. data/lib/pdfrb/model/type/font_type1.rb +1 -1
  250. data/lib/pdfrb/model/type/font_type3.rb +1 -1
  251. data/lib/pdfrb/model/type/form_field.rb +73 -0
  252. data/lib/pdfrb/model/type/free_text_annotation.rb +37 -0
  253. data/lib/pdfrb/model/type/function.rb +42 -0
  254. data/lib/pdfrb/model/type/function_exponential.rb +31 -0
  255. data/lib/pdfrb/model/type/function_postscript.rb +25 -0
  256. data/lib/pdfrb/model/type/function_sampled.rb +55 -0
  257. data/lib/pdfrb/model/type/function_stitching.rb +33 -0
  258. data/lib/pdfrb/model/type/generic_appearance.rb +40 -0
  259. data/lib/pdfrb/model/type/graphics_state_parameter.rb +69 -0
  260. data/lib/pdfrb/model/type/halftone.rb +21 -0
  261. data/lib/pdfrb/model/type/halftone_type1.rb +17 -0
  262. data/lib/pdfrb/model/type/halftone_type10.rb +16 -0
  263. data/lib/pdfrb/model/type/halftone_type16.rb +11 -0
  264. data/lib/pdfrb/model/type/halftone_type5.rb +24 -0
  265. data/lib/pdfrb/model/type/halftone_type6.rb +16 -0
  266. data/lib/pdfrb/model/type/highlight_annotation.rb +11 -0
  267. data/lib/pdfrb/model/type/icc_based_color_space.rb +24 -0
  268. data/lib/pdfrb/model/type/icon_fit.rb +31 -0
  269. data/lib/pdfrb/model/type/indexed.rb +32 -0
  270. data/lib/pdfrb/model/type/info.rb +44 -0
  271. data/lib/pdfrb/model/type/ink_annotation.rb +29 -0
  272. data/lib/pdfrb/model/type/interactive_form.rb +36 -0
  273. data/lib/pdfrb/model/type/interior_color.rb +12 -0
  274. data/lib/pdfrb/model/type/jbig2_globals.rb +15 -0
  275. data/lib/pdfrb/model/type/lab.rb +27 -0
  276. data/lib/pdfrb/model/type/line_annotation.rb +44 -0
  277. data/lib/pdfrb/model/type/line_ending_styling.rb +39 -0
  278. data/lib/pdfrb/model/type/link_annotation.rb +41 -0
  279. data/lib/pdfrb/model/type/link_appearance.rb +9 -0
  280. data/lib/pdfrb/model/type/mark_information.rb +23 -0
  281. data/lib/pdfrb/model/type/marked_content_reference.rb +24 -0
  282. data/lib/pdfrb/model/type/markup_annotation.rb +36 -0
  283. data/lib/pdfrb/model/type/mdp_dict.rb +28 -0
  284. data/lib/pdfrb/model/type/measure.rb +39 -0
  285. data/lib/pdfrb/model/type/media_clip.rb +28 -0
  286. data/lib/pdfrb/model/type/media_offset.rb +106 -0
  287. data/lib/pdfrb/model/type/metadata.rb +27 -3
  288. data/lib/pdfrb/model/type/misc_helpers.rb +75 -0
  289. data/lib/pdfrb/model/type/movie.rb +28 -0
  290. data/lib/pdfrb/model/type/names.rb +51 -0
  291. data/lib/pdfrb/model/type/namespace.rb +27 -0
  292. data/lib/pdfrb/model/type/object_reference.rb +31 -0
  293. data/lib/pdfrb/model/type/object_stream.rb +38 -0
  294. data/lib/pdfrb/model/type/opt_content_ext.rb +94 -0
  295. data/lib/pdfrb/model/type/opt_content_page_element.rb +18 -0
  296. data/lib/pdfrb/model/type/optional_content_config.rb +56 -0
  297. data/lib/pdfrb/model/type/optional_content_group.rb +35 -10
  298. data/lib/pdfrb/model/type/optional_content_membership.rb +36 -2
  299. data/lib/pdfrb/model/type/optional_content_properties.rb +16 -1
  300. data/lib/pdfrb/model/type/outline.rb +40 -6
  301. data/lib/pdfrb/model/type/outline_item.rb +45 -0
  302. data/lib/pdfrb/model/type/output_intent.rb +30 -0
  303. data/lib/pdfrb/model/type/page.rb +127 -0
  304. data/lib/pdfrb/model/type/page_label.rb +68 -0
  305. data/lib/pdfrb/model/type/page_tree_node.rb +51 -16
  306. data/lib/pdfrb/model/type/page_tree_node_root.rb +15 -0
  307. data/lib/pdfrb/model/type/pattern.rb +16 -0
  308. data/lib/pdfrb/model/type/pattern_shading.rb +25 -0
  309. data/lib/pdfrb/model/type/pattern_tiling.rb +25 -0
  310. data/lib/pdfrb/model/type/polygon_annotation.rb +29 -0
  311. data/lib/pdfrb/model/type/polygon_polyline.rb +14 -0
  312. data/lib/pdfrb/model/type/polyline_annotation.rb +29 -0
  313. data/lib/pdfrb/model/type/popup_annotation.rb +20 -0
  314. data/lib/pdfrb/model/type/printer_mark_annotation.rb +13 -0
  315. data/lib/pdfrb/model/type/redact_annotation.rb +28 -0
  316. data/lib/pdfrb/model/type/rendition.rb +31 -0
  317. data/lib/pdfrb/model/type/resources.rb +59 -14
  318. data/lib/pdfrb/model/type/rich_media_activation.rb +24 -0
  319. data/lib/pdfrb/model/type/rich_media_animation.rb +25 -0
  320. data/lib/pdfrb/model/type/rich_media_annotation.rb +18 -0
  321. data/lib/pdfrb/model/type/rich_media_command.rb +19 -0
  322. data/lib/pdfrb/model/type/rich_media_configuration.rb +32 -0
  323. data/lib/pdfrb/model/type/rich_media_content.rb +28 -0
  324. data/lib/pdfrb/model/type/rich_media_cue_point.rb +18 -0
  325. data/lib/pdfrb/model/type/rich_media_deactivation.rb +17 -0
  326. data/lib/pdfrb/model/type/rich_media_instance.rb +33 -0
  327. data/lib/pdfrb/model/type/rich_media_presentation.rb +29 -0
  328. data/lib/pdfrb/model/type/rich_media_settings.rb +33 -0
  329. data/lib/pdfrb/model/type/rich_media_window.rb +20 -0
  330. data/lib/pdfrb/model/type/screen_annotation.rb +19 -0
  331. data/lib/pdfrb/model/type/separation.rb +25 -0
  332. data/lib/pdfrb/model/type/sig_field_lock.rb +25 -0
  333. data/lib/pdfrb/model/type/sig_field_seed_value.rb +25 -0
  334. data/lib/pdfrb/model/type/signature.rb +65 -0
  335. data/lib/pdfrb/model/type/signature_build.rb +86 -0
  336. data/lib/pdfrb/model/type/signature_field.rb +17 -0
  337. data/lib/pdfrb/model/type/software_identifier.rb +19 -0
  338. data/lib/pdfrb/model/type/sound.rb +38 -0
  339. data/lib/pdfrb/model/type/sound_annotation.rb +21 -0
  340. data/lib/pdfrb/model/type/square_annotation.rb +24 -0
  341. data/lib/pdfrb/model/type/square_circle.rb +13 -0
  342. data/lib/pdfrb/model/type/squiggly_annotation.rb +11 -0
  343. data/lib/pdfrb/model/type/stamp_annotation.rb +19 -0
  344. data/lib/pdfrb/model/type/strikeout_annotation.rb +11 -0
  345. data/lib/pdfrb/model/type/struct_elem.rb +75 -0
  346. data/lib/pdfrb/model/type/struct_tree_root.rb +34 -0
  347. data/lib/pdfrb/model/type/structure_attributes.rb +44 -0
  348. data/lib/pdfrb/model/type/structure_element_kid.rb +33 -0
  349. data/lib/pdfrb/model/type/text_annotation.rb +25 -0
  350. data/lib/pdfrb/model/type/text_appearance.rb +9 -0
  351. data/lib/pdfrb/model/type/text_field.rb +21 -0
  352. data/lib/pdfrb/model/type/text_markup_annotation.rb +30 -0
  353. data/lib/pdfrb/model/type/three_d_activation.rb +32 -0
  354. data/lib/pdfrb/model/type/three_d_animation_style.rb +24 -0
  355. data/lib/pdfrb/model/type/three_d_background.rb +28 -0
  356. data/lib/pdfrb/model/type/three_d_cross_section.rb +25 -0
  357. data/lib/pdfrb/model/type/three_d_lighting_scheme.rb +26 -0
  358. data/lib/pdfrb/model/type/three_d_measure.rb +20 -0
  359. data/lib/pdfrb/model/type/three_d_measure_3dc.rb +23 -0
  360. data/lib/pdfrb/model/type/three_d_measure_ad3.rb +14 -0
  361. data/lib/pdfrb/model/type/three_d_measure_ld3.rb +14 -0
  362. data/lib/pdfrb/model/type/three_d_measure_pd3.rb +20 -0
  363. data/lib/pdfrb/model/type/three_d_measure_rd3.rb +14 -0
  364. data/lib/pdfrb/model/type/three_d_node.rb +37 -0
  365. data/lib/pdfrb/model/type/three_d_reference.rb +21 -0
  366. data/lib/pdfrb/model/type/three_d_render_mode.rb +34 -0
  367. data/lib/pdfrb/model/type/three_d_stream.rb +48 -0
  368. data/lib/pdfrb/model/type/three_d_units.rb +18 -0
  369. data/lib/pdfrb/model/type/three_d_view.rb +40 -0
  370. data/lib/pdfrb/model/type/to_unicode_cmap_stream.rb +23 -0
  371. data/lib/pdfrb/model/type/transition.rb +68 -0
  372. data/lib/pdfrb/model/type/underline_annotation.rb +11 -0
  373. data/lib/pdfrb/model/type/ur_transform_parameters.rb +33 -0
  374. data/lib/pdfrb/model/type/uri_dict.rb +18 -0
  375. data/lib/pdfrb/model/type/url_alias.rb +19 -0
  376. data/lib/pdfrb/model/type/variable_text_field.rb +47 -0
  377. data/lib/pdfrb/model/type/viewer_preferences.rb +42 -0
  378. data/lib/pdfrb/model/type/watermark_annotation.rb +13 -0
  379. data/lib/pdfrb/model/type/widget_annotation.rb +48 -0
  380. data/lib/pdfrb/model/type/widget_appearance.rb +9 -0
  381. data/lib/pdfrb/model/type/xobject_form.rb +41 -0
  382. data/lib/pdfrb/model/type/xobject_image.rb +56 -0
  383. data/lib/pdfrb/model/type/xref_stream.rb +37 -0
  384. data/lib/pdfrb/model/type.rb +286 -6
  385. data/lib/pdfrb/serializer.rb +2 -2
  386. data/lib/pdfrb/source/tokenizer.rb +0 -2
  387. data/lib/pdfrb/task/benchmark.rb +83 -0
  388. data/lib/pdfrb/task/extract_text.rb +1 -1
  389. data/lib/pdfrb/task/generate_corpus.rb +130 -0
  390. data/lib/pdfrb/task/memory_profile.rb +84 -0
  391. data/lib/pdfrb/task/optimize.rb +97 -7
  392. data/lib/pdfrb/task.rb +3 -3
  393. data/lib/pdfrb/test_utils.rb +112 -0
  394. data/lib/pdfrb/validator.rb +82 -0
  395. data/lib/pdfrb/version.rb +1 -1
  396. data/lib/pdfrb/writer.rb +117 -27
  397. data/lib/pdfrb/xmp/packet.rb +122 -0
  398. data/lib/pdfrb/xmp/schemas.rb +96 -0
  399. data/lib/pdfrb/xmp.rb +44 -0
  400. data/lib/pdfrb/xref_section.rb +2 -2
  401. data/lib/pdfrb.rb +25 -53
  402. data/pdfrb.gemspec +45 -0
  403. data/script/apply_fixes.sh +843 -0
  404. data/script/make_jpeg_fixture.rb +53 -0
  405. data/script/make_png_fixture.rb +25 -0
  406. metadata +312 -2
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Build a minimal 2x1 RGB JPEG fixture for image_loader specs.
4
+ # Uses the JPEG spec directly (no ImageMagick). The output is intentionally
5
+ # minimal — just enough to be recognized by JPEG parsers and contain valid
6
+ # SOF/SOS segments describing a 2x1 RGB image.
7
+ bytes = +""
8
+ # SOI
9
+ bytes << "\xFF\xD8".b
10
+ # DQT (Define Quantization Table) — minimal valid 1-byte table
11
+ bytes << "\xFF\xDB".b # marker
12
+ bytes << "\x00\x43".b # length = 67
13
+ bytes << "\x00".b # table id 0, precision 0 (8-bit)
14
+ # 64 quantization values, all 1
15
+ 64.times { bytes << "\x01".b }
16
+ # SOF0 (Start Of Frame, baseline) — 2x1 RGB
17
+ bytes << "\xFF\xC0".b # marker
18
+ bytes << "\x00\x0B".b # length = 11
19
+ bytes << "\x08".b # precision 8-bit
20
+ bytes << "\x00\x01".b # height = 1
21
+ bytes << "\x00\x02".b # width = 2
22
+ bytes << "\x03".b # num components = 3 (YCbCr)
23
+ bytes << "\x01\x11\x00".b # Y component (id=1, sampling 1x1, quant table 0)
24
+ bytes << "\x02\x11\x00".b # Cb component (id=2, sampling 1x1, quant table 0)
25
+ bytes << "\x03\x11\x00".b # Cr component (id=3, sampling 1x1, quant table 0)
26
+ # DHT (Define Huffman Table) — minimal DC table for each component
27
+ def huffman_table(bytes, table_class, table_id)
28
+ bytes << "\xFF\xC4".b
29
+ # 16 bytes of bit-length counts (all zero for simplicity except code 0)
30
+ lengths = [0] * 16
31
+ lengths[0] = 1 # one code of length 1
32
+ payload = [(table_class << 4) | table_id].pack("C") + lengths.pack("C16")
33
+ body = payload
34
+ body << "\x00".b # one symbol value = 0
35
+ bytes << ([body.bytesize + 2].pack("n") + body.b)
36
+ end
37
+ huffman_table(bytes, 0, 0) # DC table 0
38
+ huffman_table(bytes, 1, 0) # AC table 0
39
+ # SOS (Start Of Scan)
40
+ bytes << "\xFF\xDA".b
41
+ bytes << "\x00\x08".b # length
42
+ bytes << "\x03".b # 3 components
43
+ bytes << "\x01\x00".b # Y id=1, DC table 0, AC table 0
44
+ bytes << "\x02\x00".b # Cb id=2, DC table 0, AC table 0
45
+ bytes << "\x03\x00".b # Cr id=3, DC table 0, AC table 0
46
+ bytes << "\x00\x3F\x00".b # spectral selection 0..63, successive approx 0
47
+ # Entropy-coded data — minimal placeholder bytes; not a valid scan but accepted
48
+ bytes << "\x00".b
49
+ # EOI
50
+ bytes << "\xFF\xD9".b
51
+ bytes.force_encoding(Encoding::BINARY)
52
+ File.binwrite("spec/fixtures/images/test.jpg", bytes)
53
+ puts "JPEG written: #{bytes.bytesize} bytes"
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "zlib"
4
+
5
+ width = 2
6
+ height = 2
7
+ raw = +""
8
+ raw << "\x00".b << "\xff\x00\x00".b << "\x00\xff\x00".b
9
+ raw << "\x00".b << "\x00\x00\xff".b << "\xff\xff\x00".b
10
+ raw.force_encoding(Encoding::BINARY)
11
+ compressed = Zlib::Deflate.deflate(raw)
12
+
13
+ def chunk(name, data)
14
+ name_b = name.dup.force_encoding(Encoding::BINARY)
15
+ len = [data.bytesize].pack("N")
16
+ crc = [Zlib::crc32(name_b + data, 0)].pack("N")
17
+ (len + name_b + data + crc).force_encoding(Encoding::BINARY)
18
+ end
19
+
20
+ png = "\x89PNG\r\n\x1a\n".b
21
+ png << chunk("IHDR", [width, height, 8, 2, 0, 0, 0].pack("NNCCCCC"))
22
+ png << chunk("IDAT", compressed)
23
+ png << chunk("IEND", "")
24
+ File.binwrite("spec/fixtures/images/test.png", png)
25
+ puts "PNG written: #{png.bytesize} bytes"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdfrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
@@ -49,7 +49,25 @@ files:
49
49
  - CLAUDE.md
50
50
  - Gemfile
51
51
  - LICENSE
52
+ - PROPOSAL.canvas-clip.md
53
+ - PROPOSAL.canvas-draw-image-matrix.md
54
+ - PROPOSAL.canvas-rich-text.md
55
+ - PROPOSAL.canvas-text-lines.md
56
+ - PROPOSAL.canvas-transparency.md
57
+ - PROPOSAL.external-font-metrics.md
58
+ - PROPOSAL.font-embedding-fontfile2.md
59
+ - PROPOSAL.font-resolver-ttc.md
60
+ - PROPOSAL.font-resolver.md
61
+ - PROPOSAL.font-subsetting.md
62
+ - PROPOSAL.gradient-shadings.md
63
+ - PROPOSAL.page-mediabox-setter.md
64
+ - PROPOSAL.per-glyph-width.md
65
+ - PROPOSAL.stringio-require.md
66
+ - PROPOSAL.struct-tree-root.md
67
+ - PROPOSAL.text-measurement.md
68
+ - PROPOSAL.ttf-table-parsing-fix.md
52
69
  - README.adoc
70
+ - RELEASE.md
53
71
  - Rakefile
54
72
  - benchmarks/bench.rb
55
73
  - data/pdfrb/afm/Courier-Bold.afm
@@ -683,6 +701,14 @@ files:
683
701
  - data/pdfrb/zapfdingbats.txt
684
702
  - exe/pdfrb
685
703
  - lib/pdfrb.rb
704
+ - lib/pdfrb/action.rb
705
+ - lib/pdfrb/action/base.rb
706
+ - lib/pdfrb/action/types.rb
707
+ - lib/pdfrb/annotation.rb
708
+ - lib/pdfrb/annotation/base.rb
709
+ - lib/pdfrb/annotation/types.rb
710
+ - lib/pdfrb/appearance.rb
711
+ - lib/pdfrb/appearance/generator.rb
686
712
  - lib/pdfrb/arlington.rb
687
713
  - lib/pdfrb/arlington/field_definition.rb
688
714
  - lib/pdfrb/arlington/loader.rb
@@ -703,19 +729,48 @@ files:
703
729
  - lib/pdfrb/arlington/predicate/parser.rb
704
730
  - lib/pdfrb/arlington/type.rb
705
731
  - lib/pdfrb/cli.rb
732
+ - lib/pdfrb/cli/batch.rb
733
+ - lib/pdfrb/cli/debug_info.rb
734
+ - lib/pdfrb/cli/files.rb
735
+ - lib/pdfrb/cli/fonts.rb
736
+ - lib/pdfrb/cli/form.rb
737
+ - lib/pdfrb/cli/image2pdf.rb
738
+ - lib/pdfrb/cli/images.rb
739
+ - lib/pdfrb/cli/info.rb
740
+ - lib/pdfrb/cli/inspect.rb
741
+ - lib/pdfrb/cli/merge.rb
742
+ - lib/pdfrb/cli/modify.rb
743
+ - lib/pdfrb/cli/optimize.rb
744
+ - lib/pdfrb/cli/split.rb
745
+ - lib/pdfrb/cli/watermark.rb
746
+ - lib/pdfrb/color.rb
747
+ - lib/pdfrb/color/color_space.rb
748
+ - lib/pdfrb/color/icc_profile.rb
749
+ - lib/pdfrb/compare.rb
750
+ - lib/pdfrb/compare/comparator.rb
751
+ - lib/pdfrb/compare/report.rb
752
+ - lib/pdfrb/composer.rb
706
753
  - lib/pdfrb/configuration.rb
707
754
  - lib/pdfrb/conformance.rb
708
755
  - lib/pdfrb/conformance/pdf_a.rb
709
756
  - lib/pdfrb/conformance/pdf_ua.rb
757
+ - lib/pdfrb/conformance/pdf_x.rb
758
+ - lib/pdfrb/conformance/rule.rb
759
+ - lib/pdfrb/conformance/structure_elements.rb
760
+ - lib/pdfrb/conformance/verapdf_bridge.rb
710
761
  - lib/pdfrb/content.rb
711
762
  - lib/pdfrb/content/canvas.rb
763
+ - lib/pdfrb/content/color_space.rb
712
764
  - lib/pdfrb/content/graphic_object.rb
713
765
  - lib/pdfrb/content/graphic_object/arc.rb
714
766
  - lib/pdfrb/content/graphic_object/curve.rb
715
767
  - lib/pdfrb/content/graphic_object/polyline.rb
716
768
  - lib/pdfrb/content/graphic_object/rectangle.rb
717
769
  - lib/pdfrb/content/graphics_state.rb
770
+ - lib/pdfrb/content/hidden_text_detector.rb
718
771
  - lib/pdfrb/content/operator.rb
772
+ - lib/pdfrb/content/operators.rb
773
+ - lib/pdfrb/content/operators/clipping.rb
719
774
  - lib/pdfrb/content/operators/color.rb
720
775
  - lib/pdfrb/content/operators/general.rb
721
776
  - lib/pdfrb/content/operators/graphics_state_params.rb
@@ -727,22 +782,47 @@ files:
727
782
  - lib/pdfrb/content/operators/text_state.rb
728
783
  - lib/pdfrb/content/parser.rb
729
784
  - lib/pdfrb/content/processor.rb
785
+ - lib/pdfrb/content/shading.rb
786
+ - lib/pdfrb/content/shading/base.rb
787
+ - lib/pdfrb/content/smart_text_extractor.rb
788
+ - lib/pdfrb/content/tiling_pattern.rb
789
+ - lib/pdfrb/content/transformation_matrix.rb
730
790
  - lib/pdfrb/data_dir.rb
791
+ - lib/pdfrb/destination.rb
792
+ - lib/pdfrb/destination/fit.rb
731
793
  - lib/pdfrb/digital_signature.rb
794
+ - lib/pdfrb/digital_signature/cms_handler.rb
732
795
  - lib/pdfrb/digital_signature/handler.rb
733
796
  - lib/pdfrb/digital_signature/signing.rb
797
+ - lib/pdfrb/digital_signature/timestamp_handler.rb
734
798
  - lib/pdfrb/digital_signature/verification.rb
799
+ - lib/pdfrb/digital_signature/verification_result.rb
735
800
  - lib/pdfrb/document.rb
736
801
  - lib/pdfrb/document/annotations.rb
802
+ - lib/pdfrb/document/associated_files.rb
803
+ - lib/pdfrb/document/colors.rb
737
804
  - lib/pdfrb/document/destinations.rb
805
+ - lib/pdfrb/document/display.rb
738
806
  - lib/pdfrb/document/files.rb
739
807
  - lib/pdfrb/document/fonts.rb
808
+ - lib/pdfrb/document/form.rb
809
+ - lib/pdfrb/document/form_xobject.rb
810
+ - lib/pdfrb/document/graphics_state.rb
740
811
  - lib/pdfrb/document/images.rb
812
+ - lib/pdfrb/document/info.rb
813
+ - lib/pdfrb/document/layers.rb
741
814
  - lib/pdfrb/document/metadata.rb
742
815
  - lib/pdfrb/document/outline.rb
816
+ - lib/pdfrb/document/output_intents.rb
817
+ - lib/pdfrb/document/page_labels.rb
743
818
  - lib/pdfrb/document/pages.rb
819
+ - lib/pdfrb/document/portfolio.rb
820
+ - lib/pdfrb/document/shadings.rb
821
+ - lib/pdfrb/document/stamps.rb
822
+ - lib/pdfrb/document/structure.rb
744
823
  - lib/pdfrb/encryption.rb
745
824
  - lib/pdfrb/encryption/aes.rb
825
+ - lib/pdfrb/encryption/identity.rb
746
826
  - lib/pdfrb/encryption/password_verification.rb
747
827
  - lib/pdfrb/encryption/rc4.rb
748
828
  - lib/pdfrb/encryption/security_handler.rb
@@ -752,10 +832,16 @@ files:
752
832
  - lib/pdfrb/filter/ascii_85_decode.rb
753
833
  - lib/pdfrb/filter/ascii_hex_decode.rb
754
834
  - lib/pdfrb/filter/base.rb
835
+ - lib/pdfrb/filter/brotli_decode.rb
836
+ - lib/pdfrb/filter/ccitt_fax_decode.rb
755
837
  - lib/pdfrb/filter/crypt.rb
838
+ - lib/pdfrb/filter/dct_decode.rb
756
839
  - lib/pdfrb/filter/flate_decode.rb
840
+ - lib/pdfrb/filter/jbig2_decode.rb
841
+ - lib/pdfrb/filter/jpx_decode.rb
757
842
  - lib/pdfrb/filter/lzw_decode.rb
758
843
  - lib/pdfrb/filter/passthrough_filters.rb
844
+ - lib/pdfrb/filter/png_predictor.rb
759
845
  - lib/pdfrb/filter/run_length_decode.rb
760
846
  - lib/pdfrb/font.rb
761
847
  - lib/pdfrb/font/afm_parser.rb
@@ -769,24 +855,61 @@ files:
769
855
  - lib/pdfrb/font/encoding/win_ansi_encoding.rb
770
856
  - lib/pdfrb/font/encoding/zapf_dingbats_encoding.rb
771
857
  - lib/pdfrb/font/glyph_list.rb
858
+ - lib/pdfrb/font/metrics_helper.rb
772
859
  - lib/pdfrb/font/true_type.rb
773
860
  - lib/pdfrb/font/true_type/cmap.rb
774
861
  - lib/pdfrb/font/true_type/file.rb
862
+ - lib/pdfrb/font/true_type/glyf.rb
775
863
  - lib/pdfrb/font/true_type/head.rb
776
864
  - lib/pdfrb/font/true_type/hhea.rb
777
865
  - lib/pdfrb/font/true_type/hmtx.rb
866
+ - lib/pdfrb/font/true_type/kern.rb
867
+ - lib/pdfrb/font/true_type/loca.rb
868
+ - lib/pdfrb/font/true_type/maxp.rb
869
+ - lib/pdfrb/font/true_type/name.rb
778
870
  - lib/pdfrb/font/true_type/os2.rb
871
+ - lib/pdfrb/font/true_type/post.rb
779
872
  - lib/pdfrb/font/true_type/subsetter.rb
873
+ - lib/pdfrb/font/true_type/wrapper.rb
780
874
  - lib/pdfrb/font/type1.rb
781
875
  - lib/pdfrb/font/type1/font_metrics.rb
782
876
  - lib/pdfrb/font_loader.rb
877
+ - lib/pdfrb/font_loader/from_configuration.rb
878
+ - lib/pdfrb/font_loader/from_file.rb
879
+ - lib/pdfrb/font_loader/standard14.rb
783
880
  - lib/pdfrb/font_loader/true_type.rb
784
881
  - lib/pdfrb/font_loader/type1.rb
882
+ - lib/pdfrb/font_loader/variant_from_name.rb
883
+ - lib/pdfrb/font_resolver.rb
884
+ - lib/pdfrb/image.rb
885
+ - lib/pdfrb/image/audit.rb
886
+ - lib/pdfrb/image/downsampler.rb
785
887
  - lib/pdfrb/image_loader.rb
786
888
  - lib/pdfrb/image_loader/jpeg.rb
787
889
  - lib/pdfrb/image_loader/pdf.rb
788
890
  - lib/pdfrb/image_loader/png.rb
789
891
  - lib/pdfrb/importer.rb
892
+ - lib/pdfrb/layout.rb
893
+ - lib/pdfrb/layout/bidi.rb
894
+ - lib/pdfrb/layout/box.rb
895
+ - lib/pdfrb/layout/box_fitter.rb
896
+ - lib/pdfrb/layout/column_box.rb
897
+ - lib/pdfrb/layout/container_box.rb
898
+ - lib/pdfrb/layout/frame.rb
899
+ - lib/pdfrb/layout/image_box.rb
900
+ - lib/pdfrb/layout/inline_box.rb
901
+ - lib/pdfrb/layout/line.rb
902
+ - lib/pdfrb/layout/list_box.rb
903
+ - lib/pdfrb/layout/numeric_refinements.rb
904
+ - lib/pdfrb/layout/page_style.rb
905
+ - lib/pdfrb/layout/style.rb
906
+ - lib/pdfrb/layout/table_box.rb
907
+ - lib/pdfrb/layout/text_box.rb
908
+ - lib/pdfrb/layout/text_fragment.rb
909
+ - lib/pdfrb/layout/text_layouter.rb
910
+ - lib/pdfrb/linearization.rb
911
+ - lib/pdfrb/linearization/hint_stream.rb
912
+ - lib/pdfrb/linearization/writer.rb
790
913
  - lib/pdfrb/model.rb
791
914
  - lib/pdfrb/model/cos.rb
792
915
  - lib/pdfrb/model/cos/dictionary.rb
@@ -802,28 +925,130 @@ files:
802
925
  - lib/pdfrb/model/reference.rb
803
926
  - lib/pdfrb/model/type.rb
804
927
  - lib/pdfrb/model/type/action.rb
928
+ - lib/pdfrb/model/type/action_go_to_3d_view.rb
929
+ - lib/pdfrb/model/type/action_go_to_dp.rb
930
+ - lib/pdfrb/model/type/action_go_to_r.rb
931
+ - lib/pdfrb/model/type/action_goto.rb
932
+ - lib/pdfrb/model/type/action_hide.rb
933
+ - lib/pdfrb/model/type/action_import_data.rb
934
+ - lib/pdfrb/model/type/action_java_script.rb
935
+ - lib/pdfrb/model/type/action_launch.rb
936
+ - lib/pdfrb/model/type/action_movie.rb
937
+ - lib/pdfrb/model/type/action_named.rb
938
+ - lib/pdfrb/model/type/action_nop.rb
939
+ - lib/pdfrb/model/type/action_rendition.rb
940
+ - lib/pdfrb/model/type/action_reset_form.rb
941
+ - lib/pdfrb/model/type/action_rich_media_execute.rb
942
+ - lib/pdfrb/model/type/action_set_ocg_state.rb
943
+ - lib/pdfrb/model/type/action_set_state.rb
944
+ - lib/pdfrb/model/type/action_sound_action.rb
945
+ - lib/pdfrb/model/type/action_submit_form.rb
946
+ - lib/pdfrb/model/type/action_thread.rb
947
+ - lib/pdfrb/model/type/action_trans.rb
948
+ - lib/pdfrb/model/type/action_uri.rb
805
949
  - lib/pdfrb/model/type/af_embedded_file.rb
806
950
  - lib/pdfrb/model/type/af_file_specification.rb
807
951
  - lib/pdfrb/model/type/annotation.rb
952
+ - lib/pdfrb/model/type/appearance.rb
953
+ - lib/pdfrb/model/type/appearance_characteristics.rb
954
+ - lib/pdfrb/model/type/appearance_generator.rb
955
+ - lib/pdfrb/model/type/appearance_trap_net.rb
956
+ - lib/pdfrb/model/type/border_effect.rb
957
+ - lib/pdfrb/model/type/border_styling.rb
958
+ - lib/pdfrb/model/type/box_color_info.rb
959
+ - lib/pdfrb/model/type/box_style.rb
960
+ - lib/pdfrb/model/type/button.rb
961
+ - lib/pdfrb/model/type/cal_gray.rb
962
+ - lib/pdfrb/model/type/cal_rgb.rb
963
+ - lib/pdfrb/model/type/caret_annotation.rb
808
964
  - lib/pdfrb/model/type/catalog.rb
965
+ - lib/pdfrb/model/type/choice.rb
809
966
  - lib/pdfrb/model/type/cid_font.rb
967
+ - lib/pdfrb/model/type/cid_font_descriptor_metrics.rb
968
+ - lib/pdfrb/model/type/cid_system_info.rb
969
+ - lib/pdfrb/model/type/circle_annotation.rb
970
+ - lib/pdfrb/model/type/collection.rb
971
+ - lib/pdfrb/model/type/collection_field.rb
972
+ - lib/pdfrb/model/type/collection_item.rb
973
+ - lib/pdfrb/model/type/collection_schema.rb
974
+ - lib/pdfrb/model/type/collection_sort.rb
975
+ - lib/pdfrb/model/type/crypt_filter.rb
976
+ - lib/pdfrb/model/type/device_n.rb
977
+ - lib/pdfrb/model/type/device_n_mixing_hints.rb
978
+ - lib/pdfrb/model/type/device_n_process.rb
979
+ - lib/pdfrb/model/type/doc_mdp_transform_parameters.rb
980
+ - lib/pdfrb/model/type/document_security_store.rb
810
981
  - lib/pdfrb/model/type/embedded_file.rb
982
+ - lib/pdfrb/model/type/embedded_file_parameter.rb
811
983
  - lib/pdfrb/model/type/encryption_public_key.rb
812
984
  - lib/pdfrb/model/type/encryption_standard.rb
985
+ - lib/pdfrb/model/type/field_mdp_transform_parameters.rb
986
+ - lib/pdfrb/model/type/file_attachment_annotation.rb
987
+ - lib/pdfrb/model/type/file_spec_ef.rb
988
+ - lib/pdfrb/model/type/file_spec_rf.rb
813
989
  - lib/pdfrb/model/type/file_specification.rb
814
990
  - lib/pdfrb/model/type/file_trailer.rb
815
991
  - lib/pdfrb/model/type/font.rb
992
+ - lib/pdfrb/model/type/font_cid_type0.rb
993
+ - lib/pdfrb/model/type/font_cid_type2.rb
816
994
  - lib/pdfrb/model/type/font_descriptor.rb
995
+ - lib/pdfrb/model/type/font_descriptor_cid_type0.rb
996
+ - lib/pdfrb/model/type/font_descriptor_cid_type2.rb
997
+ - lib/pdfrb/model/type/font_encoding.rb
998
+ - lib/pdfrb/model/type/font_file.rb
999
+ - lib/pdfrb/model/type/font_file2.rb
1000
+ - lib/pdfrb/model/type/font_file3.rb
1001
+ - lib/pdfrb/model/type/font_multiple_master.rb
817
1002
  - lib/pdfrb/model/type/font_true_type.rb
818
1003
  - lib/pdfrb/model/type/font_type0.rb
819
1004
  - lib/pdfrb/model/type/font_type1.rb
820
1005
  - lib/pdfrb/model/type/font_type3.rb
1006
+ - lib/pdfrb/model/type/form_field.rb
1007
+ - lib/pdfrb/model/type/free_text_annotation.rb
1008
+ - lib/pdfrb/model/type/function.rb
1009
+ - lib/pdfrb/model/type/function_exponential.rb
1010
+ - lib/pdfrb/model/type/function_postscript.rb
1011
+ - lib/pdfrb/model/type/function_sampled.rb
1012
+ - lib/pdfrb/model/type/function_stitching.rb
1013
+ - lib/pdfrb/model/type/generic_appearance.rb
821
1014
  - lib/pdfrb/model/type/graphics_state_parameter.rb
1015
+ - lib/pdfrb/model/type/halftone.rb
1016
+ - lib/pdfrb/model/type/halftone_type1.rb
1017
+ - lib/pdfrb/model/type/halftone_type10.rb
1018
+ - lib/pdfrb/model/type/halftone_type16.rb
1019
+ - lib/pdfrb/model/type/halftone_type5.rb
1020
+ - lib/pdfrb/model/type/halftone_type6.rb
1021
+ - lib/pdfrb/model/type/highlight_annotation.rb
1022
+ - lib/pdfrb/model/type/icc_based_color_space.rb
1023
+ - lib/pdfrb/model/type/icon_fit.rb
1024
+ - lib/pdfrb/model/type/indexed.rb
822
1025
  - lib/pdfrb/model/type/info.rb
1026
+ - lib/pdfrb/model/type/ink_annotation.rb
823
1027
  - lib/pdfrb/model/type/interactive_form.rb
1028
+ - lib/pdfrb/model/type/interior_color.rb
1029
+ - lib/pdfrb/model/type/jbig2_globals.rb
1030
+ - lib/pdfrb/model/type/lab.rb
1031
+ - lib/pdfrb/model/type/line_annotation.rb
1032
+ - lib/pdfrb/model/type/line_ending_styling.rb
1033
+ - lib/pdfrb/model/type/link_annotation.rb
1034
+ - lib/pdfrb/model/type/link_appearance.rb
1035
+ - lib/pdfrb/model/type/mark_information.rb
1036
+ - lib/pdfrb/model/type/marked_content_reference.rb
1037
+ - lib/pdfrb/model/type/markup_annotation.rb
1038
+ - lib/pdfrb/model/type/mdp_dict.rb
1039
+ - lib/pdfrb/model/type/measure.rb
1040
+ - lib/pdfrb/model/type/media_clip.rb
1041
+ - lib/pdfrb/model/type/media_offset.rb
824
1042
  - lib/pdfrb/model/type/metadata.rb
1043
+ - lib/pdfrb/model/type/misc_helpers.rb
1044
+ - lib/pdfrb/model/type/movie.rb
825
1045
  - lib/pdfrb/model/type/names.rb
1046
+ - lib/pdfrb/model/type/namespace.rb
1047
+ - lib/pdfrb/model/type/object_reference.rb
826
1048
  - lib/pdfrb/model/type/object_stream.rb
1049
+ - lib/pdfrb/model/type/opt_content_ext.rb
1050
+ - lib/pdfrb/model/type/opt_content_page_element.rb
1051
+ - lib/pdfrb/model/type/optional_content_config.rb
827
1052
  - lib/pdfrb/model/type/optional_content_group.rb
828
1053
  - lib/pdfrb/model/type/optional_content_membership.rb
829
1054
  - lib/pdfrb/model/type/optional_content_properties.rb
@@ -831,10 +1056,83 @@ files:
831
1056
  - lib/pdfrb/model/type/outline_item.rb
832
1057
  - lib/pdfrb/model/type/output_intent.rb
833
1058
  - lib/pdfrb/model/type/page.rb
1059
+ - lib/pdfrb/model/type/page_label.rb
834
1060
  - lib/pdfrb/model/type/page_tree_node.rb
1061
+ - lib/pdfrb/model/type/page_tree_node_root.rb
1062
+ - lib/pdfrb/model/type/pattern.rb
1063
+ - lib/pdfrb/model/type/pattern_shading.rb
1064
+ - lib/pdfrb/model/type/pattern_tiling.rb
1065
+ - lib/pdfrb/model/type/polygon_annotation.rb
1066
+ - lib/pdfrb/model/type/polygon_polyline.rb
1067
+ - lib/pdfrb/model/type/polyline_annotation.rb
1068
+ - lib/pdfrb/model/type/popup_annotation.rb
1069
+ - lib/pdfrb/model/type/printer_mark_annotation.rb
1070
+ - lib/pdfrb/model/type/redact_annotation.rb
1071
+ - lib/pdfrb/model/type/rendition.rb
835
1072
  - lib/pdfrb/model/type/resources.rb
1073
+ - lib/pdfrb/model/type/rich_media_activation.rb
1074
+ - lib/pdfrb/model/type/rich_media_animation.rb
1075
+ - lib/pdfrb/model/type/rich_media_annotation.rb
1076
+ - lib/pdfrb/model/type/rich_media_command.rb
1077
+ - lib/pdfrb/model/type/rich_media_configuration.rb
1078
+ - lib/pdfrb/model/type/rich_media_content.rb
1079
+ - lib/pdfrb/model/type/rich_media_cue_point.rb
1080
+ - lib/pdfrb/model/type/rich_media_deactivation.rb
1081
+ - lib/pdfrb/model/type/rich_media_instance.rb
1082
+ - lib/pdfrb/model/type/rich_media_presentation.rb
1083
+ - lib/pdfrb/model/type/rich_media_settings.rb
1084
+ - lib/pdfrb/model/type/rich_media_window.rb
1085
+ - lib/pdfrb/model/type/screen_annotation.rb
1086
+ - lib/pdfrb/model/type/separation.rb
1087
+ - lib/pdfrb/model/type/sig_field_lock.rb
1088
+ - lib/pdfrb/model/type/sig_field_seed_value.rb
1089
+ - lib/pdfrb/model/type/signature.rb
1090
+ - lib/pdfrb/model/type/signature_build.rb
1091
+ - lib/pdfrb/model/type/signature_field.rb
1092
+ - lib/pdfrb/model/type/software_identifier.rb
1093
+ - lib/pdfrb/model/type/sound.rb
1094
+ - lib/pdfrb/model/type/sound_annotation.rb
1095
+ - lib/pdfrb/model/type/square_annotation.rb
1096
+ - lib/pdfrb/model/type/square_circle.rb
1097
+ - lib/pdfrb/model/type/squiggly_annotation.rb
1098
+ - lib/pdfrb/model/type/stamp_annotation.rb
1099
+ - lib/pdfrb/model/type/strikeout_annotation.rb
836
1100
  - lib/pdfrb/model/type/struct_elem.rb
837
1101
  - lib/pdfrb/model/type/struct_tree_root.rb
1102
+ - lib/pdfrb/model/type/structure_attributes.rb
1103
+ - lib/pdfrb/model/type/structure_element_kid.rb
1104
+ - lib/pdfrb/model/type/text_annotation.rb
1105
+ - lib/pdfrb/model/type/text_appearance.rb
1106
+ - lib/pdfrb/model/type/text_field.rb
1107
+ - lib/pdfrb/model/type/text_markup_annotation.rb
1108
+ - lib/pdfrb/model/type/three_d_activation.rb
1109
+ - lib/pdfrb/model/type/three_d_animation_style.rb
1110
+ - lib/pdfrb/model/type/three_d_background.rb
1111
+ - lib/pdfrb/model/type/three_d_cross_section.rb
1112
+ - lib/pdfrb/model/type/three_d_lighting_scheme.rb
1113
+ - lib/pdfrb/model/type/three_d_measure.rb
1114
+ - lib/pdfrb/model/type/three_d_measure_3dc.rb
1115
+ - lib/pdfrb/model/type/three_d_measure_ad3.rb
1116
+ - lib/pdfrb/model/type/three_d_measure_ld3.rb
1117
+ - lib/pdfrb/model/type/three_d_measure_pd3.rb
1118
+ - lib/pdfrb/model/type/three_d_measure_rd3.rb
1119
+ - lib/pdfrb/model/type/three_d_node.rb
1120
+ - lib/pdfrb/model/type/three_d_reference.rb
1121
+ - lib/pdfrb/model/type/three_d_render_mode.rb
1122
+ - lib/pdfrb/model/type/three_d_stream.rb
1123
+ - lib/pdfrb/model/type/three_d_units.rb
1124
+ - lib/pdfrb/model/type/three_d_view.rb
1125
+ - lib/pdfrb/model/type/to_unicode_cmap_stream.rb
1126
+ - lib/pdfrb/model/type/transition.rb
1127
+ - lib/pdfrb/model/type/underline_annotation.rb
1128
+ - lib/pdfrb/model/type/ur_transform_parameters.rb
1129
+ - lib/pdfrb/model/type/uri_dict.rb
1130
+ - lib/pdfrb/model/type/url_alias.rb
1131
+ - lib/pdfrb/model/type/variable_text_field.rb
1132
+ - lib/pdfrb/model/type/viewer_preferences.rb
1133
+ - lib/pdfrb/model/type/watermark_annotation.rb
1134
+ - lib/pdfrb/model/type/widget_annotation.rb
1135
+ - lib/pdfrb/model/type/widget_appearance.rb
838
1136
  - lib/pdfrb/model/type/xobject_form.rb
839
1137
  - lib/pdfrb/model/type/xobject_image.rb
840
1138
  - lib/pdfrb/model/type/xref_stream.rb
@@ -855,13 +1153,25 @@ files:
855
1153
  - lib/pdfrb/source/xref_stream_reader.rb
856
1154
  - lib/pdfrb/source/xref_table_reader.rb
857
1155
  - lib/pdfrb/task.rb
1156
+ - lib/pdfrb/task/benchmark.rb
858
1157
  - lib/pdfrb/task/extract_images.rb
859
1158
  - lib/pdfrb/task/extract_text.rb
1159
+ - lib/pdfrb/task/generate_corpus.rb
1160
+ - lib/pdfrb/task/memory_profile.rb
860
1161
  - lib/pdfrb/task/merge.rb
861
1162
  - lib/pdfrb/task/optimize.rb
1163
+ - lib/pdfrb/test_utils.rb
1164
+ - lib/pdfrb/validator.rb
862
1165
  - lib/pdfrb/version.rb
863
1166
  - lib/pdfrb/writer.rb
1167
+ - lib/pdfrb/xmp.rb
1168
+ - lib/pdfrb/xmp/packet.rb
1169
+ - lib/pdfrb/xmp/schemas.rb
864
1170
  - lib/pdfrb/xref_section.rb
1171
+ - pdfrb.gemspec
1172
+ - script/apply_fixes.sh
1173
+ - script/make_jpeg_fixture.rb
1174
+ - script/make_png_fixture.rb
865
1175
  homepage: https://github.com/claricle/pdfrb
866
1176
  licenses:
867
1177
  - BSD-2-Clause
@@ -878,7 +1188,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
878
1188
  requirements:
879
1189
  - - ">="
880
1190
  - !ruby/object:Gem::Version
881
- version: 3.0.0
1191
+ version: 3.2.0
882
1192
  required_rubygems_version: !ruby/object:Gem::Requirement
883
1193
  requirements:
884
1194
  - - ">="