From 9ac493e8a8d6faf0e975013dd38f18fd0786f132 Mon Sep 17 00:00:00 2001 From: Tilman Hausherr Date: Thu, 30 Sep 2021 17:06:38 +0000 Subject: [PATCH] PDFBOX-4892: optimize, as suggested by valerybokov git-svn-id: https://svn.apache.org/repos/asf/pdfbox/trunk@1893757 13f79535-47bb-0310-9956-ffa450edef68 --- .../annotation/handlers/PDHighlightAppearanceHandler.java | 5 +++-- .../annotation/handlers/PDInkAppearanceHandler.java | 8 ++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDHighlightAppearanceHandler.java b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDHighlightAppearanceHandler.java index 61aacf4db0a..d0ced60b10e 100644 --- a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDHighlightAppearanceHandler.java +++ b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDHighlightAppearanceHandler.java @@ -63,18 +63,19 @@ public void generateAppearanceStreams() public void generateNormalAppearance() { PDAnnotationHighlight annotation = (PDAnnotationHighlight) getAnnotation(); - PDRectangle rect = annotation.getRectangle(); + float[] pathsArray = annotation.getQuadPoints(); if (pathsArray == null) { return; } - AnnotationBorder ab = AnnotationBorder.getAnnotationBorder(annotation, annotation.getBorderStyle()); PDColor color = annotation.getColor(); if (color == null || color.getComponents().length == 0) { return; } + PDRectangle rect = annotation.getRectangle(); + AnnotationBorder ab = AnnotationBorder.getAnnotationBorder(annotation, annotation.getBorderStyle()); // Adjust rectangle even if not empty, see PLPDF.com-MarkupAnnotations.pdf //TODO in a class structure this should be overridable diff --git a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDInkAppearanceHandler.java b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDInkAppearanceHandler.java index 17ae4df5df2..5277f6ab3db 100644 --- a/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDInkAppearanceHandler.java +++ b/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/annotation/handlers/PDInkAppearanceHandler.java @@ -56,10 +56,14 @@ public void generateAppearanceStreams() public void generateNormalAppearance() { PDAnnotationInk ink = (PDAnnotationInk) getAnnotation(); + PDColor color = ink.getColor(); + if (color == null || color.getComponents().length == 0) + { + return; + } // PDF spec does not mention /Border for ink annotations, but it is used if /BS is not available AnnotationBorder ab = AnnotationBorder.getAnnotationBorder(ink, ink.getBorderStyle()); - PDColor color = ink.getColor(); - if (color == null || color.getComponents().length == 0 || Float.compare(ab.width, 0) == 0) + if (Float.compare(ab.width, 0) == 0) { return; }