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.
- checksums.yaml +7 -0
- data/.rspec +2 -0
- data/.rubocop.yml +22 -0
- data/.rubocop_todo.yml +819 -0
- data/.yardopts +4 -0
- data/CHANGELOG.md +226 -0
- data/CLAUDE.md +110 -0
- data/Gemfile +13 -0
- data/LICENSE +25 -0
- data/README.adoc +88 -0
- data/Rakefile +45 -0
- data/benchmarks/bench.rb +49 -0
- data/data/pdfrb/afm/Courier-Bold.afm +342 -0
- data/data/pdfrb/afm/Courier-BoldOblique.afm +342 -0
- data/data/pdfrb/afm/Courier-Oblique.afm +342 -0
- data/data/pdfrb/afm/Courier.afm +342 -0
- data/data/pdfrb/afm/Helvetica-Bold.afm +2827 -0
- data/data/pdfrb/afm/Helvetica-BoldOblique.afm +2827 -0
- data/data/pdfrb/afm/Helvetica-Oblique.afm +3051 -0
- data/data/pdfrb/afm/Helvetica.afm +3051 -0
- data/data/pdfrb/afm/Symbol.afm +213 -0
- data/data/pdfrb/afm/Times-Bold.afm +2588 -0
- data/data/pdfrb/afm/Times-BoldItalic.afm +2384 -0
- data/data/pdfrb/afm/Times-Italic.afm +2667 -0
- data/data/pdfrb/afm/Times-Roman.afm +2419 -0
- data/data/pdfrb/afm/ZapfDingbats.afm +225 -0
- data/data/pdfrb/arlington/latest/3DActivation.tsv +10 -0
- data/data/pdfrb/arlington/latest/3DAnimationStyle.tsv +5 -0
- data/data/pdfrb/arlington/latest/3DBackground.tsv +6 -0
- data/data/pdfrb/arlington/latest/3DCrossSection.tsv +11 -0
- data/data/pdfrb/arlington/latest/3DLightingScheme.tsv +3 -0
- data/data/pdfrb/arlington/latest/3DMeasure3DC.tsv +12 -0
- data/data/pdfrb/arlington/latest/3DMeasureAD3.tsv +21 -0
- data/data/pdfrb/arlington/latest/3DMeasureLD3.tsv +18 -0
- data/data/pdfrb/arlington/latest/3DMeasurePD3.tsv +19 -0
- data/data/pdfrb/arlington/latest/3DMeasureRD3.tsv +23 -0
- data/data/pdfrb/arlington/latest/3DNode.tsv +9 -0
- data/data/pdfrb/arlington/latest/3DReference.tsv +3 -0
- data/data/pdfrb/arlington/latest/3DRenderMode.tsv +7 -0
- data/data/pdfrb/arlington/latest/3DStream.tsv +16 -0
- data/data/pdfrb/arlington/latest/3DUnits.tsv +10 -0
- data/data/pdfrb/arlington/latest/3DView.tsv +17 -0
- data/data/pdfrb/arlington/latest/3DViewAddEntries.tsv +19 -0
- data/data/pdfrb/arlington/latest/AAPL_ST.tsv +7 -0
- data/data/pdfrb/arlington/latest/AFEmbeddedFileParameter.tsv +6 -0
- data/data/pdfrb/arlington/latest/AFEmbeddedFileStream.tsv +12 -0
- data/data/pdfrb/arlington/latest/AFFileSpecEF.tsv +3 -0
- data/data/pdfrb/arlington/latest/AFFileSpecification.tsv +17 -0
- data/data/pdfrb/arlington/latest/ActionECMAScript.tsv +5 -0
- data/data/pdfrb/arlington/latest/ActionGoTo.tsv +6 -0
- data/data/pdfrb/arlington/latest/ActionGoTo3DView.tsv +6 -0
- data/data/pdfrb/arlington/latest/ActionGoToDp.tsv +5 -0
- data/data/pdfrb/arlington/latest/ActionGoToE.tsv +8 -0
- data/data/pdfrb/arlington/latest/ActionGoToR.tsv +8 -0
- data/data/pdfrb/arlington/latest/ActionHide.tsv +6 -0
- data/data/pdfrb/arlington/latest/ActionImportData.tsv +5 -0
- data/data/pdfrb/arlington/latest/ActionLaunch.tsv +9 -0
- data/data/pdfrb/arlington/latest/ActionMovie.tsv +7 -0
- data/data/pdfrb/arlington/latest/ActionNOP.tsv +4 -0
- data/data/pdfrb/arlington/latest/ActionNamed.tsv +5 -0
- data/data/pdfrb/arlington/latest/ActionRendition.tsv +8 -0
- data/data/pdfrb/arlington/latest/ActionResetForm.tsv +6 -0
- data/data/pdfrb/arlington/latest/ActionRichMediaExecute.tsv +7 -0
- data/data/pdfrb/arlington/latest/ActionSetOCGState.tsv +6 -0
- data/data/pdfrb/arlington/latest/ActionSetState.tsv +6 -0
- data/data/pdfrb/arlington/latest/ActionSound.tsv +9 -0
- data/data/pdfrb/arlington/latest/ActionSubmitForm.tsv +8 -0
- data/data/pdfrb/arlington/latest/ActionThread.tsv +7 -0
- data/data/pdfrb/arlington/latest/ActionTransition.tsv +5 -0
- data/data/pdfrb/arlington/latest/ActionURI.tsv +6 -0
- data/data/pdfrb/arlington/latest/AddActionCatalog.tsv +6 -0
- data/data/pdfrb/arlington/latest/AddActionFormField.tsv +5 -0
- data/data/pdfrb/arlington/latest/AddActionPageObject.tsv +3 -0
- data/data/pdfrb/arlington/latest/AddActionScreenAnnotation.tsv +9 -0
- data/data/pdfrb/arlington/latest/AddActionWidgetAnnotation.tsv +11 -0
- data/data/pdfrb/arlington/latest/AlternateImage.tsv +4 -0
- data/data/pdfrb/arlington/latest/Annot3D.tsv +27 -0
- data/data/pdfrb/arlington/latest/AnnotCaret.tsv +31 -0
- data/data/pdfrb/arlington/latest/AnnotCircle.tsv +33 -0
- data/data/pdfrb/arlington/latest/AnnotFileAttachment.tsv +31 -0
- data/data/pdfrb/arlington/latest/AnnotFreeText.tsv +37 -0
- data/data/pdfrb/arlington/latest/AnnotHighlight.tsv +30 -0
- data/data/pdfrb/arlington/latest/AnnotInk.tsv +32 -0
- data/data/pdfrb/arlington/latest/AnnotLine.tsv +40 -0
- data/data/pdfrb/arlington/latest/AnnotLink.tsv +27 -0
- data/data/pdfrb/arlington/latest/AnnotMovie.tsv +23 -0
- data/data/pdfrb/arlington/latest/AnnotPolyLine.tsv +36 -0
- data/data/pdfrb/arlington/latest/AnnotPolygon.tsv +36 -0
- data/data/pdfrb/arlington/latest/AnnotPopup.tsv +22 -0
- data/data/pdfrb/arlington/latest/AnnotPrinterMark.tsv +21 -0
- data/data/pdfrb/arlington/latest/AnnotProjection.tsv +29 -0
- data/data/pdfrb/arlington/latest/AnnotRedact.tsv +36 -0
- data/data/pdfrb/arlington/latest/AnnotRichMedia.tsv +22 -0
- data/data/pdfrb/arlington/latest/AnnotScreen.tsv +24 -0
- data/data/pdfrb/arlington/latest/AnnotSound.tsv +31 -0
- data/data/pdfrb/arlington/latest/AnnotSquare.tsv +33 -0
- data/data/pdfrb/arlington/latest/AnnotSquiggly.tsv +30 -0
- data/data/pdfrb/arlington/latest/AnnotStamp.tsv +30 -0
- data/data/pdfrb/arlington/latest/AnnotStrikeOut.tsv +30 -0
- data/data/pdfrb/arlington/latest/AnnotText.tsv +33 -0
- data/data/pdfrb/arlington/latest/AnnotTrapNetwork.tsv +24 -0
- data/data/pdfrb/arlington/latest/AnnotUnderline.tsv +30 -0
- data/data/pdfrb/arlington/latest/AnnotWatermark.tsv +21 -0
- data/data/pdfrb/arlington/latest/AnnotWidget.tsv +32 -0
- data/data/pdfrb/arlington/latest/Appearance.tsv +4 -0
- data/data/pdfrb/arlington/latest/AppearanceCharacteristics.tsv +12 -0
- data/data/pdfrb/arlington/latest/AppearancePrinterMark.tsv +4 -0
- data/data/pdfrb/arlington/latest/AppearancePrinterMarkSubDict.tsv +2 -0
- data/data/pdfrb/arlington/latest/AppearanceSubDict.tsv +2 -0
- data/data/pdfrb/arlington/latest/AppearanceTrapNet.tsv +4 -0
- data/data/pdfrb/arlington/latest/AppearanceTrapNetSubDict.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOf3DCrossSection.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOf3DMeasure.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOf3DNode.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOf3DTransMatrix.tsv +13 -0
- data/data/pdfrb/arlington/latest/ArrayOf3DView.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOf3DViewAddEntries.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOf3PDUNames.tsv +4 -0
- data/data/pdfrb/arlington/latest/ArrayOf4Functions.tsv +5 -0
- data/data/pdfrb/arlington/latest/ArrayOfAFFileSpecifications.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOfActionHideAnnots.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfActions.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfAnnotStates.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfAnnots.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfArraysInkList.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfArraysPaths.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOfArraysRBGroups.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfArraysURLStrings.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfArraysXPTSValues.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfAttributeObjects.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfAttributeRevisions.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOfBeads.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfBlendModes.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfBooleansGeneral.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIDGlyphMetricsW.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIDGlyphMetricsW2.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_AssemblingIntent.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_AssemblyItem.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_BindIn.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_BindingIntent.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_BlowIn.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_ChannelUsage.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_Coatings.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_ColorIntent.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_ComChannel.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_ContactTypes.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_FinishedDimensions.tsv +4 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_FoldingIntent.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_HoleMakingIntent.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_HolePattern.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_LABColorValue.tsv +4 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_LayoutIntent.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_MediaIntent.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_PrintProcess.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_ProductionIntent.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_Resource.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfCIP4_StickOn.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfClassNamesRevisions.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOfCompressionFilterNames.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfDPartArrays.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfDParts.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfDashPatterns.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfDecodeParams.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfDescendantFonts.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfDevExtensions.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfDifferences.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfDigestMethod.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfDuration.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOfFieldChoiceOpt.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfFieldID.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfFields.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfFileSpecifications.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOfFilterNames.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfFontAndSize.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOfFonts.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfFunctions.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfGSPDashPatterns.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOfImageAlternates.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfIndirectFileSpecifications.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfIntegersGeneral.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfIntegersGreaterThanZero.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfMediaPlayerInfo.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfNamesForEnforce.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfNamesForPrintingOrder.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfNamesForProcSet.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfNamesGeneral.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfNamesInPtData.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfNamespace.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfNavigatorLayoutNames.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfNonNegativeIntegersGeneral.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfNumberFormats.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfNumbersGeneral.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfOCConfig.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfOCG.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfOCGState.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfOCGindirect.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfOCUsage.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfOPI13Color.tsv +6 -0
- data/data/pdfrb/arlington/latest/ArrayOfOPI2Inks.tsv +4 -0
- data/data/pdfrb/arlington/latest/ArrayOfOptContentGroups.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfOptContentOrderElements.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfOptContentOrders.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOfOutputIntents.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfPageTreeNodeKids.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfPages.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfPaths.tsv +7 -0
- data/data/pdfrb/arlington/latest/ArrayOfQuadPoints.tsv +9 -0
- data/data/pdfrb/arlington/latest/ArrayOfRenditions.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfRequirements.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfRequirementsHandlers.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfRichMediaConfiguration.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfRichMediaCuePoints.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfRichMediaInstances.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfSignatureReferences.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfSignatureSubFilterNames.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfSoftwareIdentifiers.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfSoftwareVersions.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfSourceInformation.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfStreamsGeneral.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfStringsASCII.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfStringsByte.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfStringsText.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfStringsTextOrNames.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfStructElem.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfStructElemKids.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfStructElemParentTree.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfSubjectDN.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfTags.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOfThreads.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfTrapNetVersionObjects.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfTrapRegions.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfURLStrings.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfURLs.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfUserProperty.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfViewParams.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfViewports.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfWebCaptureCommands.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfWebCaptureImages.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfWebCapturePages.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfXFA.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOfXPTSValues.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOfXRefIndexIntegers.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOfXRefWIntegers.tsv +4 -0
- data/data/pdfrb/arlington/latest/ArrayOf_2Booleans.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOf_2DashNumbers.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOf_2Integers.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOf_2LineEndingsNames.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOf_2NonNegativeIntegers.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOf_2Numbers.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOf_2StringsByte.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOf_2StringsText.tsv +3 -0
- data/data/pdfrb/arlington/latest/ArrayOf_3CenterOfRotationNumbers.tsv +4 -0
- data/data/pdfrb/arlington/latest/ArrayOf_3NonNegativeIntegers.tsv +4 -0
- data/data/pdfrb/arlington/latest/ArrayOf_3Numbers.tsv +4 -0
- data/data/pdfrb/arlington/latest/ArrayOf_3OrientationNumbers.tsv +4 -0
- data/data/pdfrb/arlington/latest/ArrayOf_3RGBNumbers.tsv +4 -0
- data/data/pdfrb/arlington/latest/ArrayOf_3or4CalloutLineNumbers.tsv +7 -0
- data/data/pdfrb/arlington/latest/ArrayOf_4AnnotBorderCharacteristics.tsv +5 -0
- data/data/pdfrb/arlington/latest/ArrayOf_4BorderColorArrays.tsv +5 -0
- data/data/pdfrb/arlington/latest/ArrayOf_4BorderStyleNames.tsv +5 -0
- data/data/pdfrb/arlington/latest/ArrayOf_4BorderThicknessNumbers.tsv +5 -0
- data/data/pdfrb/arlington/latest/ArrayOf_4ColourSpaceEntries.tsv +5 -0
- data/data/pdfrb/arlington/latest/ArrayOf_4Integers.tsv +5 -0
- data/data/pdfrb/arlington/latest/ArrayOf_4Numbers.tsv +5 -0
- data/data/pdfrb/arlington/latest/ArrayOf_4NumbersColorAnnotation.tsv +5 -0
- data/data/pdfrb/arlington/latest/ArrayOf_6Numbers.tsv +7 -0
- data/data/pdfrb/arlington/latest/ArrayOf_8Numbers.tsv +9 -0
- data/data/pdfrb/arlington/latest/ArrayOf_9Numbers.tsv +10 -0
- data/data/pdfrb/arlington/latest/ArrayOf_ArrayOfNumbers.tsv +2 -0
- data/data/pdfrb/arlington/latest/ArrayOf_RoleMapNS.tsv +3 -0
- data/data/pdfrb/arlington/latest/AuthCode.tsv +5 -0
- data/data/pdfrb/arlington/latest/Bead.tsv +7 -0
- data/data/pdfrb/arlington/latest/BeadFirst.tsv +7 -0
- data/data/pdfrb/arlington/latest/BlackpointArray.tsv +4 -0
- data/data/pdfrb/arlington/latest/BorderEffect.tsv +3 -0
- data/data/pdfrb/arlington/latest/BorderStyle.tsv +5 -0
- data/data/pdfrb/arlington/latest/BoxColorInfo.tsv +5 -0
- data/data/pdfrb/arlington/latest/BoxStyle.tsv +5 -0
- data/data/pdfrb/arlington/latest/CIDFontDescriptorMetrics.tsv +17 -0
- data/data/pdfrb/arlington/latest/CIDSystemInfo.tsv +4 -0
- data/data/pdfrb/arlington/latest/CIP4_Address.tsv +13 -0
- data/data/pdfrb/arlington/latest/CIP4_AssemblingIntent.tsv +7 -0
- data/data/pdfrb/arlington/latest/CIP4_AssemblyItem.tsv +3 -0
- data/data/pdfrb/arlington/latest/CIP4_BindIn.tsv +3 -0
- data/data/pdfrb/arlington/latest/CIP4_BindingIntent.tsv +6 -0
- data/data/pdfrb/arlington/latest/CIP4_BlowIn.tsv +3 -0
- data/data/pdfrb/arlington/latest/CIP4_ColorIntent.tsv +3 -0
- data/data/pdfrb/arlington/latest/CIP4_ComChannel.tsv +6 -0
- data/data/pdfrb/arlington/latest/CIP4_Company.tsv +5 -0
- data/data/pdfrb/arlington/latest/CIP4_Contact.tsv +8 -0
- data/data/pdfrb/arlington/latest/CIP4_FoldingIntent.tsv +4 -0
- data/data/pdfrb/arlington/latest/CIP4_HoleMakingIntent.tsv +3 -0
- data/data/pdfrb/arlington/latest/CIP4_HolePattern.tsv +4 -0
- data/data/pdfrb/arlington/latest/CIP4_Intent.tsv +11 -0
- data/data/pdfrb/arlington/latest/CIP4_IntentSummary.tsv +10 -0
- data/data/pdfrb/arlington/latest/CIP4_LayoutIntent.tsv +5 -0
- data/data/pdfrb/arlington/latest/CIP4_MediaIntent.tsv +11 -0
- data/data/pdfrb/arlington/latest/CIP4_Metadata.tsv +11 -0
- data/data/pdfrb/arlington/latest/CIP4_Person.tsv +10 -0
- data/data/pdfrb/arlington/latest/CIP4_Production.tsv +5 -0
- data/data/pdfrb/arlington/latest/CIP4_ProductionIntent.tsv +4 -0
- data/data/pdfrb/arlington/latest/CIP4_Recipient.tsv +3 -0
- data/data/pdfrb/arlington/latest/CIP4_Root.tsv +9 -0
- data/data/pdfrb/arlington/latest/CIP4_SaddleStitching.tsv +3 -0
- data/data/pdfrb/arlington/latest/CIP4_SideStitching.tsv +3 -0
- data/data/pdfrb/arlington/latest/CIP4_StickOn.tsv +3 -0
- data/data/pdfrb/arlington/latest/CMapStream.tsv +13 -0
- data/data/pdfrb/arlington/latest/CalGrayColorSpace.tsv +3 -0
- data/data/pdfrb/arlington/latest/CalGrayDict.tsv +4 -0
- data/data/pdfrb/arlington/latest/CalRGBColorSpace.tsv +3 -0
- data/data/pdfrb/arlington/latest/CalRGBDict.tsv +5 -0
- data/data/pdfrb/arlington/latest/Catalog.tsv +33 -0
- data/data/pdfrb/arlington/latest/CertSeedValue.tsv +14 -0
- data/data/pdfrb/arlington/latest/CharProcMap.tsv +2 -0
- data/data/pdfrb/arlington/latest/ClassMap.tsv +2 -0
- data/data/pdfrb/arlington/latest/Collection.tsv +11 -0
- data/data/pdfrb/arlington/latest/CollectionColors.tsv +7 -0
- data/data/pdfrb/arlington/latest/CollectionField.tsv +7 -0
- data/data/pdfrb/arlington/latest/CollectionFolder.tsv +13 -0
- data/data/pdfrb/arlington/latest/CollectionItem.tsv +3 -0
- data/data/pdfrb/arlington/latest/CollectionSchema.tsv +3 -0
- data/data/pdfrb/arlington/latest/CollectionSort.tsv +4 -0
- data/data/pdfrb/arlington/latest/CollectionSplit.tsv +4 -0
- data/data/pdfrb/arlington/latest/CollectionSubitem.tsv +4 -0
- data/data/pdfrb/arlington/latest/ColorSpaceMap.tsv +5 -0
- data/data/pdfrb/arlington/latest/ColorantsDict.tsv +2 -0
- data/data/pdfrb/arlington/latest/CryptFilter.tsv +5 -0
- data/data/pdfrb/arlington/latest/CryptFilterMap.tsv +4 -0
- data/data/pdfrb/arlington/latest/CryptFilterPublicKey.tsv +7 -0
- data/data/pdfrb/arlington/latest/CryptFilterPublicKeyMap.tsv +4 -0
- data/data/pdfrb/arlington/latest/DPM.tsv +5 -0
- data/data/pdfrb/arlington/latest/DPart.tsv +8 -0
- data/data/pdfrb/arlington/latest/DPartRoot.tsv +5 -0
- data/data/pdfrb/arlington/latest/DSS.tsv +6 -0
- data/data/pdfrb/arlington/latest/Data.tsv +4 -0
- data/data/pdfrb/arlington/latest/Dest0Array.tsv +3 -0
- data/data/pdfrb/arlington/latest/Dest0StructArray.tsv +3 -0
- data/data/pdfrb/arlington/latest/Dest1Array.tsv +4 -0
- data/data/pdfrb/arlington/latest/Dest1StructArray.tsv +4 -0
- data/data/pdfrb/arlington/latest/Dest4Array.tsv +7 -0
- data/data/pdfrb/arlington/latest/Dest4StructArray.tsv +7 -0
- data/data/pdfrb/arlington/latest/DestDict.tsv +3 -0
- data/data/pdfrb/arlington/latest/DestOutputProfileRef.tsv +7 -0
- data/data/pdfrb/arlington/latest/DestXYZArray.tsv +6 -0
- data/data/pdfrb/arlington/latest/DestXYZStructArray.tsv +6 -0
- data/data/pdfrb/arlington/latest/DestsMap.tsv +2 -0
- data/data/pdfrb/arlington/latest/DevExtensions.tsv +6 -0
- data/data/pdfrb/arlington/latest/DeviceCMYKColorSpace.tsv +2 -0
- data/data/pdfrb/arlington/latest/DeviceGrayColorSpace.tsv +2 -0
- data/data/pdfrb/arlington/latest/DeviceNColorSpace.tsv +6 -0
- data/data/pdfrb/arlington/latest/DeviceNDict.tsv +5 -0
- data/data/pdfrb/arlington/latest/DeviceNMixingHints.tsv +4 -0
- data/data/pdfrb/arlington/latest/DeviceNProcess.tsv +3 -0
- data/data/pdfrb/arlington/latest/DeviceRGBColorSpace.tsv +2 -0
- data/data/pdfrb/arlington/latest/DictionaryOfDictionaries.tsv +2 -0
- data/data/pdfrb/arlington/latest/DictionaryOfFunctions.tsv +3 -0
- data/data/pdfrb/arlington/latest/DocInfo.tsv +13 -0
- data/data/pdfrb/arlington/latest/DocMDPTransformParameters.tsv +4 -0
- data/data/pdfrb/arlington/latest/DocTimeStamp.tsv +19 -0
- data/data/pdfrb/arlington/latest/EmbeddedFileParameter.tsv +6 -0
- data/data/pdfrb/arlington/latest/EmbeddedFileStream.tsv +12 -0
- data/data/pdfrb/arlington/latest/Encoding.tsv +4 -0
- data/data/pdfrb/arlington/latest/EncryptedPayload.tsv +4 -0
- data/data/pdfrb/arlington/latest/EncryptionPublicKey.tsv +13 -0
- data/data/pdfrb/arlington/latest/EncryptionStandard.tsv +18 -0
- data/data/pdfrb/arlington/latest/ExData3DMarkup.tsv +6 -0
- data/data/pdfrb/arlington/latest/ExDataMarkupGeo.tsv +3 -0
- data/data/pdfrb/arlington/latest/ExDataProjection.tsv +4 -0
- data/data/pdfrb/arlington/latest/Extensions.tsv +5 -0
- data/data/pdfrb/arlington/latest/FDDict.tsv +2 -0
- data/data/pdfrb/arlington/latest/Field.tsv +8 -0
- data/data/pdfrb/arlington/latest/FieldBtnCheckbox.tsv +16 -0
- data/data/pdfrb/arlington/latest/FieldBtnPush.tsv +15 -0
- data/data/pdfrb/arlington/latest/FieldBtnRadio.tsv +16 -0
- data/data/pdfrb/arlington/latest/FieldChoice.tsv +18 -0
- data/data/pdfrb/arlington/latest/FieldMDPTransformParameters.tsv +5 -0
- data/data/pdfrb/arlington/latest/FieldSig.tsv +17 -0
- data/data/pdfrb/arlington/latest/FieldTx.tsv +16 -0
- data/data/pdfrb/arlington/latest/FileSpecEF.tsv +3 -0
- data/data/pdfrb/arlington/latest/FileSpecRF.tsv +3 -0
- data/data/pdfrb/arlington/latest/FileSpecification.tsv +17 -0
- data/data/pdfrb/arlington/latest/FileTrailer.tsv +11 -0
- data/data/pdfrb/arlington/latest/FilterCCITTFaxDecode.tsv +10 -0
- data/data/pdfrb/arlington/latest/FilterCrypt.tsv +3 -0
- data/data/pdfrb/arlington/latest/FilterDCTDecode.tsv +2 -0
- data/data/pdfrb/arlington/latest/FilterFlateDecode.tsv +5 -0
- data/data/pdfrb/arlington/latest/FilterJBIG2Decode.tsv +2 -0
- data/data/pdfrb/arlington/latest/FilterLZWDecode.tsv +6 -0
- data/data/pdfrb/arlington/latest/FixedPrint.tsv +5 -0
- data/data/pdfrb/arlington/latest/FloatingWindowParameters.tsv +10 -0
- data/data/pdfrb/arlington/latest/FontCIDType0.tsv +12 -0
- data/data/pdfrb/arlington/latest/FontCIDType2.tsv +12 -0
- data/data/pdfrb/arlington/latest/FontDescriptorCIDType0.tsv +25 -0
- data/data/pdfrb/arlington/latest/FontDescriptorCIDType2.tsv +26 -0
- data/data/pdfrb/arlington/latest/FontDescriptorTrueType.tsv +22 -0
- data/data/pdfrb/arlington/latest/FontDescriptorType1.tsv +22 -0
- data/data/pdfrb/arlington/latest/FontDescriptorType3.tsv +19 -0
- data/data/pdfrb/arlington/latest/FontFile.tsv +13 -0
- data/data/pdfrb/arlington/latest/FontFile2.tsv +13 -0
- data/data/pdfrb/arlington/latest/FontFile3CIDType0.tsv +13 -0
- data/data/pdfrb/arlington/latest/FontFile3OpenType.tsv +13 -0
- data/data/pdfrb/arlington/latest/FontFile3Type1.tsv +13 -0
- data/data/pdfrb/arlington/latest/FontFileType1.tsv +13 -0
- data/data/pdfrb/arlington/latest/FontMap.tsv +2 -0
- data/data/pdfrb/arlington/latest/FontMultipleMaster.tsv +11 -0
- data/data/pdfrb/arlington/latest/FontTrueType.tsv +11 -0
- data/data/pdfrb/arlington/latest/FontType0.tsv +7 -0
- data/data/pdfrb/arlington/latest/FontType1.tsv +11 -0
- data/data/pdfrb/arlington/latest/FontType3.tsv +14 -0
- data/data/pdfrb/arlington/latest/FunctionType0.tsv +16 -0
- data/data/pdfrb/arlington/latest/FunctionType2.tsv +7 -0
- data/data/pdfrb/arlington/latest/FunctionType3.tsv +7 -0
- data/data/pdfrb/arlington/latest/FunctionType4.tsv +11 -0
- data/data/pdfrb/arlington/latest/GTS_ProcStepsGroup.tsv +4 -0
- data/data/pdfrb/arlington/latest/GTSm_DevExtensions.tsv +6 -0
- data/data/pdfrb/arlington/latest/GammaArray.tsv +4 -0
- data/data/pdfrb/arlington/latest/GeographicCoordinateSystem.tsv +4 -0
- data/data/pdfrb/arlington/latest/GraphicsStateParameter.tsv +33 -0
- data/data/pdfrb/arlington/latest/GraphicsStateParameterMap.tsv +2 -0
- data/data/pdfrb/arlington/latest/GroupAttributes.tsv +6 -0
- data/data/pdfrb/arlington/latest/HalftoneType1.tsv +9 -0
- data/data/pdfrb/arlington/latest/HalftoneType10.tsv +14 -0
- data/data/pdfrb/arlington/latest/HalftoneType16.tsv +16 -0
- data/data/pdfrb/arlington/latest/HalftoneType5.tsv +6 -0
- data/data/pdfrb/arlington/latest/HalftoneType6.tsv +14 -0
- data/data/pdfrb/arlington/latest/ICCBasedColorSpace.tsv +3 -0
- data/data/pdfrb/arlington/latest/ICCProfileStream.tsv +12 -0
- data/data/pdfrb/arlington/latest/ISO_DevExtensions.tsv +6 -0
- data/data/pdfrb/arlington/latest/IconFit.tsv +5 -0
- data/data/pdfrb/arlington/latest/IndexedColorSpace.tsv +5 -0
- data/data/pdfrb/arlington/latest/InteractiveForm.tsv +9 -0
- data/data/pdfrb/arlington/latest/LabColorSpace.tsv +3 -0
- data/data/pdfrb/arlington/latest/LabDict.tsv +4 -0
- data/data/pdfrb/arlington/latest/LabRangeArray.tsv +5 -0
- data/data/pdfrb/arlington/latest/LegalAttestation.tsv +23 -0
- data/data/pdfrb/arlington/latest/LinearizationParameterDict.tsv +9 -0
- data/data/pdfrb/arlington/latest/MDPDict.tsv +2 -0
- data/data/pdfrb/arlington/latest/Mac.tsv +4 -0
- data/data/pdfrb/arlington/latest/MarkInfo.tsv +4 -0
- data/data/pdfrb/arlington/latest/MarkedContentReference.tsv +6 -0
- data/data/pdfrb/arlington/latest/MeasureGEO.tsv +10 -0
- data/data/pdfrb/arlington/latest/MeasureRL.tsv +12 -0
- data/data/pdfrb/arlington/latest/MediaClipData.tsv +11 -0
- data/data/pdfrb/arlington/latest/MediaClipDataMHBE.tsv +2 -0
- data/data/pdfrb/arlington/latest/MediaClipSection.tsv +8 -0
- data/data/pdfrb/arlington/latest/MediaClipSectionMHBE.tsv +3 -0
- data/data/pdfrb/arlington/latest/MediaCriteria.tsv +12 -0
- data/data/pdfrb/arlington/latest/MediaDuration.tsv +4 -0
- data/data/pdfrb/arlington/latest/MediaOffsetFrame.tsv +4 -0
- data/data/pdfrb/arlington/latest/MediaOffsetMarker.tsv +4 -0
- data/data/pdfrb/arlington/latest/MediaOffsetTime.tsv +4 -0
- data/data/pdfrb/arlington/latest/MediaPermissions.tsv +3 -0
- data/data/pdfrb/arlington/latest/MediaPlayParameters.tsv +5 -0
- data/data/pdfrb/arlington/latest/MediaPlayParametersBE.tsv +7 -0
- data/data/pdfrb/arlington/latest/MediaPlayParametersMH.tsv +7 -0
- data/data/pdfrb/arlington/latest/MediaPlayerInfo.tsv +5 -0
- data/data/pdfrb/arlington/latest/MediaPlayers.tsv +5 -0
- data/data/pdfrb/arlington/latest/MediaScreenParameters.tsv +4 -0
- data/data/pdfrb/arlington/latest/MediaScreenParametersMHBE.tsv +6 -0
- data/data/pdfrb/arlington/latest/Metadata.tsv +10 -0
- data/data/pdfrb/arlington/latest/MicrosoftWindowsLaunchParam.tsv +5 -0
- data/data/pdfrb/arlington/latest/MinimumBitDepth.tsv +4 -0
- data/data/pdfrb/arlington/latest/MinimumScreenSize.tsv +4 -0
- data/data/pdfrb/arlington/latest/Movie.tsv +5 -0
- data/data/pdfrb/arlington/latest/MovieActivation.tsv +10 -0
- data/data/pdfrb/arlington/latest/Name.tsv +12 -0
- data/data/pdfrb/arlington/latest/Namespace.tsv +5 -0
- data/data/pdfrb/arlington/latest/NavNode.tsv +7 -0
- data/data/pdfrb/arlington/latest/Navigator.tsv +16 -0
- data/data/pdfrb/arlington/latest/NumberFormat.tsv +12 -0
- data/data/pdfrb/arlington/latest/OOAdditionalStmsArray.tsv +3 -0
- data/data/pdfrb/arlington/latest/OPIVersion13.tsv +2 -0
- data/data/pdfrb/arlington/latest/OPIVersion13Dict.tsv +19 -0
- data/data/pdfrb/arlington/latest/OPIVersion20.tsv +2 -0
- data/data/pdfrb/arlington/latest/OPIVersion20Dict.tsv +12 -0
- data/data/pdfrb/arlington/latest/ObjectReference.tsv +4 -0
- data/data/pdfrb/arlington/latest/ObjectStream.tsv +12 -0
- data/data/pdfrb/arlington/latest/OptContentConfig.tsv +12 -0
- data/data/pdfrb/arlington/latest/OptContentCreatorInfo.tsv +4 -0
- data/data/pdfrb/arlington/latest/OptContentExport.tsv +2 -0
- data/data/pdfrb/arlington/latest/OptContentGroup.tsv +6 -0
- data/data/pdfrb/arlington/latest/OptContentLanguage.tsv +3 -0
- data/data/pdfrb/arlington/latest/OptContentMembership.tsv +5 -0
- data/data/pdfrb/arlington/latest/OptContentPageElement.tsv +2 -0
- data/data/pdfrb/arlington/latest/OptContentPrint.tsv +3 -0
- data/data/pdfrb/arlington/latest/OptContentProperties.tsv +4 -0
- data/data/pdfrb/arlington/latest/OptContentUsage.tsv +9 -0
- data/data/pdfrb/arlington/latest/OptContentUsageApplication.tsv +4 -0
- data/data/pdfrb/arlington/latest/OptContentUser.tsv +3 -0
- data/data/pdfrb/arlington/latest/OptContentView.tsv +2 -0
- data/data/pdfrb/arlington/latest/OptContentZoom.tsv +3 -0
- data/data/pdfrb/arlington/latest/Outline.tsv +5 -0
- data/data/pdfrb/arlington/latest/OutlineItem.tsv +13 -0
- data/data/pdfrb/arlington/latest/OutputIntents.tsv +11 -0
- data/data/pdfrb/arlington/latest/PageLabel.tsv +5 -0
- data/data/pdfrb/arlington/latest/PageObject.tsv +35 -0
- data/data/pdfrb/arlington/latest/PagePiece.tsv +2 -0
- data/data/pdfrb/arlington/latest/PageTreeNode.tsv +9 -0
- data/data/pdfrb/arlington/latest/PageTreeNodeRoot.tsv +8 -0
- data/data/pdfrb/arlington/latest/PaperMetaData.tsv +13 -0
- data/data/pdfrb/arlington/latest/PatternColorSpace.tsv +3 -0
- data/data/pdfrb/arlington/latest/PatternMap.tsv +2 -0
- data/data/pdfrb/arlington/latest/PatternType1.tsv +18 -0
- data/data/pdfrb/arlington/latest/PatternType2.tsv +6 -0
- data/data/pdfrb/arlington/latest/Permissions.tsv +3 -0
- data/data/pdfrb/arlington/latest/PointData.tsv +5 -0
- data/data/pdfrb/arlington/latest/ProjectedCoordinateSystem.tsv +4 -0
- data/data/pdfrb/arlington/latest/Projection.tsv +9 -0
- data/data/pdfrb/arlington/latest/Reference.tsv +4 -0
- data/data/pdfrb/arlington/latest/RelatedFilesArray.tsv +3 -0
- data/data/pdfrb/arlington/latest/RenditionBE.tsv +2 -0
- data/data/pdfrb/arlington/latest/RenditionMH.tsv +2 -0
- data/data/pdfrb/arlington/latest/RenditionMedia.tsv +9 -0
- data/data/pdfrb/arlington/latest/RenditionSelector.tsv +7 -0
- data/data/pdfrb/arlington/latest/Requirements3DMarkup.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsAcroFormInteract.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsAction.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsAttachment.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsAttachmentEditing.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsCollection.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsCollectionEditing.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsDPartInteract.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsDigSig.tsv +7 -0
- data/data/pdfrb/arlington/latest/RequirementsDigSigMDP.tsv +7 -0
- data/data/pdfrb/arlington/latest/RequirementsDigSigValidation.tsv +7 -0
- data/data/pdfrb/arlington/latest/RequirementsEnableJavaScripts.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsEncryption.tsv +7 -0
- data/data/pdfrb/arlington/latest/RequirementsGeospatial2D.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsGeospatial3D.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsHandler.tsv +4 -0
- data/data/pdfrb/arlington/latest/RequirementsMarkup.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsMultimedia.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsNavigation.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsOCAutoStates.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsOCInteract.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsPRC.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsRichMedia.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsSTEP.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsSeparationSimulation.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsTransitions.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsU3D.tsv +6 -0
- data/data/pdfrb/arlington/latest/RequirementsglTF.tsv +6 -0
- data/data/pdfrb/arlington/latest/Resource.tsv +10 -0
- data/data/pdfrb/arlington/latest/RichMediaActivation.tsv +8 -0
- data/data/pdfrb/arlington/latest/RichMediaAnimation.tsv +6 -0
- data/data/pdfrb/arlington/latest/RichMediaCommand.tsv +4 -0
- data/data/pdfrb/arlington/latest/RichMediaCommandArray.tsv +2 -0
- data/data/pdfrb/arlington/latest/RichMediaConfiguration.tsv +5 -0
- data/data/pdfrb/arlington/latest/RichMediaContent.tsv +5 -0
- data/data/pdfrb/arlington/latest/RichMediaCuePoint.tsv +6 -0
- data/data/pdfrb/arlington/latest/RichMediaDeactivation.tsv +3 -0
- data/data/pdfrb/arlington/latest/RichMediaHeight.tsv +4 -0
- data/data/pdfrb/arlington/latest/RichMediaInstance.tsv +6 -0
- data/data/pdfrb/arlington/latest/RichMediaParams.tsv +7 -0
- data/data/pdfrb/arlington/latest/RichMediaPosition.tsv +6 -0
- data/data/pdfrb/arlington/latest/RichMediaPresentation.tsv +8 -0
- data/data/pdfrb/arlington/latest/RichMediaSettings.tsv +4 -0
- data/data/pdfrb/arlington/latest/RichMediaWidth.tsv +4 -0
- data/data/pdfrb/arlington/latest/RichMediaWindow.tsv +5 -0
- data/data/pdfrb/arlington/latest/RoleMap.tsv +2 -0
- data/data/pdfrb/arlington/latest/RoleMapNS.tsv +2 -0
- data/data/pdfrb/arlington/latest/Separation.tsv +4 -0
- data/data/pdfrb/arlington/latest/SeparationColorSpace.tsv +5 -0
- data/data/pdfrb/arlington/latest/ShadingMap.tsv +2 -0
- data/data/pdfrb/arlington/latest/ShadingType1.tsv +9 -0
- data/data/pdfrb/arlington/latest/ShadingType2.tsv +10 -0
- data/data/pdfrb/arlington/latest/ShadingType3.tsv +10 -0
- data/data/pdfrb/arlington/latest/ShadingType4.tsv +18 -0
- data/data/pdfrb/arlington/latest/ShadingType5.tsv +18 -0
- data/data/pdfrb/arlington/latest/ShadingType6.tsv +18 -0
- data/data/pdfrb/arlington/latest/ShadingType7.tsv +18 -0
- data/data/pdfrb/arlington/latest/SigFieldLock.tsv +5 -0
- data/data/pdfrb/arlington/latest/SigFieldSeedValue.tsv +15 -0
- data/data/pdfrb/arlington/latest/Signature.tsv +20 -0
- data/data/pdfrb/arlington/latest/SignatureBuildDataAppDict.tsv +10 -0
- data/data/pdfrb/arlington/latest/SignatureBuildDataDict.tsv +9 -0
- data/data/pdfrb/arlington/latest/SignatureBuildDataSigQDict.tsv +10 -0
- data/data/pdfrb/arlington/latest/SignatureBuildPropDict.tsv +5 -0
- data/data/pdfrb/arlington/latest/SignatureReferenceDocMDP.tsv +8 -0
- data/data/pdfrb/arlington/latest/SignatureReferenceFieldMDP.tsv +8 -0
- data/data/pdfrb/arlington/latest/SignatureReferenceIdentity.tsv +7 -0
- data/data/pdfrb/arlington/latest/SignatureReferenceUR.tsv +8 -0
- data/data/pdfrb/arlington/latest/SlideShow.tsv +5 -0
- data/data/pdfrb/arlington/latest/SoftMaskAlpha.tsv +6 -0
- data/data/pdfrb/arlington/latest/SoftMaskLuminosity.tsv +6 -0
- data/data/pdfrb/arlington/latest/SoftwareIdentifier.tsv +8 -0
- data/data/pdfrb/arlington/latest/Solidities.tsv +3 -0
- data/data/pdfrb/arlington/latest/SoundObject.tsv +15 -0
- data/data/pdfrb/arlington/latest/SourceInformation.tsv +6 -0
- data/data/pdfrb/arlington/latest/SpectralData.tsv +2 -0
- data/data/pdfrb/arlington/latest/Stream.tsv +8 -0
- data/data/pdfrb/arlington/latest/StructElem.tsv +20 -0
- data/data/pdfrb/arlington/latest/StructTreeRoot.tsv +11 -0
- data/data/pdfrb/arlington/latest/StructureAttributesDict.tsv +54 -0
- data/data/pdfrb/arlington/latest/StyleDict.tsv +2 -0
- data/data/pdfrb/arlington/latest/SubjectDN.tsv +2 -0
- data/data/pdfrb/arlington/latest/Target.tsv +6 -0
- data/data/pdfrb/arlington/latest/TargetEmbedded.tsv +6 -0
- data/data/pdfrb/arlington/latest/Thread.tsv +5 -0
- data/data/pdfrb/arlington/latest/Thumbnail.tsv +15 -0
- data/data/pdfrb/arlington/latest/TimeStampDict.tsv +3 -0
- data/data/pdfrb/arlington/latest/Timespan.tsv +4 -0
- data/data/pdfrb/arlington/latest/ToUnicodeCMapStream.tsv +13 -0
- data/data/pdfrb/arlington/latest/TrailerIDArray.tsv +3 -0
- data/data/pdfrb/arlington/latest/Transition.tsv +9 -0
- data/data/pdfrb/arlington/latest/TrapRegion.tsv +3 -0
- data/data/pdfrb/arlington/latest/URI.tsv +2 -0
- data/data/pdfrb/arlington/latest/URLAlias.tsv +3 -0
- data/data/pdfrb/arlington/latest/URTransformParamAnnotsArray.tsv +2 -0
- data/data/pdfrb/arlington/latest/URTransformParamDocumentArray.tsv +2 -0
- data/data/pdfrb/arlington/latest/URTransformParamEFArray.tsv +2 -0
- data/data/pdfrb/arlington/latest/URTransformParamFormArray.tsv +2 -0
- data/data/pdfrb/arlington/latest/URTransformParamSignatureArray.tsv +2 -0
- data/data/pdfrb/arlington/latest/URTransformParameters.tsv +10 -0
- data/data/pdfrb/arlington/latest/UserProperty.tsv +5 -0
- data/data/pdfrb/arlington/latest/VRI.tsv +7 -0
- data/data/pdfrb/arlington/latest/VRIMap.tsv +2 -0
- data/data/pdfrb/arlington/latest/ViewParams.tsv +3 -0
- data/data/pdfrb/arlington/latest/ViewerPreferences.tsv +19 -0
- data/data/pdfrb/arlington/latest/Viewport.tsv +6 -0
- data/data/pdfrb/arlington/latest/VisibilityExpressionArray.tsv +4 -0
- data/data/pdfrb/arlington/latest/WebCaptureCommand.tsv +8 -0
- data/data/pdfrb/arlington/latest/WebCaptureCommandSettings.tsv +3 -0
- data/data/pdfrb/arlington/latest/WebCaptureImageSet.tsv +9 -0
- data/data/pdfrb/arlington/latest/WebCaptureInfo.tsv +3 -0
- data/data/pdfrb/arlington/latest/WebCapturePageSet.tsv +10 -0
- data/data/pdfrb/arlington/latest/WhitepointArray.tsv +4 -0
- data/data/pdfrb/arlington/latest/XObjectFormPS.tsv +10 -0
- data/data/pdfrb/arlington/latest/XObjectFormPSpassthrough.tsv +15 -0
- data/data/pdfrb/arlington/latest/XObjectFormPrinterMark.tsv +29 -0
- data/data/pdfrb/arlington/latest/XObjectFormTrapNet.tsv +31 -0
- data/data/pdfrb/arlington/latest/XObjectFormType1.tsv +32 -0
- data/data/pdfrb/arlington/latest/XObjectImage.tsv +35 -0
- data/data/pdfrb/arlington/latest/XObjectImageMask.tsv +29 -0
- data/data/pdfrb/arlington/latest/XObjectImageSoftMask.tsv +22 -0
- data/data/pdfrb/arlington/latest/XObjectMap.tsv +2 -0
- data/data/pdfrb/arlington/latest/XRefStream.tsv +20 -0
- data/data/pdfrb/arlington/latest/_UniversalArray.tsv +2 -0
- data/data/pdfrb/arlington/latest/_UniversalDictionary.tsv +2 -0
- data/data/pdfrb/glyphlist.txt +4306 -0
- data/data/pdfrb/zapfdingbats.txt +226 -0
- data/exe/pdfrb +10 -0
- data/lib/pdfrb/arlington/field_definition.rb +128 -0
- data/lib/pdfrb/arlington/loader.rb +84 -0
- data/lib/pdfrb/arlington/object_definition.rb +45 -0
- data/lib/pdfrb/arlington/pdf_version.rb +121 -0
- data/lib/pdfrb/arlington/predicate/ast.rb +21 -0
- data/lib/pdfrb/arlington/predicate/context.rb +24 -0
- data/lib/pdfrb/arlington/predicate/evaluator.rb +113 -0
- data/lib/pdfrb/arlington/predicate/functions/arithmetic.rb +67 -0
- data/lib/pdfrb/arlington/predicate/functions/file.rb +22 -0
- data/lib/pdfrb/arlington/predicate/functions/logical.rb +38 -0
- data/lib/pdfrb/arlington/predicate/functions/presence.rb +39 -0
- data/lib/pdfrb/arlington/predicate/functions/reference.rb +28 -0
- data/lib/pdfrb/arlington/predicate/functions/version.rb +53 -0
- data/lib/pdfrb/arlington/predicate/functions.rb +34 -0
- data/lib/pdfrb/arlington/predicate/lexer.rb +177 -0
- data/lib/pdfrb/arlington/predicate/parser.rb +185 -0
- data/lib/pdfrb/arlington/predicate.rb +22 -0
- data/lib/pdfrb/arlington/type.rb +41 -0
- data/lib/pdfrb/arlington.rb +19 -0
- data/lib/pdfrb/cli.rb +135 -0
- data/lib/pdfrb/configuration.rb +64 -0
- data/lib/pdfrb/conformance/pdf_a.rb +74 -0
- data/lib/pdfrb/conformance/pdf_ua.rb +46 -0
- data/lib/pdfrb/conformance.rb +11 -0
- data/lib/pdfrb/content/canvas.rb +248 -0
- data/lib/pdfrb/content/graphic_object/arc.rb +85 -0
- data/lib/pdfrb/content/graphic_object/curve.rb +28 -0
- data/lib/pdfrb/content/graphic_object/polyline.rb +27 -0
- data/lib/pdfrb/content/graphic_object/rectangle.rb +53 -0
- data/lib/pdfrb/content/graphic_object.rb +16 -0
- data/lib/pdfrb/content/graphics_state.rb +104 -0
- data/lib/pdfrb/content/operator.rb +72 -0
- data/lib/pdfrb/content/operators/color.rb +106 -0
- data/lib/pdfrb/content/operators/general.rb +50 -0
- data/lib/pdfrb/content/operators/graphics_state_params.rb +78 -0
- data/lib/pdfrb/content/operators/marked_content.rb +51 -0
- data/lib/pdfrb/content/operators/painting.rb +82 -0
- data/lib/pdfrb/content/operators/path.rb +69 -0
- data/lib/pdfrb/content/operators/text_positioning.rb +44 -0
- data/lib/pdfrb/content/operators/text_showing.rb +48 -0
- data/lib/pdfrb/content/operators/text_state.rb +66 -0
- data/lib/pdfrb/content/parser.rb +103 -0
- data/lib/pdfrb/content/processor.rb +81 -0
- data/lib/pdfrb/content.rb +38 -0
- data/lib/pdfrb/data_dir.rb +35 -0
- data/lib/pdfrb/digital_signature/handler.rb +21 -0
- data/lib/pdfrb/digital_signature/signing.rb +29 -0
- data/lib/pdfrb/digital_signature/verification.rb +22 -0
- data/lib/pdfrb/digital_signature.rb +11 -0
- data/lib/pdfrb/document/annotations.rb +44 -0
- data/lib/pdfrb/document/destinations.rb +22 -0
- data/lib/pdfrb/document/files.rb +28 -0
- data/lib/pdfrb/document/fonts.rb +121 -0
- data/lib/pdfrb/document/images.rb +57 -0
- data/lib/pdfrb/document/metadata.rb +64 -0
- data/lib/pdfrb/document/pages.rb +134 -0
- data/lib/pdfrb/document.rb +343 -0
- data/lib/pdfrb/encryption/aes.rb +68 -0
- data/lib/pdfrb/encryption/password_verification.rb +112 -0
- data/lib/pdfrb/encryption/rc4.rb +45 -0
- data/lib/pdfrb/encryption/security_handler.rb +65 -0
- data/lib/pdfrb/encryption/standard_security_handler.rb +117 -0
- data/lib/pdfrb/encryption.rb +20 -0
- data/lib/pdfrb/error.rb +92 -0
- data/lib/pdfrb/filter/ascii_85_decode.rb +79 -0
- data/lib/pdfrb/filter/ascii_hex_decode.rb +37 -0
- data/lib/pdfrb/filter/base.rb +32 -0
- data/lib/pdfrb/filter/crypt.rb +36 -0
- data/lib/pdfrb/filter/flate_decode.rb +137 -0
- data/lib/pdfrb/filter/lzw_decode.rb +124 -0
- data/lib/pdfrb/filter/passthrough_filters.rb +55 -0
- data/lib/pdfrb/filter/run_length_decode.rb +72 -0
- data/lib/pdfrb/filter.rb +64 -0
- data/lib/pdfrb/font/afm_parser.rb +84 -0
- data/lib/pdfrb/font/cmap/parser.rb +96 -0
- data/lib/pdfrb/font/cmap/writer.rb +46 -0
- data/lib/pdfrb/font/cmap.rb +10 -0
- data/lib/pdfrb/font/encoding/mac_roman_encoding.rb +25 -0
- data/lib/pdfrb/font/encoding/pdf_doc_encoding.rb +16 -0
- data/lib/pdfrb/font/encoding/standard_encoding.rb +24 -0
- data/lib/pdfrb/font/encoding/win_ansi_encoding.rb +25 -0
- data/lib/pdfrb/font/encoding/zapf_dingbats_encoding.rb +13 -0
- data/lib/pdfrb/font/encoding.rb +36 -0
- data/lib/pdfrb/font/glyph_list.rb +56 -0
- data/lib/pdfrb/font/true_type/cmap.rb +240 -0
- data/lib/pdfrb/font/true_type/file.rb +85 -0
- data/lib/pdfrb/font/true_type/head.rb +43 -0
- data/lib/pdfrb/font/true_type/hhea.rb +36 -0
- data/lib/pdfrb/font/true_type/hmtx.rb +58 -0
- data/lib/pdfrb/font/true_type/os2.rb +51 -0
- data/lib/pdfrb/font/true_type/subsetter.rb +28 -0
- data/lib/pdfrb/font/true_type.rb +14 -0
- data/lib/pdfrb/font/type1/font_metrics.rb +46 -0
- data/lib/pdfrb/font/type1.rb +9 -0
- data/lib/pdfrb/font.rb +18 -0
- data/lib/pdfrb/font_loader/true_type.rb +62 -0
- data/lib/pdfrb/font_loader/type1.rb +27 -0
- data/lib/pdfrb/font_loader.rb +10 -0
- data/lib/pdfrb/image_loader/jpeg.rb +90 -0
- data/lib/pdfrb/image_loader/pdf.rb +28 -0
- data/lib/pdfrb/image_loader/png.rb +282 -0
- data/lib/pdfrb/image_loader.rb +64 -0
- data/lib/pdfrb/importer.rb +78 -0
- data/lib/pdfrb/model/cos/dictionary.rb +310 -0
- data/lib/pdfrb/model/cos/fields.rb +215 -0
- data/lib/pdfrb/model/cos/name_encoding.rb +64 -0
- data/lib/pdfrb/model/cos/stream.rb +96 -0
- data/lib/pdfrb/model/cos/string_encoding.rb +135 -0
- data/lib/pdfrb/model/cos.rb +20 -0
- data/lib/pdfrb/model/date.rb +82 -0
- data/lib/pdfrb/model/matrix.rb +85 -0
- data/lib/pdfrb/model/object.rb +76 -0
- data/lib/pdfrb/model/pdf_array.rb +63 -0
- data/lib/pdfrb/model/rectangle.rb +54 -0
- data/lib/pdfrb/model/reference.rb +49 -0
- data/lib/pdfrb/model/type/action.rb +33 -0
- data/lib/pdfrb/model/type/af_embedded_file.rb +12 -0
- data/lib/pdfrb/model/type/af_file_specification.rb +13 -0
- data/lib/pdfrb/model/type/annotation.rb +50 -0
- data/lib/pdfrb/model/type/catalog.rb +50 -0
- data/lib/pdfrb/model/type/cid_font.rb +13 -0
- data/lib/pdfrb/model/type/embedded_file.rb +13 -0
- data/lib/pdfrb/model/type/encryption_public_key.rb +12 -0
- data/lib/pdfrb/model/type/encryption_standard.rb +12 -0
- data/lib/pdfrb/model/type/file_specification.rb +12 -0
- data/lib/pdfrb/model/type/file_trailer.rb +14 -0
- data/lib/pdfrb/model/type/font.rb +13 -0
- data/lib/pdfrb/model/type/font_descriptor.rb +12 -0
- data/lib/pdfrb/model/type/font_true_type.rb +12 -0
- data/lib/pdfrb/model/type/font_type0.rb +12 -0
- data/lib/pdfrb/model/type/font_type1.rb +12 -0
- data/lib/pdfrb/model/type/font_type3.rb +13 -0
- data/lib/pdfrb/model/type/graphics_state_parameter.rb +17 -0
- data/lib/pdfrb/model/type/info.rb +15 -0
- data/lib/pdfrb/model/type/interactive_form.rb +12 -0
- data/lib/pdfrb/model/type/metadata.rb +18 -0
- data/lib/pdfrb/model/type/names.rb +14 -0
- data/lib/pdfrb/model/type/object_stream.rb +14 -0
- data/lib/pdfrb/model/type/optional_content_group.rb +25 -0
- data/lib/pdfrb/model/type/optional_content_membership.rb +13 -0
- data/lib/pdfrb/model/type/optional_content_properties.rb +12 -0
- data/lib/pdfrb/model/type/outline.rb +20 -0
- data/lib/pdfrb/model/type/outline_item.rb +13 -0
- data/lib/pdfrb/model/type/output_intent.rb +12 -0
- data/lib/pdfrb/model/type/page.rb +86 -0
- data/lib/pdfrb/model/type/page_tree_node.rb +46 -0
- data/lib/pdfrb/model/type/resources.rb +53 -0
- data/lib/pdfrb/model/type/struct_elem.rb +15 -0
- data/lib/pdfrb/model/type/struct_tree_root.rb +15 -0
- data/lib/pdfrb/model/type/xobject_form.rb +13 -0
- data/lib/pdfrb/model/type/xobject_image.rb +13 -0
- data/lib/pdfrb/model/type/xref_stream.rb +14 -0
- data/lib/pdfrb/model/type.rb +78 -0
- data/lib/pdfrb/model.rb +27 -0
- data/lib/pdfrb/pdf_constants.rb +42 -0
- data/lib/pdfrb/serializer.rb +174 -0
- data/lib/pdfrb/source/header_reader.rb +34 -0
- data/lib/pdfrb/source/helpers.rb +25 -0
- data/lib/pdfrb/source/linearization_detection.rb +34 -0
- data/lib/pdfrb/source/object_reader.rb +132 -0
- data/lib/pdfrb/source/object_stream_reader.rb +32 -0
- data/lib/pdfrb/source/parser.rb +281 -0
- data/lib/pdfrb/source/recovery.rb +35 -0
- data/lib/pdfrb/source/token.rb +15 -0
- data/lib/pdfrb/source/tokenizer.rb +320 -0
- data/lib/pdfrb/source/tokenizer.rb.bak +320 -0
- data/lib/pdfrb/source/trailer_reader.rb +32 -0
- data/lib/pdfrb/source/xref_stream_reader.rb +52 -0
- data/lib/pdfrb/source/xref_table_reader.rb +72 -0
- data/lib/pdfrb/source.rb +24 -0
- data/lib/pdfrb/task/extract_images.rb +53 -0
- data/lib/pdfrb/task/extract_text.rb +232 -0
- data/lib/pdfrb/task/merge.rb +47 -0
- data/lib/pdfrb/task/optimize.rb +18 -0
- data/lib/pdfrb/task.rb +13 -0
- data/lib/pdfrb/version.rb +5 -0
- data/lib/pdfrb/writer.rb +144 -0
- data/lib/pdfrb/xref_section.rb +51 -0
- data/lib/pdfrb.rb +97 -0
- metadata +890 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pdfrb
|
|
4
|
+
module Model
|
|
5
|
+
module Cos
|
|
6
|
+
# Helpers for PDF String (s7.3.2 + s7.9.2).
|
|
7
|
+
#
|
|
8
|
+
# Two flavours:
|
|
9
|
+
# * text -> UTF-8 on the Ruby side; serialised as either
|
|
10
|
+
# UTF-16BE-with-BOM or PDFDocEncoding on the wire.
|
|
11
|
+
# * byte -> ASCII-8BIT on the Ruby side; serialised as a
|
|
12
|
+
# raw byte string (used for /ID, /U, /O, /OE, /UE).
|
|
13
|
+
#
|
|
14
|
+
# HexaPDF uses Ruby encoding flags to distinguish; we do the same:
|
|
15
|
+
# UTF-8 = text, BINARY = byte.
|
|
16
|
+
module StringEncoding
|
|
17
|
+
UTF16_BOM = "\xFE\xFF".b
|
|
18
|
+
|
|
19
|
+
module_function
|
|
20
|
+
|
|
21
|
+
# Decide whether +str+ can be losslessly encoded in PDFDocEncoding.
|
|
22
|
+
def pdf_doc_encodable?(str)
|
|
23
|
+
str.encode("UTF-8").each_char.all? do |ch|
|
|
24
|
+
cp = ch.ord
|
|
25
|
+
cp < 256 && PDF_DOC_ENCODING[cp] != nil
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Convert a binary string from a PDF source to UTF-8 text.
|
|
30
|
+
# Auto-detect UTF-16BE BOM; fall back to PDFDocEncoding.
|
|
31
|
+
def decode_text(bytes, on_invalid: nil)
|
|
32
|
+
return bytes.encode("UTF-8") if bytes.encoding == Encoding::UTF_8
|
|
33
|
+
|
|
34
|
+
s = bytes.dup.force_encoding(Encoding::BINARY)
|
|
35
|
+
if s.start_with?(UTF16_BOM)
|
|
36
|
+
body = s.byteslice(2..)
|
|
37
|
+
utf16 = body.force_encoding(Encoding::UTF_16BE)
|
|
38
|
+
if utf16.valid_encoding?
|
|
39
|
+
utf16.encode("UTF-8")
|
|
40
|
+
elsif on_invalid
|
|
41
|
+
on_invalid.call(s)
|
|
42
|
+
else
|
|
43
|
+
utf16.encode("UTF-8", invalid: :replace, undef: :replace)
|
|
44
|
+
end
|
|
45
|
+
else
|
|
46
|
+
pdf_doc_to_utf8(s)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Convert a UTF-8 string to PDF wire bytes for a text string.
|
|
51
|
+
# Uses UTF-16BE+BOM if any char isn't PDFDocEncoding-representable.
|
|
52
|
+
def encode_text(str)
|
|
53
|
+
utf8 = str.to_s.encode("UTF-8")
|
|
54
|
+
if pdf_doc_encodable?(utf8)
|
|
55
|
+
utf8.encode(Encoding::BINARY, fallback: ->(c) { c.bytes.first.chr })
|
|
56
|
+
else
|
|
57
|
+
(UTF16_BOM.dup.force_encoding(Encoding::BINARY) <<
|
|
58
|
+
utf8.encode(Encoding::UTF_16BE).force_encoding(Encoding::BINARY))
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Mark a string as binary (byte string). Returns a frozen
|
|
63
|
+
# ASCII-8BIT copy.
|
|
64
|
+
def mark_binary(str)
|
|
65
|
+
str.to_s.dup.force_encoding(Encoding::BINARY).freeze
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# ---- PDFDocEncoding table (s7.9.2.3, Appendix D.2) ----
|
|
69
|
+
# 256-entry map: byte -> Unicode codepoint. nil = undefined.
|
|
70
|
+
PDF_DOC_ENCODING = begin
|
|
71
|
+
table = Array.new(256, nil)
|
|
72
|
+
(0..255).each { |b| table[b] = b if b < 0x80 } # ASCII pass-through
|
|
73
|
+
# High-byte mappings per Appendix D.2 (subset; full set is long).
|
|
74
|
+
high = {
|
|
75
|
+
0x80 => 0x00C4, 0x81 => 0x00C5, 0x82 => 0x00C7, 0x83 => 0x00C9,
|
|
76
|
+
0x84 => 0x00D1, 0x85 => 0x00D6, 0x86 => 0x00DC, 0x87 => 0x00E1,
|
|
77
|
+
0x88 => 0x00E0, 0x89 => 0x00E2, 0x8A => 0x00E4, 0x8B => 0x00E3,
|
|
78
|
+
0x8C => 0x00E5, 0x8D => 0x00E7, 0x8E => 0x00E9, 0x8F => 0x00E8,
|
|
79
|
+
0x90 => 0x00EA, 0x91 => 0x00EB, 0x92 => 0x00ED, 0x93 => 0x00EC,
|
|
80
|
+
0x94 => 0x00EE, 0x95 => 0x00EF, 0x96 => 0x00F1, 0x97 => 0x00F3,
|
|
81
|
+
0x98 => 0x00F2, 0x99 => 0x00F4, 0x9A => 0x00F6, 0x9B => 0x00F5,
|
|
82
|
+
0x9C => 0x00FA, 0x9D => 0x00F9, 0x9E => 0x00FB, 0x9F => 0x00FC,
|
|
83
|
+
0xA0 => 0x2020, 0xA1 => 0x00B0, 0xA2 => 0x00A2, 0xA3 => 0x00A3,
|
|
84
|
+
0xA4 => 0x00A7, 0xA5 => 0x2022, 0xA6 => 0x00B6, 0xA7 => 0x00DF,
|
|
85
|
+
0xA8 => 0x00AE, 0xA9 => 0x00A9, 0xAA => 0x2122, 0xAB => 0x00B4,
|
|
86
|
+
0xAC => 0x00A8, 0xAD => 0x2260, 0xAE => 0x00C6, 0xAF => 0x00D8,
|
|
87
|
+
0xB0 => 0x221E, 0xB1 => 0x00B1, 0xB2 => 0x2264, 0xB3 => 0x2265,
|
|
88
|
+
0xB4 => 0x00A5, 0xB5 => 0x00B5, 0xB6 => 0x2202, 0xB7 => 0x2211,
|
|
89
|
+
0xB8 => 0x220F, 0xB9 => 0x03C0, 0xBA => 0x222B, 0xBB => 0x00AA,
|
|
90
|
+
0xBC => 0x00BA, 0xBD => 0x03A9, 0xBE => 0x00E6, 0xBF => 0x00F8,
|
|
91
|
+
0xC0 => 0x00BF, 0xC1 => 0x00A1, 0xC2 => 0x00AC, 0xC3 => 0x221A,
|
|
92
|
+
0xC4 => 0x0192, 0xC5 => 0x2248, 0xC6 => 0x2206, 0xC7 => 0x00AB,
|
|
93
|
+
0xC8 => 0x00BB, 0xC9 => 0x2026, 0xCA => 0x00A0, 0xCB => 0x00C0,
|
|
94
|
+
0xCC => 0x00C3, 0xCD => 0x00D5, 0xCE => 0x0152, 0xCF => 0x0153,
|
|
95
|
+
0xD0 => 0x2013, 0xD1 => 0x2014, 0xD2 => 0x201C, 0xD3 => 0x201D,
|
|
96
|
+
0xD4 => 0x2018, 0xD5 => 0x2019, 0xD6 => 0x00F7, 0xD7 => 0x25CA,
|
|
97
|
+
0xD8 => 0x00FF, 0xD9 => 0x0178, 0xDA => 0x2044, 0xDB => 0x20AC,
|
|
98
|
+
0xDC => 0x2039, 0xDD => 0x203A, 0xDE => 0xFB01, 0xDF => 0xFB02,
|
|
99
|
+
0xE0 => 0x2021, 0xE1 => 0x00B7, 0xE2 => 0x201A, 0xE3 => 0x201E,
|
|
100
|
+
0xE4 => 0x2030, 0xE5 => 0x00C2, 0xE6 => 0x00CA, 0xE7 => 0x00C1,
|
|
101
|
+
0xE8 => 0x00CB, 0xE9 => 0x00C8, 0xEA => 0x00CD, 0xEB => 0x00CE,
|
|
102
|
+
0xEC => 0x00CF, 0xED => 0x00CC, 0xEE => 0x00D3, 0xEF => 0x00D4,
|
|
103
|
+
0xF0 => 0xF8FF, 0xF1 => 0x00D2, 0xF2 => 0x00DA, 0xF3 => 0x00DB,
|
|
104
|
+
0xF4 => 0x00D9, 0xF5 => 0x0131, 0xF6 => 0x02C6, 0xF7 => 0x02DC,
|
|
105
|
+
0xF8 => 0x00AF, 0xF9 => 0x02D8, 0xFA => 0x02D9, 0xFB => 0x02DA,
|
|
106
|
+
0xFC => 0x00B8, 0xFD => 0x02DD, 0xFE => 0x02DB, 0xFF => 0x02C7
|
|
107
|
+
}
|
|
108
|
+
high.each { |b, cp| table[b] = cp }
|
|
109
|
+
table.freeze
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# Private; build inverse for UTF-8 -> PDFDocEncoding.
|
|
113
|
+
INVERSE_PDF_DOC_ENCODING =
|
|
114
|
+
PDF_DOC_ENCODING.each_with_index.each_with_object({}) do |(cp, byte), h|
|
|
115
|
+
h[cp] = byte if cp
|
|
116
|
+
end.freeze
|
|
117
|
+
|
|
118
|
+
def pdf_doc_to_utf8(bytes)
|
|
119
|
+
bytes.each_byte.with_object(+"".encode("UTF-8")) do |b, buf|
|
|
120
|
+
cp = PDF_DOC_ENCODING[b]
|
|
121
|
+
buf << (cp ? [cp].pack("U") : "?")
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def utf8_to_pdf_doc(str)
|
|
126
|
+
str.each_char.with_object(+"") do |ch, buf|
|
|
127
|
+
cp = ch.ord
|
|
128
|
+
byte = INVERSE_PDF_DOC_ENCODING[cp]
|
|
129
|
+
buf << (byte ? byte.chr : "?")
|
|
130
|
+
end.force_encoding(Encoding::BINARY)
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pdfrb
|
|
4
|
+
module Model
|
|
5
|
+
# COS value layer: literal PDF types and the Dictionary field system
|
|
6
|
+
# that drives semantic Type subclasses.
|
|
7
|
+
#
|
|
8
|
+
# Scalars use native Ruby types wherever possible (no wrapper classes):
|
|
9
|
+
# true/false, Integer, Float, Symbol (Name), String, nil (Null).
|
|
10
|
+
# Helpers for Name encode/decode and String text/binary conversion
|
|
11
|
+
# live in Cos::NameEncoding and Cos::StringEncoding.
|
|
12
|
+
module Cos
|
|
13
|
+
autoload :Fields, "pdfrb/model/cos/fields"
|
|
14
|
+
autoload :NameEncoding, "pdfrb/model/cos/name_encoding"
|
|
15
|
+
autoload :StringEncoding, "pdfrb/model/cos/string_encoding"
|
|
16
|
+
autoload :Dictionary, "pdfrb/model/cos/dictionary"
|
|
17
|
+
autoload :Stream, "pdfrb/model/cos/stream"
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "time"
|
|
4
|
+
|
|
5
|
+
module Pdfrb
|
|
6
|
+
module Model
|
|
7
|
+
# PDF date (s7.9.4): `D:YYYYMMDDHHmmSSOHH'mm'` string.
|
|
8
|
+
# Immutable value object wrapping a +Time+.
|
|
9
|
+
class Date
|
|
10
|
+
# Tolerates missing fields and the historical quirks Adobe
|
|
11
|
+
# parsers accept in the wild.
|
|
12
|
+
REGEX = /\A\s*D?:?(\d{4})(\d\d)?(\d\d)?(\d\d)?(\d\d)?(\d\d)?(Z|[+-])?(?:(\d+)(?:'|'(\d+)'?'?)?)?\s*\z/.freeze
|
|
13
|
+
|
|
14
|
+
private_constant :REGEX
|
|
15
|
+
|
|
16
|
+
attr_reader :time
|
|
17
|
+
|
|
18
|
+
def initialize(time)
|
|
19
|
+
@time = time
|
|
20
|
+
freeze
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.parse(str)
|
|
24
|
+
return new(str) if str.is_a?(::Time)
|
|
25
|
+
return nil if str.nil?
|
|
26
|
+
return nil if str.is_a?(::String) && str.empty?
|
|
27
|
+
|
|
28
|
+
unless str.is_a?(::String) && (m = REGEX.match(str))
|
|
29
|
+
raise Pdfrb::ParseError, "invalid PDF date: #{str.inspect}"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
sign = m[7]
|
|
33
|
+
utc_offset =
|
|
34
|
+
if sign.nil? || sign == "Z"
|
|
35
|
+
0
|
|
36
|
+
else
|
|
37
|
+
mul = sign == "-" ? -1 : 1
|
|
38
|
+
(m[8].to_i * 3600 + m[9].to_i * 60) * mul
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
::Time.new(
|
|
42
|
+
m[1].to_i,
|
|
43
|
+
m[2] ? m[2].to_i.clamp(1, 12) : 1,
|
|
44
|
+
m[3] ? m[3].to_i.clamp(1, 31) : 1,
|
|
45
|
+
m[4].to_i.clamp(0, 23),
|
|
46
|
+
m[5].to_i.clamp(0, 59),
|
|
47
|
+
m[6].to_i.clamp(0, 59),
|
|
48
|
+
utc_offset
|
|
49
|
+
)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def self.format(time)
|
|
53
|
+
off = time.utc_offset
|
|
54
|
+
sign = off >= 0 ? "+" : "-"
|
|
55
|
+
aoff = off.abs
|
|
56
|
+
oh = aoff / 3600
|
|
57
|
+
om = (aoff % 3600) / 60
|
|
58
|
+
"D:%04d%02d%02d%02d%02d%02d%s%02d'%02d'" % [
|
|
59
|
+
time.year, time.month, time.day, time.hour, time.min, time.sec,
|
|
60
|
+
sign, oh, om
|
|
61
|
+
]
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def to_s
|
|
65
|
+
self.class.format(@time)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def ==(other)
|
|
69
|
+
case other
|
|
70
|
+
when Date then @time == other.time
|
|
71
|
+
when ::Time then @time == other
|
|
72
|
+
else false
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
alias eql? ==
|
|
76
|
+
|
|
77
|
+
def hash
|
|
78
|
+
@time.hash
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pdfrb
|
|
4
|
+
module Model
|
|
5
|
+
# 2D affine transformation matrix `[a b c d e f]` per s8.4.4.
|
|
6
|
+
# Composes via right-multiplication (PDF convention).
|
|
7
|
+
# Immutable value object.
|
|
8
|
+
class Matrix
|
|
9
|
+
attr_reader :a, :b, :c, :d, :e, :f
|
|
10
|
+
|
|
11
|
+
def initialize(a = 1.0, b = 0.0, c = 0.0, d = 1.0, e = 0.0, f = 0.0)
|
|
12
|
+
@a = a.to_f
|
|
13
|
+
@b = b.to_f
|
|
14
|
+
@c = c.to_f
|
|
15
|
+
@d = d.to_f
|
|
16
|
+
@e = e.to_f
|
|
17
|
+
@f = f.to_f
|
|
18
|
+
freeze
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.identity; new; end
|
|
22
|
+
|
|
23
|
+
def self.translate(tx, ty); new(1, 0, 0, 1, tx, ty); end
|
|
24
|
+
|
|
25
|
+
def self.scale(sx, sy = sx); new(sx, 0, 0, sy, 0, 0); end
|
|
26
|
+
|
|
27
|
+
def self.rotate(rad)
|
|
28
|
+
co = Math.cos(rad)
|
|
29
|
+
si = Math.sin(rad)
|
|
30
|
+
new(co, si, -si, co, 0, 0)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def self.skew(alpha, beta)
|
|
34
|
+
new(1, Math.tan(alpha), Math.tan(beta), 1, 0, 0)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def self.from_array(arr)
|
|
38
|
+
case arr
|
|
39
|
+
when Matrix then arr
|
|
40
|
+
when PdfArray, Array then new(*arr.take(6))
|
|
41
|
+
else raise ArgumentError, "cannot build Matrix from #{arr.class}"
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Compose with +other+. Column-vector convention: the product
|
|
46
|
+
# `M1 * M2` first transforms a point by M2, then by M1. Matches
|
|
47
|
+
# PDF's `cm` operator (CTM_new = M_argument * CTM_old).
|
|
48
|
+
def *(other)
|
|
49
|
+
Matrix.new(
|
|
50
|
+
@a * other.a + @c * other.b,
|
|
51
|
+
@b * other.a + @d * other.b,
|
|
52
|
+
@a * other.c + @c * other.d,
|
|
53
|
+
@b * other.c + @d * other.d,
|
|
54
|
+
@a * other.e + @c * other.f + @e,
|
|
55
|
+
@b * other.e + @d * other.f + @f
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def transform_point(x, y)
|
|
60
|
+
[@a * x + @c * y + @e, @b * x + @d * y + @f]
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def identity?
|
|
64
|
+
@a == 1.0 && @b == 0.0 && @c == 0.0 && @d == 1.0 && @e == 0.0 && @f == 0.0
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def to_a
|
|
68
|
+
[@a, @b, @c, @d, @e, @f]
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def ==(other)
|
|
72
|
+
other.is_a?(Matrix) && to_a == other.to_a
|
|
73
|
+
end
|
|
74
|
+
alias eql? ==
|
|
75
|
+
|
|
76
|
+
def hash
|
|
77
|
+
to_a.hash
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
def inspect
|
|
81
|
+
"#<Matrix a=#{@a} b=#{@b} c=#{@c} d=#{@d} e=#{@e} f=#{@f}>"
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pdfrb
|
|
4
|
+
module Model
|
|
5
|
+
# Base wrapper for every PDF value (direct or indirect). Carries
|
|
6
|
+
# the indirect-reference metadata (oid, gen) and a back-reference
|
|
7
|
+
# to the owning Document for lazy resolution.
|
|
8
|
+
#
|
|
9
|
+
# The wrapped +value+ is the raw Ruby representation:
|
|
10
|
+
# Boolean -> true / false
|
|
11
|
+
# Integer -> Integer
|
|
12
|
+
# Real -> Float
|
|
13
|
+
# Name -> Symbol
|
|
14
|
+
# String -> String (UTF-8 for text, BINARY for bytes)
|
|
15
|
+
# Null -> nil
|
|
16
|
+
# Array -> Array or PdfArray
|
|
17
|
+
# Dict -> Hash or Dictionary
|
|
18
|
+
# Stream -> Stream (subclass of Dictionary)
|
|
19
|
+
# Ref -> Reference
|
|
20
|
+
class Object
|
|
21
|
+
attr_reader :value, :oid, :gen, :document
|
|
22
|
+
|
|
23
|
+
def initialize(value, oid: 0, gen: 0, document: nil)
|
|
24
|
+
@value = value
|
|
25
|
+
@oid = oid.to_i
|
|
26
|
+
@gen = gen.to_i
|
|
27
|
+
@document = document
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# True when this object is referenced indirectly (oid > 0).
|
|
31
|
+
def indirect?
|
|
32
|
+
@oid > 0
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Overridable. PDF types that must be indirect (Catalog, Pages, ...)
|
|
36
|
+
# override to return true.
|
|
37
|
+
def must_be_indirect?
|
|
38
|
+
false
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Resolve a Reference; pass-through for everything else.
|
|
42
|
+
def deref
|
|
43
|
+
self
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# The PDF /Type name (e.g. :Catalog). Subclasses override via
|
|
47
|
+
# `define_type`. Falls back to value[:Type] for raw dicts.
|
|
48
|
+
def pdf_type
|
|
49
|
+
own = self.class.pdf_type
|
|
50
|
+
return own if own
|
|
51
|
+
return nil unless @value.is_a?(Hash)
|
|
52
|
+
|
|
53
|
+
@value[:Type]
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def ==(other)
|
|
57
|
+
return false unless other.is_a?(Pdfrb::Model::Object)
|
|
58
|
+
return object_id == other.object_id if indirect? && other.indirect?
|
|
59
|
+
|
|
60
|
+
@value == other.value
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
class << self
|
|
64
|
+
# Statically declare the /Type value for this class. Read via
|
|
65
|
+
# `pdf_type`. Used by Document#wrap to dispatch.
|
|
66
|
+
def define_type(type)
|
|
67
|
+
@pdf_type = type
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def pdf_type
|
|
71
|
+
defined?(@pdf_type) ? @pdf_type : nil
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pdfrb
|
|
4
|
+
module Model
|
|
5
|
+
# Wraps a Ruby Array of PDF values. Subclass of Object so it can
|
|
6
|
+
# carry oid/gen when stored as an indirect object. Preserves
|
|
7
|
+
# insertion order and supports type-aware wrapping on access
|
|
8
|
+
# when nested inside a typed Dictionary (field-driven).
|
|
9
|
+
class PdfArray < Pdfrb::Model::Object
|
|
10
|
+
include Enumerable
|
|
11
|
+
|
|
12
|
+
def initialize(arr = [], oid: 0, gen: 0, document: nil)
|
|
13
|
+
super(Array(arr), oid: oid, gen: gen, document: document)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def each(&block)
|
|
17
|
+
@value.each(&block)
|
|
18
|
+
self
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def length; @value.length; end
|
|
22
|
+
alias size length
|
|
23
|
+
|
|
24
|
+
def empty?; @value.empty?; end
|
|
25
|
+
|
|
26
|
+
def [](idx)
|
|
27
|
+
@value[idx]
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def []=(idx, v)
|
|
31
|
+
@value[idx] = v
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def <<(v)
|
|
35
|
+
@value << v
|
|
36
|
+
self
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def push(*items)
|
|
40
|
+
@value.push(*items)
|
|
41
|
+
self
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def delete_at(idx)
|
|
45
|
+
@value.delete_at(idx)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def to_a
|
|
49
|
+
@value.dup
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def ==(other)
|
|
53
|
+
return @value == other.value if other.is_a?(PdfArray)
|
|
54
|
+
|
|
55
|
+
@value == other
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def inspect
|
|
59
|
+
"PdfArray[#{@value.inspect}]"
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pdfrb
|
|
4
|
+
module Model
|
|
5
|
+
# PDF rectangle (s7.9.5): 4-number array `[llx lly urx ury]`.
|
|
6
|
+
# Immutable value object.
|
|
7
|
+
class Rectangle
|
|
8
|
+
attr_reader :llx, :lly, :urx, :ury
|
|
9
|
+
|
|
10
|
+
def initialize(llx, lly, urx, ury)
|
|
11
|
+
@llx = llx.to_f
|
|
12
|
+
@lly = lly.to_f
|
|
13
|
+
@urx = urx.to_f
|
|
14
|
+
@ury = ury.to_f
|
|
15
|
+
freeze
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def self.from_array(arr)
|
|
19
|
+
case arr
|
|
20
|
+
when Rectangle then arr
|
|
21
|
+
when PdfArray, Array then new(arr[0], arr[1], arr[2], arr[3])
|
|
22
|
+
else raise ArgumentError, "cannot build Rectangle from #{arr.class}"
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def width; @urx - @llx; end
|
|
27
|
+
def height; @ury - @lly; end
|
|
28
|
+
def left; @llx; end
|
|
29
|
+
def bottom; @lly; end
|
|
30
|
+
def right; @urx; end
|
|
31
|
+
def top; @ury; end
|
|
32
|
+
|
|
33
|
+
def origin; [@llx, @lly]; end
|
|
34
|
+
def corner; [@urx, @ury]; end
|
|
35
|
+
|
|
36
|
+
def to_a
|
|
37
|
+
[@llx, @lly, @urx, @ury]
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def ==(other)
|
|
41
|
+
other.is_a?(Rectangle) && to_a == other.to_a
|
|
42
|
+
end
|
|
43
|
+
alias eql? ==
|
|
44
|
+
|
|
45
|
+
def hash
|
|
46
|
+
to_a.hash
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def inspect
|
|
50
|
+
"#<Rectangle llx=#{@llx} lly=#{@lly} urx=#{@urx} ury=#{@ury}>"
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pdfrb
|
|
4
|
+
module Model
|
|
5
|
+
# A pointer to an indirect object (s7.3.10). Value-equal by (oid, gen)
|
|
6
|
+
# so it can be a Hash key. Stored inside dictionaries/arrays wherever
|
|
7
|
+
# an indirect reference appears in source.
|
|
8
|
+
class Reference
|
|
9
|
+
include Comparable
|
|
10
|
+
|
|
11
|
+
attr_reader :oid, :gen
|
|
12
|
+
|
|
13
|
+
def initialize(oid, gen = 0)
|
|
14
|
+
@oid = oid.to_i
|
|
15
|
+
@gen = gen.to_i
|
|
16
|
+
freeze
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def <=>(other)
|
|
20
|
+
return nil unless other.is_a?(Reference)
|
|
21
|
+
|
|
22
|
+
[oid, gen] <=> [other.oid, other.gen]
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def hash
|
|
26
|
+
[oid, gen].hash
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def eql?(other)
|
|
30
|
+
other.is_a?(Reference) && oid == other.oid && gen == other.gen
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
alias == eql?
|
|
34
|
+
|
|
35
|
+
def to_s
|
|
36
|
+
"#{oid} #{gen} R"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def inspect
|
|
40
|
+
"#<Pdfrb::Model::Reference oid=#{oid} gen=#{gen}>"
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Resolve via the document's object reader. Returns an Object.
|
|
44
|
+
def deref(document)
|
|
45
|
+
document.object(self)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pdfrb
|
|
4
|
+
module Model
|
|
5
|
+
module Type
|
|
6
|
+
# Action base class (s12.6). Like annotations, action subtypes
|
|
7
|
+
# each have their own TSV (ActionGoTo, ActionURI, ...) so the
|
|
8
|
+
# common fields are hand-coded here.
|
|
9
|
+
class Action < Pdfrb::Model::Cos::Dictionary
|
|
10
|
+
define_field :Type, type: Symbol, default: :Action
|
|
11
|
+
define_field :S, type: Symbol, required: true
|
|
12
|
+
define_field :Next, type: Pdfrb::Model::PdfArray
|
|
13
|
+
|
|
14
|
+
register_type :Action
|
|
15
|
+
|
|
16
|
+
class << self
|
|
17
|
+
def subtype_map
|
|
18
|
+
@subtype_map ||= {}
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def register_subtype(symbol, klass = self)
|
|
22
|
+
subtype_map[symbol] = klass
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def for_subtype(symbol)
|
|
26
|
+
subtype_map[symbol]
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pdfrb
|
|
4
|
+
module Model
|
|
5
|
+
module Type
|
|
6
|
+
# PDF 2.0 Associated-File FileSpec (App Note 002). Adds
|
|
7
|
+
# /AFRelationship to the base FileSpec.
|
|
8
|
+
class AFFileSpecification < FileSpecification
|
|
9
|
+
arlington_object "AFFileSpecification"
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pdfrb
|
|
4
|
+
module Model
|
|
5
|
+
module Type
|
|
6
|
+
# Annotation base class (s12.5). The base dict shape is encoded
|
|
7
|
+
# across the per-subtype TSVs (AnnotLink, AnnotText, ...), not
|
|
8
|
+
# a single Annot.tsv — so the base class registers in the
|
|
9
|
+
# type_map and dispatches to a specific subtype class via
|
|
10
|
+
# /Subtype lookup.
|
|
11
|
+
class Annotation < Pdfrb::Model::Cos::Dictionary
|
|
12
|
+
# Common annotation fields per s12.5.2 (hand-coded; base dict
|
|
13
|
+
# is shared across all subtypes before subtype-specific keys).
|
|
14
|
+
define_field :Type, type: Symbol, default: :Annot
|
|
15
|
+
define_field :Subtype, type: Symbol, required: true
|
|
16
|
+
define_field :Rect, type: Pdfrb::Model::Rectangle
|
|
17
|
+
define_field :Contents, type: String
|
|
18
|
+
define_field :P, type: Pdfrb::Model::Cos::Dictionary, indirect: true
|
|
19
|
+
define_field :NM, type: String
|
|
20
|
+
define_field :M, type: Pdfrb::Model::Cos::Fields::PDFDate
|
|
21
|
+
define_field :F, type: Integer
|
|
22
|
+
define_field :AP, type: Pdfrb::Model::Cos::Dictionary
|
|
23
|
+
define_field :AS, type: Symbol
|
|
24
|
+
define_field :Border, type: Pdfrb::Model::PdfArray
|
|
25
|
+
define_field :C, type: Pdfrb::Model::PdfArray
|
|
26
|
+
define_field :A, type: Pdfrb::Model::Cos::Dictionary
|
|
27
|
+
define_field :AA, type: Pdfrb::Model::Cos::Dictionary
|
|
28
|
+
|
|
29
|
+
register_type :Annot
|
|
30
|
+
|
|
31
|
+
class << self
|
|
32
|
+
# Dispatch by /Subtype. Subclasses register via
|
|
33
|
+
# `register_subtype :Link`.
|
|
34
|
+
def subtype_map
|
|
35
|
+
@subtype_map ||= {}
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def register_subtype(symbol, klass = self)
|
|
39
|
+
subtype_map[symbol] = klass
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def for_subtype(symbol)
|
|
43
|
+
subtype_map[symbol]
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|