pdfrb 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (822) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +2 -0
  3. data/.rubocop.yml +22 -0
  4. data/.rubocop_todo.yml +819 -0
  5. data/.yardopts +4 -0
  6. data/CHANGELOG.md +226 -0
  7. data/CLAUDE.md +110 -0
  8. data/Gemfile +13 -0
  9. data/LICENSE +25 -0
  10. data/README.adoc +88 -0
  11. data/Rakefile +45 -0
  12. data/benchmarks/bench.rb +49 -0
  13. data/data/pdfrb/afm/Courier-Bold.afm +342 -0
  14. data/data/pdfrb/afm/Courier-BoldOblique.afm +342 -0
  15. data/data/pdfrb/afm/Courier-Oblique.afm +342 -0
  16. data/data/pdfrb/afm/Courier.afm +342 -0
  17. data/data/pdfrb/afm/Helvetica-Bold.afm +2827 -0
  18. data/data/pdfrb/afm/Helvetica-BoldOblique.afm +2827 -0
  19. data/data/pdfrb/afm/Helvetica-Oblique.afm +3051 -0
  20. data/data/pdfrb/afm/Helvetica.afm +3051 -0
  21. data/data/pdfrb/afm/Symbol.afm +213 -0
  22. data/data/pdfrb/afm/Times-Bold.afm +2588 -0
  23. data/data/pdfrb/afm/Times-BoldItalic.afm +2384 -0
  24. data/data/pdfrb/afm/Times-Italic.afm +2667 -0
  25. data/data/pdfrb/afm/Times-Roman.afm +2419 -0
  26. data/data/pdfrb/afm/ZapfDingbats.afm +225 -0
  27. data/data/pdfrb/arlington/latest/3DActivation.tsv +10 -0
  28. data/data/pdfrb/arlington/latest/3DAnimationStyle.tsv +5 -0
  29. data/data/pdfrb/arlington/latest/3DBackground.tsv +6 -0
  30. data/data/pdfrb/arlington/latest/3DCrossSection.tsv +11 -0
  31. data/data/pdfrb/arlington/latest/3DLightingScheme.tsv +3 -0
  32. data/data/pdfrb/arlington/latest/3DMeasure3DC.tsv +12 -0
  33. data/data/pdfrb/arlington/latest/3DMeasureAD3.tsv +21 -0
  34. data/data/pdfrb/arlington/latest/3DMeasureLD3.tsv +18 -0
  35. data/data/pdfrb/arlington/latest/3DMeasurePD3.tsv +19 -0
  36. data/data/pdfrb/arlington/latest/3DMeasureRD3.tsv +23 -0
  37. data/data/pdfrb/arlington/latest/3DNode.tsv +9 -0
  38. data/data/pdfrb/arlington/latest/3DReference.tsv +3 -0
  39. data/data/pdfrb/arlington/latest/3DRenderMode.tsv +7 -0
  40. data/data/pdfrb/arlington/latest/3DStream.tsv +16 -0
  41. data/data/pdfrb/arlington/latest/3DUnits.tsv +10 -0
  42. data/data/pdfrb/arlington/latest/3DView.tsv +17 -0
  43. data/data/pdfrb/arlington/latest/3DViewAddEntries.tsv +19 -0
  44. data/data/pdfrb/arlington/latest/AAPL_ST.tsv +7 -0
  45. data/data/pdfrb/arlington/latest/AFEmbeddedFileParameter.tsv +6 -0
  46. data/data/pdfrb/arlington/latest/AFEmbeddedFileStream.tsv +12 -0
  47. data/data/pdfrb/arlington/latest/AFFileSpecEF.tsv +3 -0
  48. data/data/pdfrb/arlington/latest/AFFileSpecification.tsv +17 -0
  49. data/data/pdfrb/arlington/latest/ActionECMAScript.tsv +5 -0
  50. data/data/pdfrb/arlington/latest/ActionGoTo.tsv +6 -0
  51. data/data/pdfrb/arlington/latest/ActionGoTo3DView.tsv +6 -0
  52. data/data/pdfrb/arlington/latest/ActionGoToDp.tsv +5 -0
  53. data/data/pdfrb/arlington/latest/ActionGoToE.tsv +8 -0
  54. data/data/pdfrb/arlington/latest/ActionGoToR.tsv +8 -0
  55. data/data/pdfrb/arlington/latest/ActionHide.tsv +6 -0
  56. data/data/pdfrb/arlington/latest/ActionImportData.tsv +5 -0
  57. data/data/pdfrb/arlington/latest/ActionLaunch.tsv +9 -0
  58. data/data/pdfrb/arlington/latest/ActionMovie.tsv +7 -0
  59. data/data/pdfrb/arlington/latest/ActionNOP.tsv +4 -0
  60. data/data/pdfrb/arlington/latest/ActionNamed.tsv +5 -0
  61. data/data/pdfrb/arlington/latest/ActionRendition.tsv +8 -0
  62. data/data/pdfrb/arlington/latest/ActionResetForm.tsv +6 -0
  63. data/data/pdfrb/arlington/latest/ActionRichMediaExecute.tsv +7 -0
  64. data/data/pdfrb/arlington/latest/ActionSetOCGState.tsv +6 -0
  65. data/data/pdfrb/arlington/latest/ActionSetState.tsv +6 -0
  66. data/data/pdfrb/arlington/latest/ActionSound.tsv +9 -0
  67. data/data/pdfrb/arlington/latest/ActionSubmitForm.tsv +8 -0
  68. data/data/pdfrb/arlington/latest/ActionThread.tsv +7 -0
  69. data/data/pdfrb/arlington/latest/ActionTransition.tsv +5 -0
  70. data/data/pdfrb/arlington/latest/ActionURI.tsv +6 -0
  71. data/data/pdfrb/arlington/latest/AddActionCatalog.tsv +6 -0
  72. data/data/pdfrb/arlington/latest/AddActionFormField.tsv +5 -0
  73. data/data/pdfrb/arlington/latest/AddActionPageObject.tsv +3 -0
  74. data/data/pdfrb/arlington/latest/AddActionScreenAnnotation.tsv +9 -0
  75. data/data/pdfrb/arlington/latest/AddActionWidgetAnnotation.tsv +11 -0
  76. data/data/pdfrb/arlington/latest/AlternateImage.tsv +4 -0
  77. data/data/pdfrb/arlington/latest/Annot3D.tsv +27 -0
  78. data/data/pdfrb/arlington/latest/AnnotCaret.tsv +31 -0
  79. data/data/pdfrb/arlington/latest/AnnotCircle.tsv +33 -0
  80. data/data/pdfrb/arlington/latest/AnnotFileAttachment.tsv +31 -0
  81. data/data/pdfrb/arlington/latest/AnnotFreeText.tsv +37 -0
  82. data/data/pdfrb/arlington/latest/AnnotHighlight.tsv +30 -0
  83. data/data/pdfrb/arlington/latest/AnnotInk.tsv +32 -0
  84. data/data/pdfrb/arlington/latest/AnnotLine.tsv +40 -0
  85. data/data/pdfrb/arlington/latest/AnnotLink.tsv +27 -0
  86. data/data/pdfrb/arlington/latest/AnnotMovie.tsv +23 -0
  87. data/data/pdfrb/arlington/latest/AnnotPolyLine.tsv +36 -0
  88. data/data/pdfrb/arlington/latest/AnnotPolygon.tsv +36 -0
  89. data/data/pdfrb/arlington/latest/AnnotPopup.tsv +22 -0
  90. data/data/pdfrb/arlington/latest/AnnotPrinterMark.tsv +21 -0
  91. data/data/pdfrb/arlington/latest/AnnotProjection.tsv +29 -0
  92. data/data/pdfrb/arlington/latest/AnnotRedact.tsv +36 -0
  93. data/data/pdfrb/arlington/latest/AnnotRichMedia.tsv +22 -0
  94. data/data/pdfrb/arlington/latest/AnnotScreen.tsv +24 -0
  95. data/data/pdfrb/arlington/latest/AnnotSound.tsv +31 -0
  96. data/data/pdfrb/arlington/latest/AnnotSquare.tsv +33 -0
  97. data/data/pdfrb/arlington/latest/AnnotSquiggly.tsv +30 -0
  98. data/data/pdfrb/arlington/latest/AnnotStamp.tsv +30 -0
  99. data/data/pdfrb/arlington/latest/AnnotStrikeOut.tsv +30 -0
  100. data/data/pdfrb/arlington/latest/AnnotText.tsv +33 -0
  101. data/data/pdfrb/arlington/latest/AnnotTrapNetwork.tsv +24 -0
  102. data/data/pdfrb/arlington/latest/AnnotUnderline.tsv +30 -0
  103. data/data/pdfrb/arlington/latest/AnnotWatermark.tsv +21 -0
  104. data/data/pdfrb/arlington/latest/AnnotWidget.tsv +32 -0
  105. data/data/pdfrb/arlington/latest/Appearance.tsv +4 -0
  106. data/data/pdfrb/arlington/latest/AppearanceCharacteristics.tsv +12 -0
  107. data/data/pdfrb/arlington/latest/AppearancePrinterMark.tsv +4 -0
  108. data/data/pdfrb/arlington/latest/AppearancePrinterMarkSubDict.tsv +2 -0
  109. data/data/pdfrb/arlington/latest/AppearanceSubDict.tsv +2 -0
  110. data/data/pdfrb/arlington/latest/AppearanceTrapNet.tsv +4 -0
  111. data/data/pdfrb/arlington/latest/AppearanceTrapNetSubDict.tsv +2 -0
  112. data/data/pdfrb/arlington/latest/ArrayOf3DCrossSection.tsv +2 -0
  113. data/data/pdfrb/arlington/latest/ArrayOf3DMeasure.tsv +2 -0
  114. data/data/pdfrb/arlington/latest/ArrayOf3DNode.tsv +2 -0
  115. data/data/pdfrb/arlington/latest/ArrayOf3DTransMatrix.tsv +13 -0
  116. data/data/pdfrb/arlington/latest/ArrayOf3DView.tsv +2 -0
  117. data/data/pdfrb/arlington/latest/ArrayOf3DViewAddEntries.tsv +2 -0
  118. data/data/pdfrb/arlington/latest/ArrayOf3PDUNames.tsv +4 -0
  119. data/data/pdfrb/arlington/latest/ArrayOf4Functions.tsv +5 -0
  120. data/data/pdfrb/arlington/latest/ArrayOfAFFileSpecifications.tsv +3 -0
  121. data/data/pdfrb/arlington/latest/ArrayOfActionHideAnnots.tsv +2 -0
  122. data/data/pdfrb/arlington/latest/ArrayOfActions.tsv +2 -0
  123. data/data/pdfrb/arlington/latest/ArrayOfAnnotStates.tsv +2 -0
  124. data/data/pdfrb/arlington/latest/ArrayOfAnnots.tsv +2 -0
  125. data/data/pdfrb/arlington/latest/ArrayOfArraysInkList.tsv +2 -0
  126. data/data/pdfrb/arlington/latest/ArrayOfArraysPaths.tsv +3 -0
  127. data/data/pdfrb/arlington/latest/ArrayOfArraysRBGroups.tsv +2 -0
  128. data/data/pdfrb/arlington/latest/ArrayOfArraysURLStrings.tsv +2 -0
  129. data/data/pdfrb/arlington/latest/ArrayOfArraysXPTSValues.tsv +2 -0
  130. data/data/pdfrb/arlington/latest/ArrayOfAttributeObjects.tsv +2 -0
  131. data/data/pdfrb/arlington/latest/ArrayOfAttributeRevisions.tsv +3 -0
  132. data/data/pdfrb/arlington/latest/ArrayOfBeads.tsv +2 -0
  133. data/data/pdfrb/arlington/latest/ArrayOfBlendModes.tsv +2 -0
  134. data/data/pdfrb/arlington/latest/ArrayOfBooleansGeneral.tsv +2 -0
  135. data/data/pdfrb/arlington/latest/ArrayOfCIDGlyphMetricsW.tsv +2 -0
  136. data/data/pdfrb/arlington/latest/ArrayOfCIDGlyphMetricsW2.tsv +2 -0
  137. data/data/pdfrb/arlington/latest/ArrayOfCIP4_AssemblingIntent.tsv +2 -0
  138. data/data/pdfrb/arlington/latest/ArrayOfCIP4_AssemblyItem.tsv +2 -0
  139. data/data/pdfrb/arlington/latest/ArrayOfCIP4_BindIn.tsv +2 -0
  140. data/data/pdfrb/arlington/latest/ArrayOfCIP4_BindingIntent.tsv +2 -0
  141. data/data/pdfrb/arlington/latest/ArrayOfCIP4_BlowIn.tsv +2 -0
  142. data/data/pdfrb/arlington/latest/ArrayOfCIP4_ChannelUsage.tsv +2 -0
  143. data/data/pdfrb/arlington/latest/ArrayOfCIP4_Coatings.tsv +2 -0
  144. data/data/pdfrb/arlington/latest/ArrayOfCIP4_ColorIntent.tsv +2 -0
  145. data/data/pdfrb/arlington/latest/ArrayOfCIP4_ComChannel.tsv +2 -0
  146. data/data/pdfrb/arlington/latest/ArrayOfCIP4_ContactTypes.tsv +2 -0
  147. data/data/pdfrb/arlington/latest/ArrayOfCIP4_FinishedDimensions.tsv +4 -0
  148. data/data/pdfrb/arlington/latest/ArrayOfCIP4_FoldingIntent.tsv +2 -0
  149. data/data/pdfrb/arlington/latest/ArrayOfCIP4_HoleMakingIntent.tsv +2 -0
  150. data/data/pdfrb/arlington/latest/ArrayOfCIP4_HolePattern.tsv +2 -0
  151. data/data/pdfrb/arlington/latest/ArrayOfCIP4_LABColorValue.tsv +4 -0
  152. data/data/pdfrb/arlington/latest/ArrayOfCIP4_LayoutIntent.tsv +2 -0
  153. data/data/pdfrb/arlington/latest/ArrayOfCIP4_MediaIntent.tsv +2 -0
  154. data/data/pdfrb/arlington/latest/ArrayOfCIP4_PrintProcess.tsv +2 -0
  155. data/data/pdfrb/arlington/latest/ArrayOfCIP4_ProductionIntent.tsv +2 -0
  156. data/data/pdfrb/arlington/latest/ArrayOfCIP4_Resource.tsv +2 -0
  157. data/data/pdfrb/arlington/latest/ArrayOfCIP4_StickOn.tsv +2 -0
  158. data/data/pdfrb/arlington/latest/ArrayOfClassNamesRevisions.tsv +3 -0
  159. data/data/pdfrb/arlington/latest/ArrayOfCompressionFilterNames.tsv +2 -0
  160. data/data/pdfrb/arlington/latest/ArrayOfDPartArrays.tsv +2 -0
  161. data/data/pdfrb/arlington/latest/ArrayOfDParts.tsv +2 -0
  162. data/data/pdfrb/arlington/latest/ArrayOfDashPatterns.tsv +2 -0
  163. data/data/pdfrb/arlington/latest/ArrayOfDecodeParams.tsv +2 -0
  164. data/data/pdfrb/arlington/latest/ArrayOfDescendantFonts.tsv +2 -0
  165. data/data/pdfrb/arlington/latest/ArrayOfDevExtensions.tsv +2 -0
  166. data/data/pdfrb/arlington/latest/ArrayOfDifferences.tsv +2 -0
  167. data/data/pdfrb/arlington/latest/ArrayOfDigestMethod.tsv +2 -0
  168. data/data/pdfrb/arlington/latest/ArrayOfDuration.tsv +3 -0
  169. data/data/pdfrb/arlington/latest/ArrayOfFieldChoiceOpt.tsv +2 -0
  170. data/data/pdfrb/arlington/latest/ArrayOfFieldID.tsv +2 -0
  171. data/data/pdfrb/arlington/latest/ArrayOfFields.tsv +2 -0
  172. data/data/pdfrb/arlington/latest/ArrayOfFileSpecifications.tsv +3 -0
  173. data/data/pdfrb/arlington/latest/ArrayOfFilterNames.tsv +2 -0
  174. data/data/pdfrb/arlington/latest/ArrayOfFontAndSize.tsv +3 -0
  175. data/data/pdfrb/arlington/latest/ArrayOfFonts.tsv +2 -0
  176. data/data/pdfrb/arlington/latest/ArrayOfFunctions.tsv +2 -0
  177. data/data/pdfrb/arlington/latest/ArrayOfGSPDashPatterns.tsv +3 -0
  178. data/data/pdfrb/arlington/latest/ArrayOfImageAlternates.tsv +2 -0
  179. data/data/pdfrb/arlington/latest/ArrayOfIndirectFileSpecifications.tsv +2 -0
  180. data/data/pdfrb/arlington/latest/ArrayOfIntegersGeneral.tsv +2 -0
  181. data/data/pdfrb/arlington/latest/ArrayOfIntegersGreaterThanZero.tsv +2 -0
  182. data/data/pdfrb/arlington/latest/ArrayOfMediaPlayerInfo.tsv +2 -0
  183. data/data/pdfrb/arlington/latest/ArrayOfNamesForEnforce.tsv +2 -0
  184. data/data/pdfrb/arlington/latest/ArrayOfNamesForPrintingOrder.tsv +2 -0
  185. data/data/pdfrb/arlington/latest/ArrayOfNamesForProcSet.tsv +2 -0
  186. data/data/pdfrb/arlington/latest/ArrayOfNamesGeneral.tsv +2 -0
  187. data/data/pdfrb/arlington/latest/ArrayOfNamesInPtData.tsv +2 -0
  188. data/data/pdfrb/arlington/latest/ArrayOfNamespace.tsv +2 -0
  189. data/data/pdfrb/arlington/latest/ArrayOfNavigatorLayoutNames.tsv +2 -0
  190. data/data/pdfrb/arlington/latest/ArrayOfNonNegativeIntegersGeneral.tsv +2 -0
  191. data/data/pdfrb/arlington/latest/ArrayOfNumberFormats.tsv +2 -0
  192. data/data/pdfrb/arlington/latest/ArrayOfNumbersGeneral.tsv +2 -0
  193. data/data/pdfrb/arlington/latest/ArrayOfOCConfig.tsv +2 -0
  194. data/data/pdfrb/arlington/latest/ArrayOfOCG.tsv +2 -0
  195. data/data/pdfrb/arlington/latest/ArrayOfOCGState.tsv +2 -0
  196. data/data/pdfrb/arlington/latest/ArrayOfOCGindirect.tsv +2 -0
  197. data/data/pdfrb/arlington/latest/ArrayOfOCUsage.tsv +2 -0
  198. data/data/pdfrb/arlington/latest/ArrayOfOPI13Color.tsv +6 -0
  199. data/data/pdfrb/arlington/latest/ArrayOfOPI2Inks.tsv +4 -0
  200. data/data/pdfrb/arlington/latest/ArrayOfOptContentGroups.tsv +2 -0
  201. data/data/pdfrb/arlington/latest/ArrayOfOptContentOrderElements.tsv +2 -0
  202. data/data/pdfrb/arlington/latest/ArrayOfOptContentOrders.tsv +3 -0
  203. data/data/pdfrb/arlington/latest/ArrayOfOutputIntents.tsv +2 -0
  204. data/data/pdfrb/arlington/latest/ArrayOfPageTreeNodeKids.tsv +2 -0
  205. data/data/pdfrb/arlington/latest/ArrayOfPages.tsv +2 -0
  206. data/data/pdfrb/arlington/latest/ArrayOfPaths.tsv +7 -0
  207. data/data/pdfrb/arlington/latest/ArrayOfQuadPoints.tsv +9 -0
  208. data/data/pdfrb/arlington/latest/ArrayOfRenditions.tsv +2 -0
  209. data/data/pdfrb/arlington/latest/ArrayOfRequirements.tsv +2 -0
  210. data/data/pdfrb/arlington/latest/ArrayOfRequirementsHandlers.tsv +2 -0
  211. data/data/pdfrb/arlington/latest/ArrayOfRichMediaConfiguration.tsv +2 -0
  212. data/data/pdfrb/arlington/latest/ArrayOfRichMediaCuePoints.tsv +2 -0
  213. data/data/pdfrb/arlington/latest/ArrayOfRichMediaInstances.tsv +2 -0
  214. data/data/pdfrb/arlington/latest/ArrayOfSignatureReferences.tsv +2 -0
  215. data/data/pdfrb/arlington/latest/ArrayOfSignatureSubFilterNames.tsv +2 -0
  216. data/data/pdfrb/arlington/latest/ArrayOfSoftwareIdentifiers.tsv +2 -0
  217. data/data/pdfrb/arlington/latest/ArrayOfSoftwareVersions.tsv +2 -0
  218. data/data/pdfrb/arlington/latest/ArrayOfSourceInformation.tsv +2 -0
  219. data/data/pdfrb/arlington/latest/ArrayOfStreamsGeneral.tsv +2 -0
  220. data/data/pdfrb/arlington/latest/ArrayOfStringsASCII.tsv +2 -0
  221. data/data/pdfrb/arlington/latest/ArrayOfStringsByte.tsv +2 -0
  222. data/data/pdfrb/arlington/latest/ArrayOfStringsText.tsv +2 -0
  223. data/data/pdfrb/arlington/latest/ArrayOfStringsTextOrNames.tsv +2 -0
  224. data/data/pdfrb/arlington/latest/ArrayOfStructElem.tsv +2 -0
  225. data/data/pdfrb/arlington/latest/ArrayOfStructElemKids.tsv +2 -0
  226. data/data/pdfrb/arlington/latest/ArrayOfStructElemParentTree.tsv +2 -0
  227. data/data/pdfrb/arlington/latest/ArrayOfSubjectDN.tsv +2 -0
  228. data/data/pdfrb/arlington/latest/ArrayOfTags.tsv +3 -0
  229. data/data/pdfrb/arlington/latest/ArrayOfThreads.tsv +2 -0
  230. data/data/pdfrb/arlington/latest/ArrayOfTrapNetVersionObjects.tsv +2 -0
  231. data/data/pdfrb/arlington/latest/ArrayOfTrapRegions.tsv +2 -0
  232. data/data/pdfrb/arlington/latest/ArrayOfURLStrings.tsv +2 -0
  233. data/data/pdfrb/arlington/latest/ArrayOfURLs.tsv +2 -0
  234. data/data/pdfrb/arlington/latest/ArrayOfUserProperty.tsv +2 -0
  235. data/data/pdfrb/arlington/latest/ArrayOfViewParams.tsv +2 -0
  236. data/data/pdfrb/arlington/latest/ArrayOfViewports.tsv +2 -0
  237. data/data/pdfrb/arlington/latest/ArrayOfWebCaptureCommands.tsv +2 -0
  238. data/data/pdfrb/arlington/latest/ArrayOfWebCaptureImages.tsv +2 -0
  239. data/data/pdfrb/arlington/latest/ArrayOfWebCapturePages.tsv +2 -0
  240. data/data/pdfrb/arlington/latest/ArrayOfXFA.tsv +3 -0
  241. data/data/pdfrb/arlington/latest/ArrayOfXPTSValues.tsv +2 -0
  242. data/data/pdfrb/arlington/latest/ArrayOfXRefIndexIntegers.tsv +3 -0
  243. data/data/pdfrb/arlington/latest/ArrayOfXRefWIntegers.tsv +4 -0
  244. data/data/pdfrb/arlington/latest/ArrayOf_2Booleans.tsv +3 -0
  245. data/data/pdfrb/arlington/latest/ArrayOf_2DashNumbers.tsv +3 -0
  246. data/data/pdfrb/arlington/latest/ArrayOf_2Integers.tsv +3 -0
  247. data/data/pdfrb/arlington/latest/ArrayOf_2LineEndingsNames.tsv +3 -0
  248. data/data/pdfrb/arlington/latest/ArrayOf_2NonNegativeIntegers.tsv +3 -0
  249. data/data/pdfrb/arlington/latest/ArrayOf_2Numbers.tsv +3 -0
  250. data/data/pdfrb/arlington/latest/ArrayOf_2StringsByte.tsv +3 -0
  251. data/data/pdfrb/arlington/latest/ArrayOf_2StringsText.tsv +3 -0
  252. data/data/pdfrb/arlington/latest/ArrayOf_3CenterOfRotationNumbers.tsv +4 -0
  253. data/data/pdfrb/arlington/latest/ArrayOf_3NonNegativeIntegers.tsv +4 -0
  254. data/data/pdfrb/arlington/latest/ArrayOf_3Numbers.tsv +4 -0
  255. data/data/pdfrb/arlington/latest/ArrayOf_3OrientationNumbers.tsv +4 -0
  256. data/data/pdfrb/arlington/latest/ArrayOf_3RGBNumbers.tsv +4 -0
  257. data/data/pdfrb/arlington/latest/ArrayOf_3or4CalloutLineNumbers.tsv +7 -0
  258. data/data/pdfrb/arlington/latest/ArrayOf_4AnnotBorderCharacteristics.tsv +5 -0
  259. data/data/pdfrb/arlington/latest/ArrayOf_4BorderColorArrays.tsv +5 -0
  260. data/data/pdfrb/arlington/latest/ArrayOf_4BorderStyleNames.tsv +5 -0
  261. data/data/pdfrb/arlington/latest/ArrayOf_4BorderThicknessNumbers.tsv +5 -0
  262. data/data/pdfrb/arlington/latest/ArrayOf_4ColourSpaceEntries.tsv +5 -0
  263. data/data/pdfrb/arlington/latest/ArrayOf_4Integers.tsv +5 -0
  264. data/data/pdfrb/arlington/latest/ArrayOf_4Numbers.tsv +5 -0
  265. data/data/pdfrb/arlington/latest/ArrayOf_4NumbersColorAnnotation.tsv +5 -0
  266. data/data/pdfrb/arlington/latest/ArrayOf_6Numbers.tsv +7 -0
  267. data/data/pdfrb/arlington/latest/ArrayOf_8Numbers.tsv +9 -0
  268. data/data/pdfrb/arlington/latest/ArrayOf_9Numbers.tsv +10 -0
  269. data/data/pdfrb/arlington/latest/ArrayOf_ArrayOfNumbers.tsv +2 -0
  270. data/data/pdfrb/arlington/latest/ArrayOf_RoleMapNS.tsv +3 -0
  271. data/data/pdfrb/arlington/latest/AuthCode.tsv +5 -0
  272. data/data/pdfrb/arlington/latest/Bead.tsv +7 -0
  273. data/data/pdfrb/arlington/latest/BeadFirst.tsv +7 -0
  274. data/data/pdfrb/arlington/latest/BlackpointArray.tsv +4 -0
  275. data/data/pdfrb/arlington/latest/BorderEffect.tsv +3 -0
  276. data/data/pdfrb/arlington/latest/BorderStyle.tsv +5 -0
  277. data/data/pdfrb/arlington/latest/BoxColorInfo.tsv +5 -0
  278. data/data/pdfrb/arlington/latest/BoxStyle.tsv +5 -0
  279. data/data/pdfrb/arlington/latest/CIDFontDescriptorMetrics.tsv +17 -0
  280. data/data/pdfrb/arlington/latest/CIDSystemInfo.tsv +4 -0
  281. data/data/pdfrb/arlington/latest/CIP4_Address.tsv +13 -0
  282. data/data/pdfrb/arlington/latest/CIP4_AssemblingIntent.tsv +7 -0
  283. data/data/pdfrb/arlington/latest/CIP4_AssemblyItem.tsv +3 -0
  284. data/data/pdfrb/arlington/latest/CIP4_BindIn.tsv +3 -0
  285. data/data/pdfrb/arlington/latest/CIP4_BindingIntent.tsv +6 -0
  286. data/data/pdfrb/arlington/latest/CIP4_BlowIn.tsv +3 -0
  287. data/data/pdfrb/arlington/latest/CIP4_ColorIntent.tsv +3 -0
  288. data/data/pdfrb/arlington/latest/CIP4_ComChannel.tsv +6 -0
  289. data/data/pdfrb/arlington/latest/CIP4_Company.tsv +5 -0
  290. data/data/pdfrb/arlington/latest/CIP4_Contact.tsv +8 -0
  291. data/data/pdfrb/arlington/latest/CIP4_FoldingIntent.tsv +4 -0
  292. data/data/pdfrb/arlington/latest/CIP4_HoleMakingIntent.tsv +3 -0
  293. data/data/pdfrb/arlington/latest/CIP4_HolePattern.tsv +4 -0
  294. data/data/pdfrb/arlington/latest/CIP4_Intent.tsv +11 -0
  295. data/data/pdfrb/arlington/latest/CIP4_IntentSummary.tsv +10 -0
  296. data/data/pdfrb/arlington/latest/CIP4_LayoutIntent.tsv +5 -0
  297. data/data/pdfrb/arlington/latest/CIP4_MediaIntent.tsv +11 -0
  298. data/data/pdfrb/arlington/latest/CIP4_Metadata.tsv +11 -0
  299. data/data/pdfrb/arlington/latest/CIP4_Person.tsv +10 -0
  300. data/data/pdfrb/arlington/latest/CIP4_Production.tsv +5 -0
  301. data/data/pdfrb/arlington/latest/CIP4_ProductionIntent.tsv +4 -0
  302. data/data/pdfrb/arlington/latest/CIP4_Recipient.tsv +3 -0
  303. data/data/pdfrb/arlington/latest/CIP4_Root.tsv +9 -0
  304. data/data/pdfrb/arlington/latest/CIP4_SaddleStitching.tsv +3 -0
  305. data/data/pdfrb/arlington/latest/CIP4_SideStitching.tsv +3 -0
  306. data/data/pdfrb/arlington/latest/CIP4_StickOn.tsv +3 -0
  307. data/data/pdfrb/arlington/latest/CMapStream.tsv +13 -0
  308. data/data/pdfrb/arlington/latest/CalGrayColorSpace.tsv +3 -0
  309. data/data/pdfrb/arlington/latest/CalGrayDict.tsv +4 -0
  310. data/data/pdfrb/arlington/latest/CalRGBColorSpace.tsv +3 -0
  311. data/data/pdfrb/arlington/latest/CalRGBDict.tsv +5 -0
  312. data/data/pdfrb/arlington/latest/Catalog.tsv +33 -0
  313. data/data/pdfrb/arlington/latest/CertSeedValue.tsv +14 -0
  314. data/data/pdfrb/arlington/latest/CharProcMap.tsv +2 -0
  315. data/data/pdfrb/arlington/latest/ClassMap.tsv +2 -0
  316. data/data/pdfrb/arlington/latest/Collection.tsv +11 -0
  317. data/data/pdfrb/arlington/latest/CollectionColors.tsv +7 -0
  318. data/data/pdfrb/arlington/latest/CollectionField.tsv +7 -0
  319. data/data/pdfrb/arlington/latest/CollectionFolder.tsv +13 -0
  320. data/data/pdfrb/arlington/latest/CollectionItem.tsv +3 -0
  321. data/data/pdfrb/arlington/latest/CollectionSchema.tsv +3 -0
  322. data/data/pdfrb/arlington/latest/CollectionSort.tsv +4 -0
  323. data/data/pdfrb/arlington/latest/CollectionSplit.tsv +4 -0
  324. data/data/pdfrb/arlington/latest/CollectionSubitem.tsv +4 -0
  325. data/data/pdfrb/arlington/latest/ColorSpaceMap.tsv +5 -0
  326. data/data/pdfrb/arlington/latest/ColorantsDict.tsv +2 -0
  327. data/data/pdfrb/arlington/latest/CryptFilter.tsv +5 -0
  328. data/data/pdfrb/arlington/latest/CryptFilterMap.tsv +4 -0
  329. data/data/pdfrb/arlington/latest/CryptFilterPublicKey.tsv +7 -0
  330. data/data/pdfrb/arlington/latest/CryptFilterPublicKeyMap.tsv +4 -0
  331. data/data/pdfrb/arlington/latest/DPM.tsv +5 -0
  332. data/data/pdfrb/arlington/latest/DPart.tsv +8 -0
  333. data/data/pdfrb/arlington/latest/DPartRoot.tsv +5 -0
  334. data/data/pdfrb/arlington/latest/DSS.tsv +6 -0
  335. data/data/pdfrb/arlington/latest/Data.tsv +4 -0
  336. data/data/pdfrb/arlington/latest/Dest0Array.tsv +3 -0
  337. data/data/pdfrb/arlington/latest/Dest0StructArray.tsv +3 -0
  338. data/data/pdfrb/arlington/latest/Dest1Array.tsv +4 -0
  339. data/data/pdfrb/arlington/latest/Dest1StructArray.tsv +4 -0
  340. data/data/pdfrb/arlington/latest/Dest4Array.tsv +7 -0
  341. data/data/pdfrb/arlington/latest/Dest4StructArray.tsv +7 -0
  342. data/data/pdfrb/arlington/latest/DestDict.tsv +3 -0
  343. data/data/pdfrb/arlington/latest/DestOutputProfileRef.tsv +7 -0
  344. data/data/pdfrb/arlington/latest/DestXYZArray.tsv +6 -0
  345. data/data/pdfrb/arlington/latest/DestXYZStructArray.tsv +6 -0
  346. data/data/pdfrb/arlington/latest/DestsMap.tsv +2 -0
  347. data/data/pdfrb/arlington/latest/DevExtensions.tsv +6 -0
  348. data/data/pdfrb/arlington/latest/DeviceCMYKColorSpace.tsv +2 -0
  349. data/data/pdfrb/arlington/latest/DeviceGrayColorSpace.tsv +2 -0
  350. data/data/pdfrb/arlington/latest/DeviceNColorSpace.tsv +6 -0
  351. data/data/pdfrb/arlington/latest/DeviceNDict.tsv +5 -0
  352. data/data/pdfrb/arlington/latest/DeviceNMixingHints.tsv +4 -0
  353. data/data/pdfrb/arlington/latest/DeviceNProcess.tsv +3 -0
  354. data/data/pdfrb/arlington/latest/DeviceRGBColorSpace.tsv +2 -0
  355. data/data/pdfrb/arlington/latest/DictionaryOfDictionaries.tsv +2 -0
  356. data/data/pdfrb/arlington/latest/DictionaryOfFunctions.tsv +3 -0
  357. data/data/pdfrb/arlington/latest/DocInfo.tsv +13 -0
  358. data/data/pdfrb/arlington/latest/DocMDPTransformParameters.tsv +4 -0
  359. data/data/pdfrb/arlington/latest/DocTimeStamp.tsv +19 -0
  360. data/data/pdfrb/arlington/latest/EmbeddedFileParameter.tsv +6 -0
  361. data/data/pdfrb/arlington/latest/EmbeddedFileStream.tsv +12 -0
  362. data/data/pdfrb/arlington/latest/Encoding.tsv +4 -0
  363. data/data/pdfrb/arlington/latest/EncryptedPayload.tsv +4 -0
  364. data/data/pdfrb/arlington/latest/EncryptionPublicKey.tsv +13 -0
  365. data/data/pdfrb/arlington/latest/EncryptionStandard.tsv +18 -0
  366. data/data/pdfrb/arlington/latest/ExData3DMarkup.tsv +6 -0
  367. data/data/pdfrb/arlington/latest/ExDataMarkupGeo.tsv +3 -0
  368. data/data/pdfrb/arlington/latest/ExDataProjection.tsv +4 -0
  369. data/data/pdfrb/arlington/latest/Extensions.tsv +5 -0
  370. data/data/pdfrb/arlington/latest/FDDict.tsv +2 -0
  371. data/data/pdfrb/arlington/latest/Field.tsv +8 -0
  372. data/data/pdfrb/arlington/latest/FieldBtnCheckbox.tsv +16 -0
  373. data/data/pdfrb/arlington/latest/FieldBtnPush.tsv +15 -0
  374. data/data/pdfrb/arlington/latest/FieldBtnRadio.tsv +16 -0
  375. data/data/pdfrb/arlington/latest/FieldChoice.tsv +18 -0
  376. data/data/pdfrb/arlington/latest/FieldMDPTransformParameters.tsv +5 -0
  377. data/data/pdfrb/arlington/latest/FieldSig.tsv +17 -0
  378. data/data/pdfrb/arlington/latest/FieldTx.tsv +16 -0
  379. data/data/pdfrb/arlington/latest/FileSpecEF.tsv +3 -0
  380. data/data/pdfrb/arlington/latest/FileSpecRF.tsv +3 -0
  381. data/data/pdfrb/arlington/latest/FileSpecification.tsv +17 -0
  382. data/data/pdfrb/arlington/latest/FileTrailer.tsv +11 -0
  383. data/data/pdfrb/arlington/latest/FilterCCITTFaxDecode.tsv +10 -0
  384. data/data/pdfrb/arlington/latest/FilterCrypt.tsv +3 -0
  385. data/data/pdfrb/arlington/latest/FilterDCTDecode.tsv +2 -0
  386. data/data/pdfrb/arlington/latest/FilterFlateDecode.tsv +5 -0
  387. data/data/pdfrb/arlington/latest/FilterJBIG2Decode.tsv +2 -0
  388. data/data/pdfrb/arlington/latest/FilterLZWDecode.tsv +6 -0
  389. data/data/pdfrb/arlington/latest/FixedPrint.tsv +5 -0
  390. data/data/pdfrb/arlington/latest/FloatingWindowParameters.tsv +10 -0
  391. data/data/pdfrb/arlington/latest/FontCIDType0.tsv +12 -0
  392. data/data/pdfrb/arlington/latest/FontCIDType2.tsv +12 -0
  393. data/data/pdfrb/arlington/latest/FontDescriptorCIDType0.tsv +25 -0
  394. data/data/pdfrb/arlington/latest/FontDescriptorCIDType2.tsv +26 -0
  395. data/data/pdfrb/arlington/latest/FontDescriptorTrueType.tsv +22 -0
  396. data/data/pdfrb/arlington/latest/FontDescriptorType1.tsv +22 -0
  397. data/data/pdfrb/arlington/latest/FontDescriptorType3.tsv +19 -0
  398. data/data/pdfrb/arlington/latest/FontFile.tsv +13 -0
  399. data/data/pdfrb/arlington/latest/FontFile2.tsv +13 -0
  400. data/data/pdfrb/arlington/latest/FontFile3CIDType0.tsv +13 -0
  401. data/data/pdfrb/arlington/latest/FontFile3OpenType.tsv +13 -0
  402. data/data/pdfrb/arlington/latest/FontFile3Type1.tsv +13 -0
  403. data/data/pdfrb/arlington/latest/FontFileType1.tsv +13 -0
  404. data/data/pdfrb/arlington/latest/FontMap.tsv +2 -0
  405. data/data/pdfrb/arlington/latest/FontMultipleMaster.tsv +11 -0
  406. data/data/pdfrb/arlington/latest/FontTrueType.tsv +11 -0
  407. data/data/pdfrb/arlington/latest/FontType0.tsv +7 -0
  408. data/data/pdfrb/arlington/latest/FontType1.tsv +11 -0
  409. data/data/pdfrb/arlington/latest/FontType3.tsv +14 -0
  410. data/data/pdfrb/arlington/latest/FunctionType0.tsv +16 -0
  411. data/data/pdfrb/arlington/latest/FunctionType2.tsv +7 -0
  412. data/data/pdfrb/arlington/latest/FunctionType3.tsv +7 -0
  413. data/data/pdfrb/arlington/latest/FunctionType4.tsv +11 -0
  414. data/data/pdfrb/arlington/latest/GTS_ProcStepsGroup.tsv +4 -0
  415. data/data/pdfrb/arlington/latest/GTSm_DevExtensions.tsv +6 -0
  416. data/data/pdfrb/arlington/latest/GammaArray.tsv +4 -0
  417. data/data/pdfrb/arlington/latest/GeographicCoordinateSystem.tsv +4 -0
  418. data/data/pdfrb/arlington/latest/GraphicsStateParameter.tsv +33 -0
  419. data/data/pdfrb/arlington/latest/GraphicsStateParameterMap.tsv +2 -0
  420. data/data/pdfrb/arlington/latest/GroupAttributes.tsv +6 -0
  421. data/data/pdfrb/arlington/latest/HalftoneType1.tsv +9 -0
  422. data/data/pdfrb/arlington/latest/HalftoneType10.tsv +14 -0
  423. data/data/pdfrb/arlington/latest/HalftoneType16.tsv +16 -0
  424. data/data/pdfrb/arlington/latest/HalftoneType5.tsv +6 -0
  425. data/data/pdfrb/arlington/latest/HalftoneType6.tsv +14 -0
  426. data/data/pdfrb/arlington/latest/ICCBasedColorSpace.tsv +3 -0
  427. data/data/pdfrb/arlington/latest/ICCProfileStream.tsv +12 -0
  428. data/data/pdfrb/arlington/latest/ISO_DevExtensions.tsv +6 -0
  429. data/data/pdfrb/arlington/latest/IconFit.tsv +5 -0
  430. data/data/pdfrb/arlington/latest/IndexedColorSpace.tsv +5 -0
  431. data/data/pdfrb/arlington/latest/InteractiveForm.tsv +9 -0
  432. data/data/pdfrb/arlington/latest/LabColorSpace.tsv +3 -0
  433. data/data/pdfrb/arlington/latest/LabDict.tsv +4 -0
  434. data/data/pdfrb/arlington/latest/LabRangeArray.tsv +5 -0
  435. data/data/pdfrb/arlington/latest/LegalAttestation.tsv +23 -0
  436. data/data/pdfrb/arlington/latest/LinearizationParameterDict.tsv +9 -0
  437. data/data/pdfrb/arlington/latest/MDPDict.tsv +2 -0
  438. data/data/pdfrb/arlington/latest/Mac.tsv +4 -0
  439. data/data/pdfrb/arlington/latest/MarkInfo.tsv +4 -0
  440. data/data/pdfrb/arlington/latest/MarkedContentReference.tsv +6 -0
  441. data/data/pdfrb/arlington/latest/MeasureGEO.tsv +10 -0
  442. data/data/pdfrb/arlington/latest/MeasureRL.tsv +12 -0
  443. data/data/pdfrb/arlington/latest/MediaClipData.tsv +11 -0
  444. data/data/pdfrb/arlington/latest/MediaClipDataMHBE.tsv +2 -0
  445. data/data/pdfrb/arlington/latest/MediaClipSection.tsv +8 -0
  446. data/data/pdfrb/arlington/latest/MediaClipSectionMHBE.tsv +3 -0
  447. data/data/pdfrb/arlington/latest/MediaCriteria.tsv +12 -0
  448. data/data/pdfrb/arlington/latest/MediaDuration.tsv +4 -0
  449. data/data/pdfrb/arlington/latest/MediaOffsetFrame.tsv +4 -0
  450. data/data/pdfrb/arlington/latest/MediaOffsetMarker.tsv +4 -0
  451. data/data/pdfrb/arlington/latest/MediaOffsetTime.tsv +4 -0
  452. data/data/pdfrb/arlington/latest/MediaPermissions.tsv +3 -0
  453. data/data/pdfrb/arlington/latest/MediaPlayParameters.tsv +5 -0
  454. data/data/pdfrb/arlington/latest/MediaPlayParametersBE.tsv +7 -0
  455. data/data/pdfrb/arlington/latest/MediaPlayParametersMH.tsv +7 -0
  456. data/data/pdfrb/arlington/latest/MediaPlayerInfo.tsv +5 -0
  457. data/data/pdfrb/arlington/latest/MediaPlayers.tsv +5 -0
  458. data/data/pdfrb/arlington/latest/MediaScreenParameters.tsv +4 -0
  459. data/data/pdfrb/arlington/latest/MediaScreenParametersMHBE.tsv +6 -0
  460. data/data/pdfrb/arlington/latest/Metadata.tsv +10 -0
  461. data/data/pdfrb/arlington/latest/MicrosoftWindowsLaunchParam.tsv +5 -0
  462. data/data/pdfrb/arlington/latest/MinimumBitDepth.tsv +4 -0
  463. data/data/pdfrb/arlington/latest/MinimumScreenSize.tsv +4 -0
  464. data/data/pdfrb/arlington/latest/Movie.tsv +5 -0
  465. data/data/pdfrb/arlington/latest/MovieActivation.tsv +10 -0
  466. data/data/pdfrb/arlington/latest/Name.tsv +12 -0
  467. data/data/pdfrb/arlington/latest/Namespace.tsv +5 -0
  468. data/data/pdfrb/arlington/latest/NavNode.tsv +7 -0
  469. data/data/pdfrb/arlington/latest/Navigator.tsv +16 -0
  470. data/data/pdfrb/arlington/latest/NumberFormat.tsv +12 -0
  471. data/data/pdfrb/arlington/latest/OOAdditionalStmsArray.tsv +3 -0
  472. data/data/pdfrb/arlington/latest/OPIVersion13.tsv +2 -0
  473. data/data/pdfrb/arlington/latest/OPIVersion13Dict.tsv +19 -0
  474. data/data/pdfrb/arlington/latest/OPIVersion20.tsv +2 -0
  475. data/data/pdfrb/arlington/latest/OPIVersion20Dict.tsv +12 -0
  476. data/data/pdfrb/arlington/latest/ObjectReference.tsv +4 -0
  477. data/data/pdfrb/arlington/latest/ObjectStream.tsv +12 -0
  478. data/data/pdfrb/arlington/latest/OptContentConfig.tsv +12 -0
  479. data/data/pdfrb/arlington/latest/OptContentCreatorInfo.tsv +4 -0
  480. data/data/pdfrb/arlington/latest/OptContentExport.tsv +2 -0
  481. data/data/pdfrb/arlington/latest/OptContentGroup.tsv +6 -0
  482. data/data/pdfrb/arlington/latest/OptContentLanguage.tsv +3 -0
  483. data/data/pdfrb/arlington/latest/OptContentMembership.tsv +5 -0
  484. data/data/pdfrb/arlington/latest/OptContentPageElement.tsv +2 -0
  485. data/data/pdfrb/arlington/latest/OptContentPrint.tsv +3 -0
  486. data/data/pdfrb/arlington/latest/OptContentProperties.tsv +4 -0
  487. data/data/pdfrb/arlington/latest/OptContentUsage.tsv +9 -0
  488. data/data/pdfrb/arlington/latest/OptContentUsageApplication.tsv +4 -0
  489. data/data/pdfrb/arlington/latest/OptContentUser.tsv +3 -0
  490. data/data/pdfrb/arlington/latest/OptContentView.tsv +2 -0
  491. data/data/pdfrb/arlington/latest/OptContentZoom.tsv +3 -0
  492. data/data/pdfrb/arlington/latest/Outline.tsv +5 -0
  493. data/data/pdfrb/arlington/latest/OutlineItem.tsv +13 -0
  494. data/data/pdfrb/arlington/latest/OutputIntents.tsv +11 -0
  495. data/data/pdfrb/arlington/latest/PageLabel.tsv +5 -0
  496. data/data/pdfrb/arlington/latest/PageObject.tsv +35 -0
  497. data/data/pdfrb/arlington/latest/PagePiece.tsv +2 -0
  498. data/data/pdfrb/arlington/latest/PageTreeNode.tsv +9 -0
  499. data/data/pdfrb/arlington/latest/PageTreeNodeRoot.tsv +8 -0
  500. data/data/pdfrb/arlington/latest/PaperMetaData.tsv +13 -0
  501. data/data/pdfrb/arlington/latest/PatternColorSpace.tsv +3 -0
  502. data/data/pdfrb/arlington/latest/PatternMap.tsv +2 -0
  503. data/data/pdfrb/arlington/latest/PatternType1.tsv +18 -0
  504. data/data/pdfrb/arlington/latest/PatternType2.tsv +6 -0
  505. data/data/pdfrb/arlington/latest/Permissions.tsv +3 -0
  506. data/data/pdfrb/arlington/latest/PointData.tsv +5 -0
  507. data/data/pdfrb/arlington/latest/ProjectedCoordinateSystem.tsv +4 -0
  508. data/data/pdfrb/arlington/latest/Projection.tsv +9 -0
  509. data/data/pdfrb/arlington/latest/Reference.tsv +4 -0
  510. data/data/pdfrb/arlington/latest/RelatedFilesArray.tsv +3 -0
  511. data/data/pdfrb/arlington/latest/RenditionBE.tsv +2 -0
  512. data/data/pdfrb/arlington/latest/RenditionMH.tsv +2 -0
  513. data/data/pdfrb/arlington/latest/RenditionMedia.tsv +9 -0
  514. data/data/pdfrb/arlington/latest/RenditionSelector.tsv +7 -0
  515. data/data/pdfrb/arlington/latest/Requirements3DMarkup.tsv +6 -0
  516. data/data/pdfrb/arlington/latest/RequirementsAcroFormInteract.tsv +6 -0
  517. data/data/pdfrb/arlington/latest/RequirementsAction.tsv +6 -0
  518. data/data/pdfrb/arlington/latest/RequirementsAttachment.tsv +6 -0
  519. data/data/pdfrb/arlington/latest/RequirementsAttachmentEditing.tsv +6 -0
  520. data/data/pdfrb/arlington/latest/RequirementsCollection.tsv +6 -0
  521. data/data/pdfrb/arlington/latest/RequirementsCollectionEditing.tsv +6 -0
  522. data/data/pdfrb/arlington/latest/RequirementsDPartInteract.tsv +6 -0
  523. data/data/pdfrb/arlington/latest/RequirementsDigSig.tsv +7 -0
  524. data/data/pdfrb/arlington/latest/RequirementsDigSigMDP.tsv +7 -0
  525. data/data/pdfrb/arlington/latest/RequirementsDigSigValidation.tsv +7 -0
  526. data/data/pdfrb/arlington/latest/RequirementsEnableJavaScripts.tsv +6 -0
  527. data/data/pdfrb/arlington/latest/RequirementsEncryption.tsv +7 -0
  528. data/data/pdfrb/arlington/latest/RequirementsGeospatial2D.tsv +6 -0
  529. data/data/pdfrb/arlington/latest/RequirementsGeospatial3D.tsv +6 -0
  530. data/data/pdfrb/arlington/latest/RequirementsHandler.tsv +4 -0
  531. data/data/pdfrb/arlington/latest/RequirementsMarkup.tsv +6 -0
  532. data/data/pdfrb/arlington/latest/RequirementsMultimedia.tsv +6 -0
  533. data/data/pdfrb/arlington/latest/RequirementsNavigation.tsv +6 -0
  534. data/data/pdfrb/arlington/latest/RequirementsOCAutoStates.tsv +6 -0
  535. data/data/pdfrb/arlington/latest/RequirementsOCInteract.tsv +6 -0
  536. data/data/pdfrb/arlington/latest/RequirementsPRC.tsv +6 -0
  537. data/data/pdfrb/arlington/latest/RequirementsRichMedia.tsv +6 -0
  538. data/data/pdfrb/arlington/latest/RequirementsSTEP.tsv +6 -0
  539. data/data/pdfrb/arlington/latest/RequirementsSeparationSimulation.tsv +6 -0
  540. data/data/pdfrb/arlington/latest/RequirementsTransitions.tsv +6 -0
  541. data/data/pdfrb/arlington/latest/RequirementsU3D.tsv +6 -0
  542. data/data/pdfrb/arlington/latest/RequirementsglTF.tsv +6 -0
  543. data/data/pdfrb/arlington/latest/Resource.tsv +10 -0
  544. data/data/pdfrb/arlington/latest/RichMediaActivation.tsv +8 -0
  545. data/data/pdfrb/arlington/latest/RichMediaAnimation.tsv +6 -0
  546. data/data/pdfrb/arlington/latest/RichMediaCommand.tsv +4 -0
  547. data/data/pdfrb/arlington/latest/RichMediaCommandArray.tsv +2 -0
  548. data/data/pdfrb/arlington/latest/RichMediaConfiguration.tsv +5 -0
  549. data/data/pdfrb/arlington/latest/RichMediaContent.tsv +5 -0
  550. data/data/pdfrb/arlington/latest/RichMediaCuePoint.tsv +6 -0
  551. data/data/pdfrb/arlington/latest/RichMediaDeactivation.tsv +3 -0
  552. data/data/pdfrb/arlington/latest/RichMediaHeight.tsv +4 -0
  553. data/data/pdfrb/arlington/latest/RichMediaInstance.tsv +6 -0
  554. data/data/pdfrb/arlington/latest/RichMediaParams.tsv +7 -0
  555. data/data/pdfrb/arlington/latest/RichMediaPosition.tsv +6 -0
  556. data/data/pdfrb/arlington/latest/RichMediaPresentation.tsv +8 -0
  557. data/data/pdfrb/arlington/latest/RichMediaSettings.tsv +4 -0
  558. data/data/pdfrb/arlington/latest/RichMediaWidth.tsv +4 -0
  559. data/data/pdfrb/arlington/latest/RichMediaWindow.tsv +5 -0
  560. data/data/pdfrb/arlington/latest/RoleMap.tsv +2 -0
  561. data/data/pdfrb/arlington/latest/RoleMapNS.tsv +2 -0
  562. data/data/pdfrb/arlington/latest/Separation.tsv +4 -0
  563. data/data/pdfrb/arlington/latest/SeparationColorSpace.tsv +5 -0
  564. data/data/pdfrb/arlington/latest/ShadingMap.tsv +2 -0
  565. data/data/pdfrb/arlington/latest/ShadingType1.tsv +9 -0
  566. data/data/pdfrb/arlington/latest/ShadingType2.tsv +10 -0
  567. data/data/pdfrb/arlington/latest/ShadingType3.tsv +10 -0
  568. data/data/pdfrb/arlington/latest/ShadingType4.tsv +18 -0
  569. data/data/pdfrb/arlington/latest/ShadingType5.tsv +18 -0
  570. data/data/pdfrb/arlington/latest/ShadingType6.tsv +18 -0
  571. data/data/pdfrb/arlington/latest/ShadingType7.tsv +18 -0
  572. data/data/pdfrb/arlington/latest/SigFieldLock.tsv +5 -0
  573. data/data/pdfrb/arlington/latest/SigFieldSeedValue.tsv +15 -0
  574. data/data/pdfrb/arlington/latest/Signature.tsv +20 -0
  575. data/data/pdfrb/arlington/latest/SignatureBuildDataAppDict.tsv +10 -0
  576. data/data/pdfrb/arlington/latest/SignatureBuildDataDict.tsv +9 -0
  577. data/data/pdfrb/arlington/latest/SignatureBuildDataSigQDict.tsv +10 -0
  578. data/data/pdfrb/arlington/latest/SignatureBuildPropDict.tsv +5 -0
  579. data/data/pdfrb/arlington/latest/SignatureReferenceDocMDP.tsv +8 -0
  580. data/data/pdfrb/arlington/latest/SignatureReferenceFieldMDP.tsv +8 -0
  581. data/data/pdfrb/arlington/latest/SignatureReferenceIdentity.tsv +7 -0
  582. data/data/pdfrb/arlington/latest/SignatureReferenceUR.tsv +8 -0
  583. data/data/pdfrb/arlington/latest/SlideShow.tsv +5 -0
  584. data/data/pdfrb/arlington/latest/SoftMaskAlpha.tsv +6 -0
  585. data/data/pdfrb/arlington/latest/SoftMaskLuminosity.tsv +6 -0
  586. data/data/pdfrb/arlington/latest/SoftwareIdentifier.tsv +8 -0
  587. data/data/pdfrb/arlington/latest/Solidities.tsv +3 -0
  588. data/data/pdfrb/arlington/latest/SoundObject.tsv +15 -0
  589. data/data/pdfrb/arlington/latest/SourceInformation.tsv +6 -0
  590. data/data/pdfrb/arlington/latest/SpectralData.tsv +2 -0
  591. data/data/pdfrb/arlington/latest/Stream.tsv +8 -0
  592. data/data/pdfrb/arlington/latest/StructElem.tsv +20 -0
  593. data/data/pdfrb/arlington/latest/StructTreeRoot.tsv +11 -0
  594. data/data/pdfrb/arlington/latest/StructureAttributesDict.tsv +54 -0
  595. data/data/pdfrb/arlington/latest/StyleDict.tsv +2 -0
  596. data/data/pdfrb/arlington/latest/SubjectDN.tsv +2 -0
  597. data/data/pdfrb/arlington/latest/Target.tsv +6 -0
  598. data/data/pdfrb/arlington/latest/TargetEmbedded.tsv +6 -0
  599. data/data/pdfrb/arlington/latest/Thread.tsv +5 -0
  600. data/data/pdfrb/arlington/latest/Thumbnail.tsv +15 -0
  601. data/data/pdfrb/arlington/latest/TimeStampDict.tsv +3 -0
  602. data/data/pdfrb/arlington/latest/Timespan.tsv +4 -0
  603. data/data/pdfrb/arlington/latest/ToUnicodeCMapStream.tsv +13 -0
  604. data/data/pdfrb/arlington/latest/TrailerIDArray.tsv +3 -0
  605. data/data/pdfrb/arlington/latest/Transition.tsv +9 -0
  606. data/data/pdfrb/arlington/latest/TrapRegion.tsv +3 -0
  607. data/data/pdfrb/arlington/latest/URI.tsv +2 -0
  608. data/data/pdfrb/arlington/latest/URLAlias.tsv +3 -0
  609. data/data/pdfrb/arlington/latest/URTransformParamAnnotsArray.tsv +2 -0
  610. data/data/pdfrb/arlington/latest/URTransformParamDocumentArray.tsv +2 -0
  611. data/data/pdfrb/arlington/latest/URTransformParamEFArray.tsv +2 -0
  612. data/data/pdfrb/arlington/latest/URTransformParamFormArray.tsv +2 -0
  613. data/data/pdfrb/arlington/latest/URTransformParamSignatureArray.tsv +2 -0
  614. data/data/pdfrb/arlington/latest/URTransformParameters.tsv +10 -0
  615. data/data/pdfrb/arlington/latest/UserProperty.tsv +5 -0
  616. data/data/pdfrb/arlington/latest/VRI.tsv +7 -0
  617. data/data/pdfrb/arlington/latest/VRIMap.tsv +2 -0
  618. data/data/pdfrb/arlington/latest/ViewParams.tsv +3 -0
  619. data/data/pdfrb/arlington/latest/ViewerPreferences.tsv +19 -0
  620. data/data/pdfrb/arlington/latest/Viewport.tsv +6 -0
  621. data/data/pdfrb/arlington/latest/VisibilityExpressionArray.tsv +4 -0
  622. data/data/pdfrb/arlington/latest/WebCaptureCommand.tsv +8 -0
  623. data/data/pdfrb/arlington/latest/WebCaptureCommandSettings.tsv +3 -0
  624. data/data/pdfrb/arlington/latest/WebCaptureImageSet.tsv +9 -0
  625. data/data/pdfrb/arlington/latest/WebCaptureInfo.tsv +3 -0
  626. data/data/pdfrb/arlington/latest/WebCapturePageSet.tsv +10 -0
  627. data/data/pdfrb/arlington/latest/WhitepointArray.tsv +4 -0
  628. data/data/pdfrb/arlington/latest/XObjectFormPS.tsv +10 -0
  629. data/data/pdfrb/arlington/latest/XObjectFormPSpassthrough.tsv +15 -0
  630. data/data/pdfrb/arlington/latest/XObjectFormPrinterMark.tsv +29 -0
  631. data/data/pdfrb/arlington/latest/XObjectFormTrapNet.tsv +31 -0
  632. data/data/pdfrb/arlington/latest/XObjectFormType1.tsv +32 -0
  633. data/data/pdfrb/arlington/latest/XObjectImage.tsv +35 -0
  634. data/data/pdfrb/arlington/latest/XObjectImageMask.tsv +29 -0
  635. data/data/pdfrb/arlington/latest/XObjectImageSoftMask.tsv +22 -0
  636. data/data/pdfrb/arlington/latest/XObjectMap.tsv +2 -0
  637. data/data/pdfrb/arlington/latest/XRefStream.tsv +20 -0
  638. data/data/pdfrb/arlington/latest/_UniversalArray.tsv +2 -0
  639. data/data/pdfrb/arlington/latest/_UniversalDictionary.tsv +2 -0
  640. data/data/pdfrb/glyphlist.txt +4306 -0
  641. data/data/pdfrb/zapfdingbats.txt +226 -0
  642. data/exe/pdfrb +10 -0
  643. data/lib/pdfrb/arlington/field_definition.rb +128 -0
  644. data/lib/pdfrb/arlington/loader.rb +84 -0
  645. data/lib/pdfrb/arlington/object_definition.rb +45 -0
  646. data/lib/pdfrb/arlington/pdf_version.rb +121 -0
  647. data/lib/pdfrb/arlington/predicate/ast.rb +21 -0
  648. data/lib/pdfrb/arlington/predicate/context.rb +24 -0
  649. data/lib/pdfrb/arlington/predicate/evaluator.rb +113 -0
  650. data/lib/pdfrb/arlington/predicate/functions/arithmetic.rb +67 -0
  651. data/lib/pdfrb/arlington/predicate/functions/file.rb +22 -0
  652. data/lib/pdfrb/arlington/predicate/functions/logical.rb +38 -0
  653. data/lib/pdfrb/arlington/predicate/functions/presence.rb +39 -0
  654. data/lib/pdfrb/arlington/predicate/functions/reference.rb +28 -0
  655. data/lib/pdfrb/arlington/predicate/functions/version.rb +53 -0
  656. data/lib/pdfrb/arlington/predicate/functions.rb +34 -0
  657. data/lib/pdfrb/arlington/predicate/lexer.rb +177 -0
  658. data/lib/pdfrb/arlington/predicate/parser.rb +185 -0
  659. data/lib/pdfrb/arlington/predicate.rb +22 -0
  660. data/lib/pdfrb/arlington/type.rb +41 -0
  661. data/lib/pdfrb/arlington.rb +19 -0
  662. data/lib/pdfrb/cli.rb +135 -0
  663. data/lib/pdfrb/configuration.rb +64 -0
  664. data/lib/pdfrb/conformance/pdf_a.rb +74 -0
  665. data/lib/pdfrb/conformance/pdf_ua.rb +46 -0
  666. data/lib/pdfrb/conformance.rb +11 -0
  667. data/lib/pdfrb/content/canvas.rb +248 -0
  668. data/lib/pdfrb/content/graphic_object/arc.rb +85 -0
  669. data/lib/pdfrb/content/graphic_object/curve.rb +28 -0
  670. data/lib/pdfrb/content/graphic_object/polyline.rb +27 -0
  671. data/lib/pdfrb/content/graphic_object/rectangle.rb +53 -0
  672. data/lib/pdfrb/content/graphic_object.rb +16 -0
  673. data/lib/pdfrb/content/graphics_state.rb +104 -0
  674. data/lib/pdfrb/content/operator.rb +72 -0
  675. data/lib/pdfrb/content/operators/color.rb +106 -0
  676. data/lib/pdfrb/content/operators/general.rb +50 -0
  677. data/lib/pdfrb/content/operators/graphics_state_params.rb +78 -0
  678. data/lib/pdfrb/content/operators/marked_content.rb +51 -0
  679. data/lib/pdfrb/content/operators/painting.rb +82 -0
  680. data/lib/pdfrb/content/operators/path.rb +69 -0
  681. data/lib/pdfrb/content/operators/text_positioning.rb +44 -0
  682. data/lib/pdfrb/content/operators/text_showing.rb +48 -0
  683. data/lib/pdfrb/content/operators/text_state.rb +66 -0
  684. data/lib/pdfrb/content/parser.rb +103 -0
  685. data/lib/pdfrb/content/processor.rb +81 -0
  686. data/lib/pdfrb/content.rb +38 -0
  687. data/lib/pdfrb/data_dir.rb +35 -0
  688. data/lib/pdfrb/digital_signature/handler.rb +21 -0
  689. data/lib/pdfrb/digital_signature/signing.rb +29 -0
  690. data/lib/pdfrb/digital_signature/verification.rb +22 -0
  691. data/lib/pdfrb/digital_signature.rb +11 -0
  692. data/lib/pdfrb/document/annotations.rb +44 -0
  693. data/lib/pdfrb/document/destinations.rb +22 -0
  694. data/lib/pdfrb/document/files.rb +28 -0
  695. data/lib/pdfrb/document/fonts.rb +121 -0
  696. data/lib/pdfrb/document/images.rb +57 -0
  697. data/lib/pdfrb/document/metadata.rb +64 -0
  698. data/lib/pdfrb/document/pages.rb +134 -0
  699. data/lib/pdfrb/document.rb +343 -0
  700. data/lib/pdfrb/encryption/aes.rb +68 -0
  701. data/lib/pdfrb/encryption/password_verification.rb +112 -0
  702. data/lib/pdfrb/encryption/rc4.rb +45 -0
  703. data/lib/pdfrb/encryption/security_handler.rb +65 -0
  704. data/lib/pdfrb/encryption/standard_security_handler.rb +117 -0
  705. data/lib/pdfrb/encryption.rb +20 -0
  706. data/lib/pdfrb/error.rb +92 -0
  707. data/lib/pdfrb/filter/ascii_85_decode.rb +79 -0
  708. data/lib/pdfrb/filter/ascii_hex_decode.rb +37 -0
  709. data/lib/pdfrb/filter/base.rb +32 -0
  710. data/lib/pdfrb/filter/crypt.rb +36 -0
  711. data/lib/pdfrb/filter/flate_decode.rb +137 -0
  712. data/lib/pdfrb/filter/lzw_decode.rb +124 -0
  713. data/lib/pdfrb/filter/passthrough_filters.rb +55 -0
  714. data/lib/pdfrb/filter/run_length_decode.rb +72 -0
  715. data/lib/pdfrb/filter.rb +64 -0
  716. data/lib/pdfrb/font/afm_parser.rb +84 -0
  717. data/lib/pdfrb/font/cmap/parser.rb +96 -0
  718. data/lib/pdfrb/font/cmap/writer.rb +46 -0
  719. data/lib/pdfrb/font/cmap.rb +10 -0
  720. data/lib/pdfrb/font/encoding/mac_roman_encoding.rb +25 -0
  721. data/lib/pdfrb/font/encoding/pdf_doc_encoding.rb +16 -0
  722. data/lib/pdfrb/font/encoding/standard_encoding.rb +24 -0
  723. data/lib/pdfrb/font/encoding/win_ansi_encoding.rb +25 -0
  724. data/lib/pdfrb/font/encoding/zapf_dingbats_encoding.rb +13 -0
  725. data/lib/pdfrb/font/encoding.rb +36 -0
  726. data/lib/pdfrb/font/glyph_list.rb +56 -0
  727. data/lib/pdfrb/font/true_type/cmap.rb +240 -0
  728. data/lib/pdfrb/font/true_type/file.rb +85 -0
  729. data/lib/pdfrb/font/true_type/head.rb +43 -0
  730. data/lib/pdfrb/font/true_type/hhea.rb +36 -0
  731. data/lib/pdfrb/font/true_type/hmtx.rb +58 -0
  732. data/lib/pdfrb/font/true_type/os2.rb +51 -0
  733. data/lib/pdfrb/font/true_type/subsetter.rb +28 -0
  734. data/lib/pdfrb/font/true_type.rb +14 -0
  735. data/lib/pdfrb/font/type1/font_metrics.rb +46 -0
  736. data/lib/pdfrb/font/type1.rb +9 -0
  737. data/lib/pdfrb/font.rb +18 -0
  738. data/lib/pdfrb/font_loader/true_type.rb +62 -0
  739. data/lib/pdfrb/font_loader/type1.rb +27 -0
  740. data/lib/pdfrb/font_loader.rb +10 -0
  741. data/lib/pdfrb/image_loader/jpeg.rb +90 -0
  742. data/lib/pdfrb/image_loader/pdf.rb +28 -0
  743. data/lib/pdfrb/image_loader/png.rb +282 -0
  744. data/lib/pdfrb/image_loader.rb +64 -0
  745. data/lib/pdfrb/importer.rb +78 -0
  746. data/lib/pdfrb/model/cos/dictionary.rb +310 -0
  747. data/lib/pdfrb/model/cos/fields.rb +215 -0
  748. data/lib/pdfrb/model/cos/name_encoding.rb +64 -0
  749. data/lib/pdfrb/model/cos/stream.rb +96 -0
  750. data/lib/pdfrb/model/cos/string_encoding.rb +135 -0
  751. data/lib/pdfrb/model/cos.rb +20 -0
  752. data/lib/pdfrb/model/date.rb +82 -0
  753. data/lib/pdfrb/model/matrix.rb +85 -0
  754. data/lib/pdfrb/model/object.rb +76 -0
  755. data/lib/pdfrb/model/pdf_array.rb +63 -0
  756. data/lib/pdfrb/model/rectangle.rb +54 -0
  757. data/lib/pdfrb/model/reference.rb +49 -0
  758. data/lib/pdfrb/model/type/action.rb +33 -0
  759. data/lib/pdfrb/model/type/af_embedded_file.rb +12 -0
  760. data/lib/pdfrb/model/type/af_file_specification.rb +13 -0
  761. data/lib/pdfrb/model/type/annotation.rb +50 -0
  762. data/lib/pdfrb/model/type/catalog.rb +50 -0
  763. data/lib/pdfrb/model/type/cid_font.rb +13 -0
  764. data/lib/pdfrb/model/type/embedded_file.rb +13 -0
  765. data/lib/pdfrb/model/type/encryption_public_key.rb +12 -0
  766. data/lib/pdfrb/model/type/encryption_standard.rb +12 -0
  767. data/lib/pdfrb/model/type/file_specification.rb +12 -0
  768. data/lib/pdfrb/model/type/file_trailer.rb +14 -0
  769. data/lib/pdfrb/model/type/font.rb +13 -0
  770. data/lib/pdfrb/model/type/font_descriptor.rb +12 -0
  771. data/lib/pdfrb/model/type/font_true_type.rb +12 -0
  772. data/lib/pdfrb/model/type/font_type0.rb +12 -0
  773. data/lib/pdfrb/model/type/font_type1.rb +12 -0
  774. data/lib/pdfrb/model/type/font_type3.rb +13 -0
  775. data/lib/pdfrb/model/type/graphics_state_parameter.rb +17 -0
  776. data/lib/pdfrb/model/type/info.rb +15 -0
  777. data/lib/pdfrb/model/type/interactive_form.rb +12 -0
  778. data/lib/pdfrb/model/type/metadata.rb +18 -0
  779. data/lib/pdfrb/model/type/names.rb +14 -0
  780. data/lib/pdfrb/model/type/object_stream.rb +14 -0
  781. data/lib/pdfrb/model/type/optional_content_group.rb +25 -0
  782. data/lib/pdfrb/model/type/optional_content_membership.rb +13 -0
  783. data/lib/pdfrb/model/type/optional_content_properties.rb +12 -0
  784. data/lib/pdfrb/model/type/outline.rb +20 -0
  785. data/lib/pdfrb/model/type/outline_item.rb +13 -0
  786. data/lib/pdfrb/model/type/output_intent.rb +12 -0
  787. data/lib/pdfrb/model/type/page.rb +86 -0
  788. data/lib/pdfrb/model/type/page_tree_node.rb +46 -0
  789. data/lib/pdfrb/model/type/resources.rb +53 -0
  790. data/lib/pdfrb/model/type/struct_elem.rb +15 -0
  791. data/lib/pdfrb/model/type/struct_tree_root.rb +15 -0
  792. data/lib/pdfrb/model/type/xobject_form.rb +13 -0
  793. data/lib/pdfrb/model/type/xobject_image.rb +13 -0
  794. data/lib/pdfrb/model/type/xref_stream.rb +14 -0
  795. data/lib/pdfrb/model/type.rb +78 -0
  796. data/lib/pdfrb/model.rb +27 -0
  797. data/lib/pdfrb/pdf_constants.rb +42 -0
  798. data/lib/pdfrb/serializer.rb +174 -0
  799. data/lib/pdfrb/source/header_reader.rb +34 -0
  800. data/lib/pdfrb/source/helpers.rb +25 -0
  801. data/lib/pdfrb/source/linearization_detection.rb +34 -0
  802. data/lib/pdfrb/source/object_reader.rb +132 -0
  803. data/lib/pdfrb/source/object_stream_reader.rb +32 -0
  804. data/lib/pdfrb/source/parser.rb +281 -0
  805. data/lib/pdfrb/source/recovery.rb +35 -0
  806. data/lib/pdfrb/source/token.rb +15 -0
  807. data/lib/pdfrb/source/tokenizer.rb +320 -0
  808. data/lib/pdfrb/source/tokenizer.rb.bak +320 -0
  809. data/lib/pdfrb/source/trailer_reader.rb +32 -0
  810. data/lib/pdfrb/source/xref_stream_reader.rb +52 -0
  811. data/lib/pdfrb/source/xref_table_reader.rb +72 -0
  812. data/lib/pdfrb/source.rb +24 -0
  813. data/lib/pdfrb/task/extract_images.rb +53 -0
  814. data/lib/pdfrb/task/extract_text.rb +232 -0
  815. data/lib/pdfrb/task/merge.rb +47 -0
  816. data/lib/pdfrb/task/optimize.rb +18 -0
  817. data/lib/pdfrb/task.rb +13 -0
  818. data/lib/pdfrb/version.rb +5 -0
  819. data/lib/pdfrb/writer.rb +144 -0
  820. data/lib/pdfrb/xref_section.rb +51 -0
  821. data/lib/pdfrb.rb +97 -0
  822. metadata +890 -0
