Author: tilman
Date: Tue Nov 25 16:46:31 2025
New Revision: 1929996
Log:
PDFBOX-5660: optimize, as suggested by Valery Bokov; closes #346
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
Tue Nov 25 16:46:24 2025 (r1929995)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java
Tue Nov 25 16:46:31 2025 (r1929996)
@@ -24,6 +24,7 @@ import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
+import java.util.regex.Pattern;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.apache.fontbox.util.BoundingBox;
@@ -68,6 +69,8 @@ class AppearanceGeneratorHelper
private static final Operator BMC = Operator.getOperator("BMC");
private static final Operator EMC = Operator.getOperator("EMC");
+
+ private static final Pattern PATTERN =
Pattern.compile("\\u000D\\u000A|[\\u000A\\u000B\\u000C\\u000D\\u0085\\u2028\\u2029]");
private final PDVariableText field;
@@ -196,7 +199,7 @@ class AppearanceGeneratorHelper
// see PDFBOX-3911
if (field instanceof PDTextField && !((PDTextField)
field).isMultiline())
{
- value =
value.replaceAll("\\u000D\\u000A|[\\u000A\\u000B\\u000C\\u000D\\u0085\\u2028\\u2029]",
" ");
+ value = PATTERN.matcher(value).replaceAll(" ");
}
for (PDAnnotationWidget widget : field.getWidgets())