Class PdfBoxFastLinkManager


  • public class PdfBoxFastLinkManager
    extends java.lang.Object
    • Field Detail

      • _linkTargetAreas

        private final java.util.Map<org.apache.pdfbox.pdmodel.PDPage,​java.util.Set<java.lang.String>> _linkTargetAreas
      • _dotsPerPoint

        private final float _dotsPerPoint
      • _root

        private final Box _root
      • _embeddedFiles

        private final java.util.Map<java.lang.String,​org.apache.pdfbox.pdmodel.common.filespecification.PDComplexFileSpecification> _embeddedFiles
        A map from uri to embedded file, so we don't embed files twice in case of a split link (example, two link boxes are formed when a link breaks in the middle).
      • _embeddedFileAppearance

        private org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceDictionary _embeddedFileAppearance
        The lazily created appearance dict for emedded files.
    • Method Detail

      • calcTotalLinkArea

        private java.awt.geom.Rectangle2D calcTotalLinkArea​(RenderingContext c,
                                                            Box box,
                                                            float pageHeight,
                                                            java.awt.geom.AffineTransform transform)
      • add

        private java.awt.geom.Rectangle2D add​(java.awt.geom.Rectangle2D r1,
                                              java.awt.geom.Rectangle2D r2)
      • createRectKey

        private java.lang.String createRectKey​(java.awt.geom.Rectangle2D rect,
                                               java.awt.Shape linkShape,
                                               java.awt.geom.AffineTransform transform)
      • checkLinkArea

        private java.awt.geom.Rectangle2D checkLinkArea​(org.apache.pdfbox.pdmodel.PDPage page,
                                                        RenderingContext c,
                                                        Box box,
                                                        float pageHeight,
                                                        java.awt.geom.AffineTransform transform,
                                                        java.awt.Shape linkShape)
      • processLink

        private void processLink​(RenderingContext c,
                                 Box box,
                                 org.apache.pdfbox.pdmodel.PDPage page,
                                 float pageHeight,
                                 java.awt.geom.AffineTransform transform)
      • isPointEqual

        private static boolean isPointEqual​(java.awt.geom.Point2D.Float p1,
                                            java.awt.geom.Point2D.Float p2)
      • removeDoublicatePoints

        private static void removeDoublicatePoints​(java.util.List<java.awt.geom.Point2D.Float> points)
      • addUriAsLink

        private void addUriAsLink​(RenderingContext c,
                                  Box box,
                                  org.apache.pdfbox.pdmodel.PDPage page,
                                  float pageHeight,
                                  java.awt.geom.AffineTransform transform,
                                  org.w3c.dom.Element elem,
                                  NamespaceHandler handler,
                                  java.lang.String uri,
                                  java.awt.Shape linkShape)
      • createFileEmbedLinkAnnotation

        private AnnotationContainer createFileEmbedLinkAnnotation​(org.w3c.dom.Element elem,
                                                                  java.lang.String uri)
        Create a file attachment link, being careful not to embed the same file (as specified by uri) more than once. The element should have the following attributes: download="embedded-filename.ext", data-content-type="file-mime-type" which defaults to "application/octet-stream", relationship (required for PDF/A3), one of: "Source", "Supplement", "Data", "Alternative", "Unspecified", title="file description" (recommended for PDF/A3).
      • createFileEmbedLinkAppearance

        private org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceDictionary createFileEmbedLinkAppearance()
        Create an empty appearance stream to hide the pin icon used by various pdf reader for signaling an embedded file
      • isURI

        private static boolean isURI​(java.lang.String uri)
      • placeAnnotation

        private boolean placeAnnotation​(java.awt.geom.AffineTransform transform,
                                        java.awt.Shape linkShape,
                                        java.awt.geom.Rectangle2D targetArea,
                                        AnnotationContainer annot)
      • mapShapeToQuadPoints

        static PdfBoxFastLinkManager.QuadPointShape mapShapeToQuadPoints​(java.awt.geom.AffineTransform transform,
                                                                         java.awt.Shape linkShape,
                                                                         java.awt.geom.Rectangle2D targetArea)
      • addLinkToPage

        private void addLinkToPage​(org.apache.pdfbox.pdmodel.PDPage page,
                                   AnnotationContainer annot,
                                   Box anchor,
                                   Box target)
      • createDestination

        private org.apache.pdfbox.pdmodel.interactive.documentnavigation.destination.PDPageXYZDestination createDestination​(RenderingContext c,
                                                                                                                            Box box)
      • createTargetArea

        public static java.awt.geom.Rectangle2D createTargetArea​(RenderingContext c,
                                                                 Box box,
                                                                 float pageHeight,
                                                                 java.awt.geom.AffineTransform transform,
                                                                 Box _root,
                                                                 PdfBoxOutputDevice _od)
      • processLinkLater

        public void processLinkLater​(RenderingContext c,
                                     Box box,
                                     org.apache.pdfbox.pdmodel.PDPage page,
                                     float pageHeight,
                                     java.awt.geom.AffineTransform transform)