@@ -0,0 +1,310 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pdfrb
4
+ module Model
5
+ module Cos
6
+ # Common Object Syntax dictionary (s7.3.7). Wraps a Hash of
7
+ # Symbol -> PDF value. Subclassed by every semantic Type::*.
8
+ #
9
+ # Field metadata can come from two sources (mutually exclusive
10
+ # per field; last declaration wins):
11
+ # * `define_field` — hand-coded (HexaPDF shape).
12
+ # * `arlington_object "Name"` — auto-loaded from vendored TSVs
13
+ # via Pdfrb::Arlington::Loader. Calls `define_field` under
14
+ # the hood with types translated to Ruby classes.
15
+ class Dictionary < Pdfrb::Model::Object
16
+ # ---- Per-class field registry ----
17
+
18
+ # Shared type registry (s7.7 /Type symbol -> Dictionary
19
+ # subclass). Lives on the Dictionary class itself, NOT on
20
+ # subclasses, so register_type from any subclass lands in the
21
+ # same map.
22
+ TYPE_MAP = {}
23
+ private_constant :TYPE_MAP
24
+
25
+ class << self
26
+ # /Type-symbol -> Dictionary subclass. Populated by
27
+ # `register_type`. Used by Document#wrap to dispatch.
28
+ def type_map
29
+ TYPE_MAP
30
+ end
31
+
32
+ def register_type(symbol, klass = self)
33
+ TYPE_MAP[symbol] = klass
34
+ klass.define_type(symbol) unless klass.pdf_type
35
+ end
36
+
37
+ def lookup_type(symbol)
38
+ TYPE_MAP[symbol]
39
+ end
40
+
41
+ # Declare a field on this class. Mirrors HexaPDF's
42
+ # define_field shape; we add an `arlington:` slot for the
43
+ # source FieldDefinition.
44
+ def define_field(pdf_name, type:, required: false, default: nil,
45
+ indirect: nil, allowed_values: nil, version: "1.0",
46
+ arlington: nil)
47
+ own_fields[pdf_name] = Fields::Field.new(
48
+ pdf_name, type: type, required: required, default: default,
49
+ indirect: indirect, allowed_values: allowed_values,
50
+ version: version, arlington: arlington
51
+ )
52
+ end
53
+
54
+ # Look up a field by name; walks the inheritance chain.
55
+ def field(name)
56
+ return own_fields[name] if own_fields.key?(name)
57
+ return superclass.field(name) if superclass <= Pdfrb::Model::Cos::Dictionary
58
+
59
+ nil
60
+ end
61
+
62
+ # Iterate (name, Field) pairs across the inheritance chain.
63
+ def each_field
64
+ return enum_for(:each_field) unless block_given?
65
+
66
+ if superclass <= Pdfrb::Model::Cos::Dictionary
67
+ superclass.each_field { |n, f| yield n, f }
68
+ end
69
+ own_fields.each { |n, f| yield n, f }
70
+ end
71
+
72
+ # Pull field metadata from the named Arlington TSV. Idempotent.
73
+ # Silently no-ops when the Arlington layer or the TSV is
74
+ # unavailable, so hand-coded subclasses still work.
75
+ #
76
+ # Also registers +self+ in Pdfrb::Model::Type.arlington_registry
77
+ # under +name+ so field-link resolution can find this class
78
+ # when other Types reference it.
79
+ def arlington_object(name, version: "latest")
80
+ return if arlington_loaded_for?(name)
81
+ return unless arlington_available?
82
+
83
+ definition = Pdfrb::Arlington::Loader.object_definition(name, version: version)
84
+ return unless definition
85
+
86
+ arlington_mark_loaded(name)
87
+ Pdfrb::Model::Type.register_arlington(name, self) if Pdfrb::Model.const_defined?(:Type)
88
+ definition.each_field do |field_def|
89
+ define_field_from_arlington(field_def)
90
+ end
91
+ end
92
+
93
+ def own_fields
94
+ @own_fields ||= {}
95
+ end
96
+ private :own_fields
97
+
98
+ def arlington_loaded_for?(_name)
99
+ @arlington_loaded_name == name
100
+ end
101
+ private :arlington_loaded_for?
102
+
103
+ def arlington_mark_loaded(name)
104
+ @arlington_loaded_name = name
105
+ end
106
+ private :arlington_mark_loaded
107
+
108
+ def arlington_available?
109
+ Pdfrb.const_defined?(:Arlington) &&
110
+ Pdfrb::Arlington.const_defined?(:Loader)
111
+ rescue StandardError
112
+ false
113
+ end
114
+ private :arlington_available?
115
+
116
+ def define_field_from_arlington(field_def)
117
+ types = arlington_types_to_ruby(field_def)
118
+ return if types.empty?
119
+
120
+ key = arlington_key_to_symbol(field_def.key)
121
+ define_field(
122
+ key,
123
+ type: types.length == 1 ? types.first : types,
124
+ required: arlington_required?(field_def),
125
+ default: arlington_default(field_def),
126
+ version: arlington_version(field_def),
127
+ arlington: field_def
128
+ )
129
+ end
130
+ private :define_field_from_arlington
131
+
132
+ def arlington_types_to_ruby(field_def)
133
+ field_def.types.map { |t| arlington_one_type_to_ruby(t) }.flatten.compact.uniq
134
+ end
135
+ private :arlington_types_to_ruby
136
+
137
+ def arlington_one_type_to_ruby(t)
138
+ case t
139
+ when :boolean then [TrueClass, FalseClass]
140
+ when :integer then Integer
141
+ when :number then [Integer, Float]
142
+ when :name then Symbol
143
+ when :string, :"string-ascii", :"string-text" then String
144
+ when :"string-byte" then Fields::PDFByteString
145
+ when :array then Pdfrb::Model::PdfArray
146
+ when :dictionary then Pdfrb::Model::Cos::Dictionary
147
+ when :stream then Pdfrb::Model::Cos::Stream
148
+ when :null then NilClass
149
+ when :date then Fields::PDFDate
150
+ when :rectangle then Pdfrb::Model::Rectangle
151
+ when :matrix then Pdfrb::Model::Matrix
152
+ when :bitmask then Integer
153
+ when :"name-tree", :"number-tree" then Pdfrb::Model::Cos::Dictionary
154
+ end
155
+ end
156
+ private :arlington_one_type_to_ruby
157
+
158
+ def arlington_key_to_symbol(key)
159
+ key.to_sym
160
+ end
161
+ private :arlington_key_to_symbol
162
+
163
+ def arlington_required?(field_def)
164
+ field_def.required_literal == true
165
+ end
166
+ private :arlington_required?
167
+
168
+ def arlington_default(field_def)
169
+ return nil if field_def.default_value.nil?
170
+
171
+ field_def.default_value
172
+ end
173
+ private :arlington_default
174
+
175
+ def arlington_version(field_def)
176
+ field_def.since_version.to_s
177
+ end
178
+ private :arlington_version
179
+ end
180
+
181
+ def initialize(value = {}, oid: 0, gen: 0, document: nil)
182
+ value ||= {}
183
+ unless value.is_a?(::Hash)
184
+ raise ArgumentError, "Dictionary value must be a Hash, got #{value.class}"
185
+ end
186
+
187
+ super(value, oid: oid, gen: gen, document: document)
188
+ apply_required_defaults
189
+ end
190
+
191
+ # Typed access. Resolves References, wraps in field-specific
192
+ # subclass, applies default, runs converters.
193
+ def [](name)
194
+ name = name.to_sym unless name.is_a?(::Symbol)
195
+ field = self.class.field(name)
196
+ data = @value[name]
197
+ data = field.default if data.nil? && field&.default?
198
+ return nil if data.nil?
199
+
200
+ data = dereference(data)
201
+ data = data.value if unbox_object?(data)
202
+
203
+ return data unless field
204
+
205
+ converted = Fields.apply(field, data, document)
206
+ if converted
207
+ @value[name] = converted
208
+ converted
209
+ else
210
+ data
211
+ end
212
+ end
213
+
214
+ def []=(name, value)
215
+ raise ArgumentError, "Dictionary keys must be Symbols" unless name.is_a?(::Symbol)
216
+
217
+ @value[name] = value
218
+ end
219
+
220
+ def key?(name)
221
+ name = name.to_sym unless name.is_a?(::Symbol)
222
+ !@value[name].nil?
223
+ end
224
+
225
+ def delete(name)
226
+ name = name.to_sym unless name.is_a?(::Symbol)
227
+ @value.delete(name)
228
+ end
229
+
230
+ # Iterate (Symbol, processed-value) pairs. Slower than #each_raw
231
+ # because it runs the full accessor pipeline; use that when
232
+ # you don't need wrapping.
233
+ def each
234
+ return enum_for(:each) unless block_given?
235
+
236
+ @value.each_key { |k| yield(k, self[k]) }
237
+ self
238
+ end
239
+
240
+ # Iterate (Symbol, raw-value) pairs without accessor pipeline.
241
+ def each_raw
242
+ return enum_for(:each_raw) unless block_given?
243
+
244
+ @value.each { |k, v| yield(k, v) }
245
+ self
246
+ end
247
+
248
+ def keys; @value.keys; end
249
+ def empty?; @value.empty?; end
250
+
251
+ def pdf_type
252
+ self.class.pdf_type || self[:Type]
253
+ end
254
+
255
+ # Walk every declared field and yield (message, correctable)
256
+ # for each violation. Returns an Enumerator if no block given.
257
+ def validate
258
+ return enum_for(:validate) unless block_given?
259
+
260
+ self.class.each_field do |name, field|
261
+ validate_one(name, field) { |*a| yield(*a) }
262
+ end
263
+ end
264
+
265
+ protected
266
+
267
+ def dereference(data)
268
+ return data unless data.is_a?(Pdfrb::Model::Reference)
269
+ return data if document.nil?
270
+
271
+ data.deref(document)
272
+ end
273
+
274
+ private
275
+
276
+ def unbox_object?(obj)
277
+ obj.is_a?(Pdfrb::Model::Object) && !obj.is_a?(Pdfrb::Model::Cos::Dictionary)
278
+ end
279
+
280
+ def apply_required_defaults
281
+ self.class.each_field do |name, field|
282
+ next if @value.key?(name) || !field.required? || !field.default?
283
+
284
+ @value[name] = field.default
285
+ end
286
+ end
287
+
288
+ def validate_one(name, field)
289
+ value = key?(name) ? self[name] : nil
290
+ if field.required? && value.nil?
291
+ yield("Required field #{name} is missing", field.default?)
292
+ self[name] = field.default if field.default?
293
+ return
294
+ end
295
+ return if value.nil?
296
+
297
+ unless field.valid_value?(value)
298
+ yield("Field #{name} has wrong type: #{value.class}", !field.required?)
299
+ return
300
+ end
301
+
302
+ return unless field.has_allowed_values?
303
+ return if field.allowed_values.include?(value)
304
+
305
+ yield("Field #{name} has disallowed value: #{value.inspect}", false)
306
+ end
307
+ end
308
+ end
309
+ end
310
+ end
@@ -0,0 +1,215 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pdfrb
4
+ module Model
5
+ module Cos
6
+ # Field metadata for a Dictionary entry. Field instances are
7
+ # created by `Dictionary.define_field` (hand-coded) or by
8
+ # `arlington_object` (TSV-driven). They drive type conversion,
9
+ # default application, and validation.
10
+ module Fields
11
+ # Use this constant for boolean fields.
12
+ Boolean = [TrueClass, FalseClass].freeze
13
+
14
+ # Marker class for binary-encoded string fields.
15
+ PDFByteString = Class.new do
16
+ private_class_method :new
17
+ end.freeze
18
+
19
+ # Marker class for date fields (string in PDF, Time in Ruby).
20
+ PDFDate = Class.new do
21
+ private_class_method :new
22
+ end.freeze
23
+
24
+ # One declared field on a Dictionary subclass.
25
+ class Field
26
+ attr_reader :pdf_name, :type, :required, :default, :indirect,
27
+ :allowed_values, :version, :arlington
28
+
29
+ def initialize(pdf_name, type:, required: false, default: nil,
30
+ indirect: nil, allowed_values: nil, version: "1.0",
31
+ arlington: nil)
32
+ @pdf_name = pdf_name
33
+ @type = [type].flatten.freeze
34
+ @required = required
35
+ @default = default
36
+ @indirect = indirect
37
+ @allowed_values = allowed_values && [allowed_values].flatten.freeze
38
+ @version = version
39
+ @arlington = arlington
40
+ freeze
41
+ end
42
+
43
+ def required?; !!@required; end
44
+ def default?; !@default.nil?; end
45
+ def has_allowed_values?; !@allowed_values.nil?; end
46
+
47
+ # Resolve Symbol types via Dictionary.type_map. Returns an
48
+ # array of Class objects (or empty if no resolution yet).
49
+ def resolved_types
50
+ @type.map do |t|
51
+ next t unless t.is_a?(Symbol)
52
+ Pdfrb::Model::Cos::Dictionary.lookup_type(t)
53
+ end.compact
54
+ end
55
+
56
+ def valid_value?(value)
57
+ types = resolved_types
58
+ return true if types.empty?
59
+
60
+ types.any? do |t|
61
+ case value
62
+ when Pdfrb::Model::Object
63
+ t === value.value || value.is_a?(t)
64
+ else
65
+ t === value
66
+ end
67
+ end
68
+ end
69
+ end
70
+
71
+ # ---- Converter modules ----
72
+ # Stateless. `usable_for?(type)` filters; `convert(data, type,
73
+ # document)` returns the converted value or nil to fall through.
74
+
75
+ module DictionaryConverter
76
+ module_function
77
+
78
+ def usable_for?(type)
79
+ return true if type.is_a?(Symbol)
80
+ type.is_a?(Class) && type <= Pdfrb::Model::Cos::Dictionary
81
+ end
82
+
83
+ def additional_types; ::Hash; end
84
+
85
+ def convert(data, type, document)
86
+ first = type.first
87
+ return if first.nil?
88
+ return if data.is_a?(first) && !upgradeable?(data, first)
89
+ return unless data.is_a?(::Hash) || data.is_a?(Pdfrb::Model::Cos::Dictionary)
90
+
91
+ # No `type:` — let document#wrap dispatch via /Type so a
92
+ # field typed as bare Cos::Dictionary still upgrades to a
93
+ # specific Type::* subclass when the value has a /Type.
94
+ document&.wrap(data)
95
+ end
96
+
97
+ def upgradeable?(data, declared)
98
+ # Already-typed subclass of declared base — leave alone.
99
+ return false unless data.is_a?(Pdfrb::Model::Cos::Dictionary)
100
+ return false if data.class == Pdfrb::Model::Cos::Dictionary
101
+
102
+ data.class <= declared
103
+ end
104
+ module_function :upgradeable?
105
+ end
106
+
107
+ module ArrayConverter
108
+ module_function
109
+
110
+ def usable_for?(type); type == Pdfrb::Model::PdfArray; end
111
+ def additional_types; ::Array; end
112
+
113
+ def convert(data, _type, document)
114
+ return unless data.is_a?(::Array)
115
+ return data if data.is_a?(Pdfrb::Model::PdfArray)
116
+
117
+ document&.wrap(data, type: Pdfrb::Model::PdfArray)
118
+ end
119
+ end
120
+
121
+ module StringConverter
122
+ module_function
123
+
124
+ def usable_for?(type); type == ::String; end
125
+ def additional_types; nil; end
126
+
127
+ def convert(str, _type, document)
128
+ return unless str.is_a?(::String)
129
+ return unless str.encoding == Encoding::BINARY
130
+
131
+ handler = document&.config&.[]("document.on_invalid_string")
132
+ decoded = StringEncoding.decode_text(str, on_invalid: handler)
133
+ decoded&.encode(Encoding::UTF_8)
134
+ end
135
+ end
136
+
137
+ module ByteStringConverter
138
+ module_function
139
+
140
+ def usable_for?(type); type == PDFByteString; end
141
+ def additional_types; ::String; end
142
+
143
+ def convert(str, _type, _document)
144
+ return unless str.is_a?(::String)
145
+ return str if str.encoding == Encoding::BINARY
146
+
147
+ str.dup.force_encoding(Encoding::BINARY)
148
+ end
149
+ end
150
+
151
+ module DateConverter
152
+ module_function
153
+
154
+ def usable_for?(type); type == PDFDate; end
155
+ def additional_types; [::String, ::Time]; end
156
+
157
+ def convert(value, _type, _document)
158
+ case value
159
+ when ::Time then value
160
+ when ::String then (Pdfrb::Model::Date.parse(value) rescue nil)
161
+ end
162
+ end
163
+ end
164
+
165
+ module RectangleConverter
166
+ module_function
167
+
168
+ def usable_for?(type); type == Pdfrb::Model::Rectangle; end
169
+ def additional_types; [::Array, Pdfrb::Model::PdfArray]; end
170
+
171
+ def convert(data, _type, _document)
172
+ return unless data.is_a?(::Array) || data.is_a?(Pdfrb::Model::PdfArray)
173
+ return nil if data.empty?
174
+
175
+ Pdfrb::Model::Rectangle.from_array(data.to_a)
176
+ end
177
+ end
178
+
179
+ module IntegerConverter
180
+ module_function
181
+
182
+ def usable_for?(type); type == ::Integer; end
183
+ def additional_types; nil; end
184
+
185
+ def convert(data, _type, _document)
186
+ return unless data.is_a?(::Float) && data == data.to_i
187
+
188
+ data.to_i
189
+ end
190
+ end
191
+
192
+ CONVERTERS = [
193
+ DictionaryConverter, ArrayConverter, StringConverter,
194
+ ByteStringConverter, DateConverter, RectangleConverter,
195
+ IntegerConverter
196
+ ].freeze
197
+
198
+ def self.converter_for(type)
199
+ CONVERTERS.find { |c| c.usable_for?(type) }
200
+ end
201
+
202
+ def self.apply(field, data, document)
203
+ field.type.each do |t|
204
+ converter = converter_for(t)
205
+ next unless converter
206
+
207
+ result = converter.convert(data, field.type, document)
208
+ return result if result
209
+ end
210
+ nil
211
+ end
212
+ end
213
+ end
214
+ end
215
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pdfrb
4
+ module Model
5
+ module Cos
6
+ # Helpers for PDF Name (s7.3.5): a Symbol on the Ruby side, a
7
+ # `/...` token on the wire. Non-printable or delimiter bytes are
8
+ # `#xx`-escaped; we always emit `#` escapes for the delimiter set
9
+ # even when printable, to match HexaPDF behaviour.
10
+ module NameEncoding
11
+ DELIMITERS = "()<>[]{}/%".b
12
+ WHITESPACE = " \t\n\f\r\0".b
13
+ ESCAPE_CHARS = (DELIMITERS + WHITESPACE + "#").b.chars.uniq.freeze
14
+
15
+ module_function
16
+
17
+ # Symbol -> "/..." String ready for the byte stream.
18
+ def encode(sym)
19
+ raise ArgumentError, "Name must be a Symbol" unless sym.is_a?(Symbol)
20
+
21
+ +"/" << sym.to_s.each_char.with_object(+"") do |ch, buf|
22
+ buf << if ESCAPE_CHARS.include?(ch) || ch.bytes.any? { |b| b < 33 || b > 126 }
23
+ "#%02X" % ch.bytes.first
24
+ else
25
+ ch
26
+ end
27
+ end
28
+ end
29
+
30
+ # "/..." or "..." String -> Symbol. `#xx` sequences decoded.
31
+ def decode(str)
32
+ s = str.to_s
33
+ s = s.delete_prefix("/")
34
+ out = +""
35
+ i = 0
36
+ bytes = s.bytes
37
+ while i < bytes.length
38
+ b = bytes[i]
39
+ if b == 35 # #
40
+ hex = bytes[i + 1, 2]
41
+ if hex && hex.length == 2 && hex.all? { |h| hex_byte?(h) }
42
+ hex_str = hex.map(&:chr).join
43
+ out << hex_str.to_i(16).chr
44
+ i += 3
45
+ else
46
+ out << "#"
47
+ i += 1
48
+ end
49
+ else
50
+ out << b.chr
51
+ i += 1
52
+ end
53
+ end
54
+ out.to_sym
55
+ end
56
+
57
+ def hex_byte?(b)
58
+ (48..57).cover?(b) || (65..70).cover?(b) || (97..102).cover?(b)
59
+ end
60
+ module_function :hex_byte?
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pdfrb
4
+ module Model
5
+ module Cos
6
+ # A Dictionary with an associated raw byte payload (s7.3.8.1).
7
+ # Filters (s7.4) are applied on read via `decoded_stream` and on
8
+ # write via `encoded_stream=`.
9
+ class Stream < Dictionary
10
+ def initialize(value = {}, stream: "".b, oid: 0, gen: 0, document: nil)
11
+ super(value, oid: oid, gen: gen, document: document)
12
+ @stream = stream.to_s.dup.force_encoding(Encoding::BINARY)
13
+ end
14
+
15
+ attr_reader :stream
16
+
17
+ def stream=(bytes)
18
+ @stream = bytes.to_s.dup.force_encoding(Encoding::BINARY)
19
+ @value[:Length] = @stream.bytesize
20
+ end
21
+
22
+ # Apply /Filter pipeline (if any) to decode the raw stream.
23
+ # Returns raw bytes when no filter or /Filter /Identity.
24
+ def decoded_stream
25
+ filter = raw_filter
26
+ return @stream if filter.nil? || filter == :Identity
27
+
28
+ unless Pdfrb.const_defined?(:Filter)
29
+ raise Pdfrb::FilterError, "Filter layer not loaded"
30
+ end
31
+
32
+ Pdfrb::Filter.apply(
33
+ @stream,
34
+ filters: as_filter_list(filter),
35
+ parms: as_parms_list(raw_decode_parms),
36
+ direction: :decode,
37
+ document: document
38
+ )
39
+ end
40
+
41
+ # Apply /Filter pipeline in reverse to encode +bytes+. Sets
42
+ # /Length to the encoded byte count.
43
+ def encoded_stream=(bytes)
44
+ filter = raw_filter
45
+ if filter.nil?
46
+ @stream = bytes.to_s.dup.force_encoding(Encoding::BINARY)
47
+ else
48
+ @stream = Pdfrb::Filter.apply(
49
+ bytes,
50
+ filters: as_filter_list(filter),
51
+ parms: as_parms_list(raw_decode_parms),
52
+ direction: :encode,
53
+ document: document
54
+ )
55
+ end
56
+ @value[:Length] = @stream.bytesize
57
+ end
58
+
59
+ private
60
+
61
+ def raw_filter
62
+ @value[:Filter]
63
+ end
64
+
65
+ def raw_decode_parms
66
+ @value[:DecodeParms] || @value[:DP]
67
+ end
68
+
69
+ # Normalise /Filter to an Array of filter names. /Filter may
70
+ # be a single Name or an Array of Names.
71
+ def as_filter_list(filter)
72
+ case filter
73
+ when ::Array then filter
74
+ when Pdfrb::Model::PdfArray then filter.value
75
+ else [filter]
76
+ end
77
+ end
78
+
79
+ # Normalise /DecodeParms to an Array of Hashes (one per
80
+ # filter). /DecodeParms may be a single Hash (applies to all
81
+ # filters) or an Array of Hashes.
82
+ # NOTE: Array(Hash) returns [[:k, :v], ...], NOT [hash]. We
83
+ # must check the type explicitly.
84
+ def as_parms_list(parms)
85
+ case parms
86
+ when nil then []
87
+ when ::Array then parms
88
+ when Pdfrb::Model::PdfArray then parms.value
89
+ when ::Hash then [parms]
90
+ else [parms]
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end