svn propchange: r1917615 - svn:log

2024-05-09 Thread lehmi
Author: lehmi
Revision: 1917615
Modified property: svn:log

Modified: svn:log at Thu May  9 11:47:46 2024
--
--- svn:log (original)
+++ svn:log Thu May  9 11:47:46 2024
@@ -1 +1 @@
-PDFBOX-5469: reformat source
+PDFBOX-5819: reformat source



svn propchange: r1917614 - svn:log

2024-05-09 Thread lehmi
Author: lehmi
Revision: 1917614
Modified property: svn:log

Modified: svn:log at Thu May  9 11:47:36 2024
--
--- svn:log (original)
+++ svn:log Thu May  9 11:47:36 2024
@@ -1 +1 @@
-PDFBOX-5469: use inner wrapper class to transfer values
+PDFBOX-5819: use inner wrapper class to transfer values



svn propchange: r1917616 - svn:log

2024-05-09 Thread lehmi
Author: lehmi
Revision: 1917616
Modified property: svn:log

Modified: svn:log at Thu May  9 11:47:20 2024
--
--- svn:log (original)
+++ svn:log Thu May  9 11:47:20 2024
@@ -1 +1 @@
-PDFBOX-5469: reformat source
+PDFBOX-5819: reformat source



svn propchange: r1917613 - svn:log

2024-05-09 Thread lehmi
Author: lehmi
Revision: 1917613
Modified property: svn:log

Modified: svn:log at Thu May  9 11:47:09 2024
--
--- svn:log (original)
+++ svn:log Thu May  9 11:47:09 2024
@@ -1 +1 @@
-PDFBOX-5469: use inner wrapper class to transfer values
+PDFBOX-5819: use inner wrapper class to transfer values



svn commit: r1917616 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java

2024-05-09 Thread lehmi
Author: lehmi
Date: Thu May  9 11:46:12 2024
New Revision: 1917616

URL: http://svn.apache.org/viewvc?rev=1917616=rev
Log:
PDFBOX-5469: reformat source

Modified:

pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java

Modified: 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java?rev=1917616=1917615=1917616=diff
==
--- 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 (original)
+++ 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 Thu May  9 11:46:12 2024
@@ -24,6 +24,7 @@ import org.apache.fontbox.cff.CharString
 
 /**
  * This class represents a converter for a mapping into a Type2-sequence.
+ * 
  * @author Villu Ruusmann
  */
 public class Type2CharStringParser
@@ -62,13 +63,13 @@ public class Type2CharStringParser
 return glyphData.sequence;
 }
 
-private void parseSequence(byte[] bytes, byte[][] globalSubrIndex,
-byte[][] localSubrIndex, GlyphData glyphData)
-throws IOException
+private void parseSequence(byte[] bytes, byte[][] globalSubrIndex, 
byte[][] localSubrIndex,
+GlyphData glyphData) throws IOException
 {
 DataInput input = new DataInputByteArray(bytes);
 boolean localSubroutineIndexProvided = localSubrIndex != null && 
localSubrIndex.length > 0;
-boolean globalSubroutineIndexProvided = globalSubrIndex != null && 
globalSubrIndex.length > 0;
+boolean globalSubroutineIndexProvided = globalSubrIndex != null
+&& globalSubrIndex.length > 0;
 
 while (input.hasRemaining())
 {
@@ -81,14 +82,14 @@ public class Type2CharStringParser
 {
 processCallSubr(globalSubrIndex, localSubrIndex, 
globalSubrIndex, glyphData);
 }
-else if ( (b0 >= 0 && b0 <= 27) || (b0 >= 29 && b0 <= 31))
+else if ((b0 >= 0 && b0 <= 27) || (b0 >= 29 && b0 <= 31))
 {
 glyphData.sequence.add(readCommand(b0, input, glyphData));
-} 
+}
 else if (b0 == 28 || (b0 >= 32 && b0 <= 255))
 {
 glyphData.sequence.add(readNumber(b0, input));
-} 
+}
 else
 {
 throw new IllegalArgumentException();
@@ -97,8 +98,7 @@ public class Type2CharStringParser
 }
 
 private void processCallSubr(byte[][] globalSubrIndex, byte[][] 
localSubrIndex,
-byte[][] subrIndex, GlyphData glyphData)
-throws IOException
+byte[][] subrIndex, GlyphData glyphData) throws IOException
 {
 int subrNumber = calculateSubrNumber(
 (Integer) glyphData.sequence.remove(glyphData.sequence.size() 
- 1),
@@ -167,17 +167,17 @@ public class Type2CharStringParser
 if (b0 == 28)
 {
 return (int) input.readShort();
-} 
+}
 else if (b0 >= 32 && b0 <= 246)
 {
 return b0 - 139;
-} 
+}
 else if (b0 >= 247 && b0 <= 250)
 {
 int b1 = input.readUnsignedByte();
 
 return (b0 - 247) * 256 + b1 + 108;
-} 
+}
 else if (b0 >= 251 && b0 <= 254)
 {
 int b1 = input.readUnsignedByte();
@@ -190,7 +190,7 @@ public class Type2CharStringParser
 // The lower bytes are representing the digits after the decimal 
point
 double fraction = input.readUnsignedShort() / 65535d;
 return value + fraction;
-} 
+}
 else
 {
 throw new IllegalArgumentException();
@@ -200,7 +200,7 @@ public class Type2CharStringParser
 private int getMaskLength(int hstemCount, int vstemCount)
 {
 int hintCount = hstemCount + vstemCount;
-int length = hintCount / 8; 
+int length = hintCount / 8;
 if (hintCount % 8 > 0)
 {
 length++;




svn commit: r1917615 - /pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java

2024-05-09 Thread lehmi
Author: lehmi
Date: Thu May  9 11:45:40 2024
New Revision: 1917615

URL: http://svn.apache.org/viewvc?rev=1917615=rev
Log:
PDFBOX-5469: reformat source

Modified:

pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java

Modified: 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java?rev=1917615=1917614=1917615=diff
==
--- 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 (original)
+++ 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 Thu May  9 11:45:40 2024
@@ -24,6 +24,7 @@ import org.apache.fontbox.cff.CharString
 
 /**
  * This class represents a converter for a mapping into a Type2-sequence.
+ * 
  * @author Villu Ruusmann
  */
 public class Type2CharStringParser
@@ -64,12 +65,12 @@ public class Type2CharStringParser
 }
 
 private void parseSequence(byte[] bytes, byte[][] globalSubrIndex, 
byte[][] localSubrIndex,
-GlyphData glyphData)
-throws IOException
+GlyphData glyphData) throws IOException
 {
 DataInput input = new DataInputByteArray(bytes);
 boolean localSubroutineIndexProvided = localSubrIndex != null && 
localSubrIndex.length > 0;
-boolean globalSubroutineIndexProvided = globalSubrIndex != null && 
globalSubrIndex.length > 0;
+boolean globalSubroutineIndexProvided = globalSubrIndex != null
+&& globalSubrIndex.length > 0;
 
 while (input.hasRemaining())
 {
@@ -82,14 +83,14 @@ public class Type2CharStringParser
 {
 processCallSubr(globalSubrIndex, localSubrIndex, 
globalSubrIndex, glyphData);
 }
-else if ( (b0 >= 0 && b0 <= 27) || (b0 >= 29 && b0 <= 31))
+else if ((b0 >= 0 && b0 <= 27) || (b0 >= 29 && b0 <= 31))
 {
 glyphData.sequence.add(readCommand(b0, input, glyphData));
-} 
+}
 else if (b0 == 28 || (b0 >= 32 && b0 <= 255))
 {
 glyphData.sequence.add(readNumber(b0, input));
-} 
+}
 else
 {
 throw new IllegalArgumentException();
@@ -98,8 +99,7 @@ public class Type2CharStringParser
 }
 
 private void processCallSubr(byte[][] globalSubrIndex, byte[][] 
localSubrIndex,
-byte[][] subrIndex, GlyphData glyphData)
-throws IOException
+byte[][] subrIndex, GlyphData glyphData) throws IOException
 {
 int subrNumber = calculateSubrNumber(
 (Integer) glyphData.sequence.remove(glyphData.sequence.size() 
- 1),
@@ -168,17 +168,17 @@ public class Type2CharStringParser
 if (b0 == 28)
 {
 return (int) input.readShort();
-} 
+}
 else if (b0 >= 32 && b0 <= 246)
 {
 return b0 - 139;
-} 
+}
 else if (b0 >= 247 && b0 <= 250)
 {
 int b1 = input.readUnsignedByte();
 
 return (b0 - 247) * 256 + b1 + 108;
-} 
+}
 else if (b0 >= 251 && b0 <= 254)
 {
 int b1 = input.readUnsignedByte();
@@ -191,7 +191,7 @@ public class Type2CharStringParser
 // The lower bytes are representing the digits after the decimal 
point
 double fraction = input.readUnsignedShort() / 65535d;
 return value + fraction;
-} 
+}
 else
 {
 throw new IllegalArgumentException();
@@ -201,7 +201,7 @@ public class Type2CharStringParser
 private int getMaskLength(int hstemCount, int vstemCount)
 {
 int hintCount = hstemCount + vstemCount;
-int length = hintCount / 8; 
+int length = hintCount / 8;
 if (hintCount % 8 > 0)
 {
 length++;




svn commit: r1917614 - /pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java

2024-05-09 Thread lehmi
Author: lehmi
Date: Thu May  9 11:44:16 2024
New Revision: 1917614

URL: http://svn.apache.org/viewvc?rev=1917614=rev
Log:
PDFBOX-5469: use inner wrapper class to transfer values

Modified:

pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java

Modified: 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java?rev=1917614=1917613=1917614=diff
==
--- 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 (original)
+++ 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 Thu May  9 11:44:16 2024
@@ -58,11 +58,13 @@ public class Type2CharStringParser
 public List parse(byte[] bytes, byte[][] globalSubrIndex, byte[][] 
localSubrIndex,
 String glyphName) throws IOException
 {
-return parseSequence(bytes, globalSubrIndex, localSubrIndex, new 
ArrayList<>(), 0, 0);
+GlyphData glyphData = new GlyphData();
+parseSequence(bytes, globalSubrIndex, localSubrIndex, glyphData);
+return glyphData.sequence;
 }
 
-private List parseSequence(byte[] bytes, byte[][] globalSubrIndex,
-byte[][] localSubrIndex, List sequence, int hstemCount, 
int vstemCount)
+private void parseSequence(byte[] bytes, byte[][] globalSubrIndex, 
byte[][] localSubrIndex,
+GlyphData glyphData)
 throws IOException
 {
 DataInput input = new DataInputByteArray(bytes);
@@ -74,48 +76,44 @@ public class Type2CharStringParser
 int b0 = input.readUnsignedByte();
 if (b0 == CALLSUBR && localSubroutineIndexProvided)
 {
-processCallSubr(globalSubrIndex, localSubrIndex, 
localSubrIndex, sequence,
-hstemCount, vstemCount);
+processCallSubr(globalSubrIndex, localSubrIndex, 
localSubrIndex, glyphData);
 }
 else if (b0 == CALLGSUBR && globalSubroutineIndexProvided)
 {
-processCallSubr(globalSubrIndex, localSubrIndex, 
globalSubrIndex, sequence,
-hstemCount, vstemCount);
+processCallSubr(globalSubrIndex, localSubrIndex, 
globalSubrIndex, glyphData);
 }
 else if ( (b0 >= 0 && b0 <= 27) || (b0 >= 29 && b0 <= 31))
 {
-sequence.add(
-readCommand(b0, input, countNumbers(sequence), 
hstemCount, vstemCount));
+glyphData.sequence.add(readCommand(b0, input, glyphData));
 } 
 else if (b0 == 28 || (b0 >= 32 && b0 <= 255))
 {
-sequence.add(readNumber(b0, input));
+glyphData.sequence.add(readNumber(b0, input));
 } 
 else
 {
 throw new IllegalArgumentException();
 }
 }
-return sequence;
 }
 
 private void processCallSubr(byte[][] globalSubrIndex, byte[][] 
localSubrIndex,
-byte[][] subrIndex, List sequence, int hstemCount, int 
vstemCount)
+byte[][] subrIndex, GlyphData glyphData)
 throws IOException
 {
-int subrNumber = calculateSubrNumber((Integer) 
sequence.remove(sequence.size() - 1),
+int subrNumber = calculateSubrNumber(
+(Integer) glyphData.sequence.remove(glyphData.sequence.size() 
- 1),
 subrIndex.length);
 if (subrNumber < subrIndex.length)
 {
 byte[] subrBytes = subrIndex[subrNumber];
-parseSequence(subrBytes, globalSubrIndex, localSubrIndex, 
sequence, hstemCount,
-vstemCount);
-Object lastItem = sequence.get(sequence.size() - 1);
+parseSequence(subrBytes, globalSubrIndex, localSubrIndex, 
glyphData);
+Object lastItem = glyphData.sequence.get(glyphData.sequence.size() 
- 1);
 if (lastItem instanceof CharStringCommand
 && Type2KeyWord.RET == ((CharStringCommand) 
lastItem).getType2KeyWord())
 {
 // remove "return" command
-sequence.remove(sequence.size() - 1);
+glyphData.sequence.remove(glyphData.sequence.size() - 1);
 }
 }
 }
@@ -133,26 +131,25 @@ public class Type2CharStringParser
 return 32768 + operand;
 }
 
-private CharStringCommand readCommand(int b0, DataInput input, int 
numberCount, int hstemCount,
-int vstemCount)
+private CharStringCommand readCommand(int b0, DataInput input, GlyphData 
glyphData)
 throws IOException
 {
 switch (b0)
   

svn commit: r1917613 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java

2024-05-09 Thread lehmi
Author: lehmi
Date: Thu May  9 11:38:50 2024
New Revision: 1917613

URL: http://svn.apache.org/viewvc?rev=1917613=rev
Log:
PDFBOX-5469: use inner wrapper class to transfer values

Modified:

pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java

Modified: 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java?rev=1917613=1917612=1917613=diff
==
--- 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 (original)
+++ 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 Thu May  9 11:38:50 2024
@@ -57,11 +57,13 @@ public class Type2CharStringParser
 public List parse(byte[] bytes, byte[][] globalSubrIndex, byte[][] 
localSubrIndex)
 throws IOException
 {
-return parseSequence(bytes, globalSubrIndex, localSubrIndex, new 
ArrayList<>(), 0, 0);
+GlyphData glyphData = new GlyphData();
+parseSequence(bytes, globalSubrIndex, localSubrIndex, glyphData);
+return glyphData.sequence;
 }
 
-private List parseSequence(byte[] bytes, byte[][] globalSubrIndex,
-byte[][] localSubrIndex, List sequence, int hstemCount, 
int vstemCount)
+private void parseSequence(byte[] bytes, byte[][] globalSubrIndex,
+byte[][] localSubrIndex, GlyphData glyphData)
 throws IOException
 {
 DataInput input = new DataInputByteArray(bytes);
@@ -73,45 +75,44 @@ public class Type2CharStringParser
 int b0 = input.readUnsignedByte();
 if (b0 == CALLSUBR && localSubroutineIndexProvided)
 {
-processCallSubr(globalSubrIndex, localSubrIndex, 
localSubrIndex, sequence);
+processCallSubr(globalSubrIndex, localSubrIndex, 
localSubrIndex, glyphData);
 }
 else if (b0 == CALLGSUBR && globalSubroutineIndexProvided)
 {
-processCallSubr(globalSubrIndex, localSubrIndex, 
globalSubrIndex, sequence);
+processCallSubr(globalSubrIndex, localSubrIndex, 
globalSubrIndex, glyphData);
 }
 else if ( (b0 >= 0 && b0 <= 27) || (b0 >= 29 && b0 <= 31))
 {
-sequence.add(
-readCommand(b0, input, countNumbers(sequence), 
hstemCount, vstemCount));
+glyphData.sequence.add(readCommand(b0, input, glyphData));
 } 
 else if (b0 == 28 || (b0 >= 32 && b0 <= 255))
 {
-sequence.add(readNumber(b0, input));
+glyphData.sequence.add(readNumber(b0, input));
 } 
 else
 {
 throw new IllegalArgumentException();
 }
 }
-return sequence;
 }
 
 private void processCallSubr(byte[][] globalSubrIndex, byte[][] 
localSubrIndex,
-byte[][] subrIndex, List sequence)
+byte[][] subrIndex, GlyphData glyphData)
 throws IOException
 {
-int subrNumber = calculateSubrNumber((Integer) 
sequence.remove(sequence.size() - 1),
+int subrNumber = calculateSubrNumber(
+(Integer) glyphData.sequence.remove(glyphData.sequence.size() 
- 1),
 subrIndex.length);
 if (subrNumber < subrIndex.length)
 {
 byte[] subrBytes = subrIndex[subrNumber];
-parseSequence(subrBytes, globalSubrIndex, localSubrIndex, 
sequence, 0, 0);
-Object lastItem = sequence.get(sequence.size() - 1);
+parseSequence(subrBytes, globalSubrIndex, localSubrIndex, 
glyphData);
+Object lastItem = glyphData.sequence.get(glyphData.sequence.size() 
- 1);
 if (lastItem instanceof CharStringCommand
 && Type2KeyWord.RET == ((CharStringCommand) 
lastItem).getType2KeyWord())
 {
 // remove "return" command
-sequence.remove(sequence.size() - 1);
+glyphData.sequence.remove(glyphData.sequence.size() - 1);
 }
 }
 }
@@ -129,26 +130,25 @@ public class Type2CharStringParser
 return 32768 + operand;
 }
 
-private CharStringCommand readCommand(int b0, DataInput input, int 
numberCount, int hstemCount,
-int vstemCount)
+private CharStringCommand readCommand(int b0, DataInput input, GlyphData 
glyphData)
 throws IOException
 {
 switch (b0)
 {
 case 1:
 case 18:
-hstemCount += numberCount / 2;
+glyphData.hstemCount += countNumbers(glyphData.sequence) / 2;
 return CharStringCommand.getInstan

svn commit: r1917611 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java

2024-05-09 Thread lehmi
Author: lehmi
Date: Thu May  9 11:09:31 2024
New Revision: 1917611

URL: http://svn.apache.org/viewvc?rev=1917611=rev
Log:
PDFBOX-5469: deprecate setForceHexForm

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java?rev=1917611=1917610=1917611=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java 
(original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java 
Thu May  9 11:09:31 2024
@@ -155,11 +155,13 @@ public final class COSString extends COS
 }
 
 /**
- * Sets whether to force the string is to be written in hex form.
- * This is needed when signing PDF files.
+ * Sets whether to force the string is to be written in hex form. This is 
needed when signing PDF files.
  *
  * @param value True to force hex.
+ * 
+ * @deprecated to be removed in a future release.
  */
+@Deprecated
 public void setForceHexForm(boolean value)
 {
 this.forceHexForm = value;




svn commit: r1917610 - in /pdfbox/trunk/pdfbox/src: main/java/org/apache/pdfbox/cos/ main/java/org/apache/pdfbox/pdfparser/ main/java/org/apache/pdfbox/pdfwriter/ main/java/org/apache/pdfbox/pdmodel/e

2024-05-09 Thread lehmi
Author: lehmi
Date: Thu May  9 10:54:36 2024
New Revision: 1917610

URL: http://svn.apache.org/viewvc?rev=1917610=rev
Log:
PDFBOX-5469: make COSString immutable

Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/PDSignature.java
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/cos/TestCOSString.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java?rev=1917610=1917609=1917610=diff
==
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java 
(original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSString.java Thu 
May  9 10:54:36 2024
@@ -47,8 +47,8 @@ public final class COSString extends COS
 {
 private static final Logger LOG = LogManager.getLogger(COSString.class);
 
-private byte[] bytes;
-private boolean forceHexForm;
+private final byte[] bytes;
+private final boolean forceHexForm;
 
 // legacy behaviour for old PDFParser
 public static final boolean FORCE_PARSING =
@@ -62,7 +62,21 @@ public final class COSString extends COS
  */
 public COSString(byte[] bytes)
 {
-setValue(bytes);
+this(bytes, false);
+}
+
+/**
+ * Creates a new PDF string from a byte array. This method can be used to 
read a string from an existing PDF file,
+ * or to create a new byte string.
+ *
+ * @param bytes The raw bytes of the PDF text string or byte string.
+ * @param forceHex forces the hexadecimal presentation of the string if 
set to true
+ * 
+ */
+public COSString(byte[] bytes, boolean forceHex)
+{
+forceHexForm = forceHex;
+this.bytes = Arrays.copyOf(bytes, bytes.length);
 }
 
 /**
@@ -72,6 +86,19 @@ public final class COSString extends COS
  */
 public COSString(String text)
 {
+this(text, false);
+}
+
+/**
+ * Creates a new text string from a Java String.
+ *
+ * @param text The string value of the object.
+ * @param forceHex forces the hexadecimal presentation of the string if 
set to true
+ * 
+ */
+public COSString(String text, boolean forceHex)
+{
+forceHexForm = forceHex;
 // check whether the string uses only characters available in 
PDFDocEncoding
 boolean isOnlyPDFDocEncoding = true;
 for (char c : text.toCharArray())
@@ -142,30 +169,6 @@ public final class COSString extends COS
 }
 
 /**
- * Sets the raw value of this string.
- *
- * @param value The raw bytes of the PDF text string or byte string.
- * 
- * @deprecated to be removed in a future release.
- */
-@Deprecated
-public void setValue(byte[] value)
-{
-bytes = value.clone();
-}
-
-/**
- * Sets whether to force the string is to be written in hex form.
- * This is needed when signing PDF files.
- *
- * @param value True to force hex.
- */
-public void setForceHexForm(boolean value)
-{
-this.forceHexForm = value;
-}
-
-/**
  * Returns true if the string is to be written in hex form.
  * 
  * @return true if the COSString is written in hex form
@@ -219,7 +222,7 @@ public final class COSString extends COS
  */
 public byte[] getBytes()
 {
-return bytes.clone();
+return Arrays.copyOf(bytes, bytes.length);
 }
 
 /**

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java?rev=1917610=1917609=1917610=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java 
Thu May  9 10:54:36 2024
@@ -588,7 +588,9 @@ public class COSParser extends BaseParse
 }
 else if (securityHandler != null)
 {
-securityHandler.decrypt(parsedObject, objKey.getNumber(), 
objKey.getGeneration());
+parsedObject = securityHandler.decrypt(parsedObject, 
objKey.getNumber(),
+objKey.getGeneration());
+parsedObject.setKey(objKey);
 }
 
 if (!endObjectKey.startsWith(ENDOBJ_STRING))

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter

svn commit: r1917602 - /pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java

2024-05-09 Thread lehmi
Author: lehmi
Date: Thu May  9 10:11:00 2024
New Revision: 1917602

URL: http://svn.apache.org/viewvc?rev=1917602=rev
Log:
PDFBOX-5819: remove private member fields to make Type2CharStringParser 
thread-safe again

Modified:

pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java

Modified: 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java?rev=1917602=1917601=1917602=diff
==
--- 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 (original)
+++ 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 Thu May  9 10:11:00 2024
@@ -32,11 +32,7 @@ public class Type2CharStringParser
 private static final int CALLSUBR = 10;
 private static final int CALLGSUBR = 29;
 
-private int hstemCount;
-private int vstemCount;
-private List sequence;
 private final String fontName;
-private String currentGlyph;
 
 /**
  * Constructs a new Type1CharStringParser object for a Type 1-equivalent 
font.
@@ -62,17 +58,12 @@ public class Type2CharStringParser
 public List parse(byte[] bytes, byte[][] globalSubrIndex, byte[][] 
localSubrIndex,
 String glyphName) throws IOException
 {
-// reset values if the parser is used multiple times
-hstemCount = 0;
-vstemCount = 0;
-// create a new list as it is used as return value
-sequence = new ArrayList<>();
-currentGlyph = glyphName;
-return parseSequence(bytes, globalSubrIndex, localSubrIndex);
+return parseSequence(bytes, globalSubrIndex, localSubrIndex, new 
ArrayList<>(), 0, 0);
 }
 
 private List parseSequence(byte[] bytes, byte[][] globalSubrIndex,
-byte[][] localSubrIndex) throws IOException
+byte[][] localSubrIndex, List sequence, int hstemCount, 
int vstemCount)
+throws IOException
 {
 DataInput input = new DataInputByteArray(bytes);
 boolean localSubroutineIndexProvided = localSubrIndex != null && 
localSubrIndex.length > 0;
@@ -83,15 +74,18 @@ public class Type2CharStringParser
 int b0 = input.readUnsignedByte();
 if (b0 == CALLSUBR && localSubroutineIndexProvided)
 {
-processCallSubr(globalSubrIndex, localSubrIndex, 
localSubrIndex);
+processCallSubr(globalSubrIndex, localSubrIndex, 
localSubrIndex, sequence,
+hstemCount, vstemCount);
 }
 else if (b0 == CALLGSUBR && globalSubroutineIndexProvided)
 {
-processCallSubr(globalSubrIndex, localSubrIndex, 
globalSubrIndex);
+processCallSubr(globalSubrIndex, localSubrIndex, 
globalSubrIndex, sequence,
+hstemCount, vstemCount);
 }
 else if ( (b0 >= 0 && b0 <= 27) || (b0 >= 29 && b0 <= 31))
 {
-sequence.add(readCommand(b0, input));
+sequence.add(
+readCommand(b0, input, countNumbers(sequence), 
hstemCount, vstemCount));
 } 
 else if (b0 == 28 || (b0 >= 32 && b0 <= 255))
 {
@@ -105,7 +99,8 @@ public class Type2CharStringParser
 return sequence;
 }
 
-private void processCallSubr(byte[][] globalSubrIndex, byte[][] 
localSubrIndex, byte[][] subrIndex)
+private void processCallSubr(byte[][] globalSubrIndex, byte[][] 
localSubrIndex,
+byte[][] subrIndex, List sequence, int hstemCount, int 
vstemCount)
 throws IOException
 {
 int subrNumber = calculateSubrNumber((Integer) 
sequence.remove(sequence.size() - 1),
@@ -113,7 +108,8 @@ public class Type2CharStringParser
 if (subrNumber < subrIndex.length)
 {
 byte[] subrBytes = subrIndex[subrNumber];
-parseSequence(subrBytes, globalSubrIndex, localSubrIndex);
+parseSequence(subrBytes, globalSubrIndex, localSubrIndex, 
sequence, hstemCount,
+vstemCount);
 Object lastItem = sequence.get(sequence.size() - 1);
 if (lastItem instanceof CharStringCommand
 && Type2KeyWord.RET == ((CharStringCommand) 
lastItem).getType2KeyWord())
@@ -137,24 +133,26 @@ public class Type2CharStringParser
 return 32768 + operand;
 }
 
-private CharStringCommand readCommand(int b0, DataInput input) throws 
IOException
+private CharStringCommand readCommand(int b0, DataInput input, int 
numberCount, int hstemCount,
+int vstemCount)
+throws IOException
 {
 switch (b0)

svn commit: r1917601 - in /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff: CFFCIDFont.java CFFType1Font.java Type2CharStringParser.java

2024-05-09 Thread lehmi
Author: lehmi
Date: Thu May  9 10:02:15 2024
New Revision: 1917601

URL: http://svn.apache.org/viewvc?rev=1917601=rev
Log:
PDFBOX-5819: remove private member fields to make Type2CharStringParser 
thread-safe again

Modified:
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFType1Font.java

pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java

Modified: 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java?rev=1917601=1917600=1917601=diff
==
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java 
(original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFCIDFont.java 
Thu May  9 10:02:15 2024
@@ -21,7 +21,6 @@ import java.awt.geom.GeneralPath;
 import java.io.IOException;
 import java.util.Collections;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import org.apache.fontbox.type1.Type1CharStringReader;
@@ -236,7 +235,7 @@ public class CFFCIDFont extends CFFFont
 bytes = charStrings[0]; // .notdef
 }
 List type2seq = getParser().parse(bytes, globalSubrIndex,
-getLocalSubrIndex(gid), String.format(Locale.US, "%04x", 
cid));
+getLocalSubrIndex(gid));
 type2 = new CIDKeyedType2CharString(reader, getName(), cid, gid, 
type2seq,
 getDefaultWidthX(gid), 
getNominalWidthX(gid));
 charStringCache.put(cid, type2);

Modified: 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFType1Font.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFType1Font.java?rev=1917601=1917600=1917601=diff
==
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFType1Font.java 
(original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFType1Font.java 
Thu May  9 10:02:15 2024
@@ -138,8 +138,7 @@ public class CFFType1Font extends CFFFon
 // .notdef
 bytes = charStrings[0];
 }
-List type2seq = getParser().parse(bytes, globalSubrIndex, 
getLocalSubrIndex(),
-name);
+List type2seq = getParser().parse(bytes, globalSubrIndex, 
getLocalSubrIndex());
 type2 = new Type2CharString(reader, getName(), name, gid, 
type2seq, getDefaultWidthX(),
 getNominalWidthX());
 charStringCache.put(gid, type2);

Modified: 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java?rev=1917601=1917600=1917601=diff
==
--- 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 (original)
+++ 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharStringParser.java
 Thu May  9 10:02:15 2024
@@ -32,11 +32,7 @@ public class Type2CharStringParser
 private static final int CALLSUBR = 10;
 private static final int CALLGSUBR = 29;
 
-private int hstemCount;
-private int vstemCount;
-private List sequence;
 private final String fontName;
-private String currentGlyph;
 
 /**
  * Constructs a new Type1CharStringParser object for a Type 1-equivalent 
font.
@@ -54,25 +50,19 @@ public class Type2CharStringParser
  * @param bytes the given mapping as byte array
  * @param globalSubrIndex array containing all global subroutines
  * @param localSubrIndex array containing all local subroutines
- * @param glyphName the name of the current glyph
  * 
  * @return the Type2 sequence
  * @throws IOException if an error occurs during reading
  */
-public List parse(byte[] bytes, byte[][] globalSubrIndex, byte[][] 
localSubrIndex,
-String glyphName) throws IOException
+public List parse(byte[] bytes, byte[][] globalSubrIndex, byte[][] 
localSubrIndex)
+throws IOException
 {
-// reset values if the parser is used multiple times
-hstemCount = 0;
-vstemCount = 0;
-// create a new list as it is used as return value
-sequence = new ArrayList<>();
-currentGlyph = glyphName;
-return parseSequence(bytes, globalSubrIndex, localSubrIndex);
+return parseSequence(bytes, globalSubrIndex, localSubrIndex, new 
ArrayList<>(), 0, 0);
 }
 
 private List parseSeque

svn commit: r1917515 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java

2024-05-05 Thread lehmi
Author: lehmi
Date: Sun May  5 10:44:19 2024
New Revision: 1917515

URL: http://svn.apache.org/viewvc?rev=1917515=rev
Log:
PDFBOX-5809: cache keys of imported indirect objects to speed up the processing 
of big documents

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java?rev=1917515=1917514=1917515=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
 Sun May  5 10:44:19 2024
@@ -151,6 +151,9 @@ public class PDDocument implements Close
 // to make sure only one signature is added
 private boolean signatureAdded = false;
 
+// cache for the key of all imported indirect objects
+private final List indirectObjectKeys = new ArrayList<>();
+
 /**
  * Creates an empty PDF document.
  * You need to add at least one page for the document to be valid.
@@ -712,7 +715,6 @@ public class PDDocument implements Close
  */
 private void setHighestImportedObjectNumber(PDPage importedPage)
 {
-List indirectObjectKeys = new ArrayList<>();
 importedPage.getCOSObject().getIndirectObjectKeys(indirectObjectKeys);
 long highestImportedNumber = 
indirectObjectKeys.stream().map(COSObjectKey::getNumber)
 .max(Long::compare).orElse(0L);




svn commit: r1917514 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java

2024-05-05 Thread lehmi
Author: lehmi
Date: Sun May  5 10:43:37 2024
New Revision: 1917514

URL: http://svn.apache.org/viewvc?rev=1917514=rev
Log:
PDFBOX-5809: cache keys of imported indirect objects to speed up the processing 
of big documents

Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java?rev=1917514=1917513=1917514=diff
==
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java 
(original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java 
Sun May  5 10:43:37 2024
@@ -151,6 +151,9 @@ public class PDDocument implements Close
 // to make sure only one signature is added
 private boolean signatureAdded = false;
 
+// cache for the key of all imported indirect objects
+private final List indirectObjectKeys = new ArrayList<>();
+
 /**
  * Creates an empty PDF document.
  * You need to add at least one page for the document to be valid.
@@ -713,7 +716,6 @@ public class PDDocument implements Close
  */
 private void setHighestImportedObjectNumber(PDPage importedPage)
 {
-List indirectObjectKeys = new ArrayList<>();
 importedPage.getCOSObject().getIndirectObjectKeys(indirectObjectKeys);
 long highestImportedNumber = 
indirectObjectKeys.stream().map(COSObjectKey::getNumber)
 .max(Long::compare).orElse(0L);




svn commit: r1916982 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java

2024-04-14 Thread lehmi
Author: lehmi
Date: Sun Apr 14 10:44:23 2024
New Revision: 1916982

URL: http://svn.apache.org/viewvc?rev=1916982=rev
Log:
PDFBOX-5660: bugfix rendering

Modified:

pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java

Modified: 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java?rev=1916982=1916981=1916982=diff
==
--- 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java 
(original)
+++ 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java 
Sun Apr 14 10:44:23 2024
@@ -322,6 +322,7 @@ public class Type1CharString
 // indicates a PDFBox bug
 throw new IllegalArgumentException("Unhandled command: " + 
type1KeyWord);
 }
+numbers.clear();
 }
 
 /**




svn commit: r1916981 - /pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java

2024-04-14 Thread lehmi
Author: lehmi
Date: Sun Apr 14 10:44:12 2024
New Revision: 1916981

URL: http://svn.apache.org/viewvc?rev=1916981=rev
Log:
PDFBOX-5660: bugfix rendering

Modified:

pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java

Modified: 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java?rev=1916981=1916980=1916981=diff
==
--- 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java
 (original)
+++ 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java
 Sun Apr 14 10:44:12 2024
@@ -321,6 +321,7 @@ public class Type1CharString
 // indicates a PDFBox bug
 throw new IllegalArgumentException("Unhandled command: " + 
type1KeyWord);
 }
+numbers.clear();
 }
 
 /**




svn commit: r1916977 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java

2024-04-14 Thread lehmi
Author: lehmi
Date: Sun Apr 14 09:20:30 2024
New Revision: 1916977

URL: http://svn.apache.org/viewvc?rev=1916977=rev
Log:
PDFBOX-5660: optimize, as suggested by cinstool; closes #188

Modified:

pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java

Modified: 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java?rev=1916977=1916976=1916977=diff
==
--- 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java 
(original)
+++ 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java 
Sun Apr 14 09:20:30 2024
@@ -22,7 +22,6 @@ import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 import org.apache.logging.log4j.Logger;
@@ -150,9 +149,7 @@ public class Type1CharString
 type1Sequence.forEach(obj -> {
 if (obj instanceof CharStringCommand)
 {
-List results = handleType1Command(numbers, 
(CharStringCommand) obj);
-numbers.clear();
-numbers.addAll(results);
+handleType1Command(numbers, (CharStringCommand) obj);
 }
 else
 {
@@ -161,7 +158,7 @@ public class Type1CharString
 });
 }
 
-private List handleType1Command(List numbers, 
CharStringCommand command)
+private void handleType1Command(List numbers, CharStringCommand 
command)
 {
 commandCount++;
 Type1KeyWord type1KeyWord = command.getType1KeyWord();
@@ -169,7 +166,8 @@ public class Type1CharString
 {
 // indicates an invalid charstring
 LOG.warn("Unknown charstring command in glyph {} of font {}", 
glyphName, fontName);
-return Collections.emptyList();
+numbers.clear();
+return;
 }
 switch(type1KeyWord)
 {
@@ -298,11 +296,10 @@ public class Type1CharString
 
 float result = a / b;
 
-List list = new ArrayList<>(numbers);
-list.remove(list.size() - 1);
-list.remove(list.size() - 1);
-list.add(result);
-return list;
+numbers.remove(numbers.size() - 1);
+numbers.remove(numbers.size() - 1);
+numbers.add(result);
+return;
 }
 break;
 case HSTEM:
@@ -325,7 +322,6 @@ public class Type1CharString
 // indicates a PDFBox bug
 throw new IllegalArgumentException("Unhandled command: " + 
type1KeyWord);
 }
-return Collections.emptyList();
 }
 
 /**




svn commit: r1916976 - /pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java

2024-04-14 Thread lehmi
Author: lehmi
Date: Sun Apr 14 09:18:46 2024
New Revision: 1916976

URL: http://svn.apache.org/viewvc?rev=1916976=rev
Log:
PDFBOX-5660: optimize, as suggested by cinstool

Modified:

pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java

Modified: 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java?rev=1916976=1916975=1916976=diff
==
--- 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java
 (original)
+++ 
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharString.java
 Sun Apr 14 09:18:46 2024
@@ -22,7 +22,6 @@ import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 import org.apache.commons.logging.Log;
@@ -149,9 +148,7 @@ public class Type1CharString
 type1Sequence.forEach(obj -> {
 if (obj instanceof CharStringCommand)
 {
-List results = handleType1Command(numbers, 
(CharStringCommand) obj);
-numbers.clear();
-numbers.addAll(results);
+handleType1Command(numbers, (CharStringCommand) obj);
 }
 else
 {
@@ -160,7 +157,7 @@ public class Type1CharString
 });
 }
 
-private List handleType1Command(List numbers, 
CharStringCommand command)
+private void handleType1Command(List numbers, CharStringCommand 
command)
 {
 commandCount++;
 Type1KeyWord type1KeyWord = command.getType1KeyWord();
@@ -168,7 +165,8 @@ public class Type1CharString
 {
 // indicates an invalid charstring
 LOG.warn("Unknown charstring command in glyph " + glyphName + " of 
font " + fontName);
-return Collections.emptyList();
+numbers.clear();
+return;
 }
 switch(type1KeyWord)
 {
@@ -297,11 +295,10 @@ public class Type1CharString
 
 float result = a / b;
 
-List list = new ArrayList<>(numbers);
-list.remove(list.size() - 1);
-list.remove(list.size() - 1);
-list.add(result);
-return list;
+numbers.remove(numbers.size() - 1);
+numbers.remove(numbers.size() - 1);
+numbers.add(result);
+return;
 }
 break;
 case HSTEM:
@@ -324,7 +321,6 @@ public class Type1CharString
 // indicates a PDFBox bug
 throw new IllegalArgumentException("Unhandled command: " + 
type1KeyWord);
 }
-return Collections.emptyList();
 }
 
 /**




svn commit: r1916887 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser: BruteForceParser.java COSParser.java XrefParser.java

2024-04-09 Thread lehmi
Author: lehmi
Date: Tue Apr  9 18:55:53 2024
New Revision: 1916887

URL: http://svn.apache.org/viewvc?rev=1916887=rev
Log:
PDFBOX-5032: sonar fix

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/XrefParser.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java?rev=1916887=1916886=1916887=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
 Tue Apr  9 18:55:53 2024
@@ -145,13 +145,13 @@ public class BruteForceParser
 source.seek(currentOffset);
 int nextChar = source.read();
 currentOffset++;
-if (COSParser.isWhitespace(nextChar) && 
parser.isString(OBJ_MARKER))
+if (BaseParser.isWhitespace(nextChar) && 
parser.isString(OBJ_MARKER))
 {
 long tempOffset = currentOffset - 2;
 source.seek(tempOffset);
 int genID = source.peek();
 // is the next char a digit?
-if (COSParser.isDigit(genID))
+if (BaseParser.isDigit(genID))
 {
 genID -= 48;
 tempOffset--;

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java?rev=1916887=1916886=1916887=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java 
Tue Apr  9 18:55:53 2024
@@ -131,7 +131,7 @@ public class COSParser extends BaseParse
 /**
  * The security handler.
  */
-private SecurityHandler securityHandler = null;
+private SecurityHandler securityHandler = null;
 
 /**
  *  how many trailing bytes to read for EOF marker.
@@ -1235,8 +1235,8 @@ public class COSParser extends BaseParse
  *
  * @return The security handler of the document that was parsed.
  */
-protected SecurityHandler getSecurityHandler()
+protected SecurityHandler getSecurityHandler()
 {
-return securityHandler;
+return (SecurityHandler) securityHandler;
 }
 }

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/XrefParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/XrefParser.java?rev=1916887=1916886=1916887=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/XrefParser.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/XrefParser.java 
Tue Apr  9 18:55:53 2024
@@ -209,7 +209,7 @@ public class XrefParser
 long trailerOffset = source.getPosition();
 // PDFBOX-1739 skip extra xref entries in RegisSTAR documents
 int nextCharacter = source.peek();
-while (nextCharacter != 't' && COSParser.isDigit(nextCharacter))
+while (nextCharacter != 't' && BaseParser.isDigit(nextCharacter))
 {
 if (source.getPosition() == trailerOffset)
 {
@@ -279,8 +279,7 @@ public class XrefParser
 xrefTrailerResolver.nextXrefObj( objByteOffset, 
XRefType.STREAM );
 xrefTrailerResolver.setTrailer(xrefStream);
 }
-PDFXrefStreamParser parser = new PDFXrefStreamParser(xrefStream);
-parser.parse(xrefTrailerResolver);
+new PDFXrefStreamParser(xrefStream).parse(xrefTrailerResolver);
 }
 
 return dict.getLong(COSName.PREV);
@@ -360,7 +359,7 @@ public class XrefParser
 source.seek(startXRefOffset - 1);
 int nextValue = source.read();
 // the first character has to be a whitespace, and then a digit
-if (COSParser.isWhitespace(nextValue))
+if (BaseParser.isWhitespace(nextValue))
 {
 parser.skipSpaces();
 if (parser.isDigit())
@@ -643,7 +642,7 @@ public class XrefParser
 break;
 }
 int nextChar = source.peek();
-if (nextChar == 't' || COSParser.isEndOfName(nextChar))
+if (nextChar == 't' || BaseParser.isEndOfName(nextChar))
 {
 break;
 }




svn commit: r1916886 - /pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java

2024-04-09 Thread lehmi
Author: lehmi
Date: Tue Apr  9 18:46:34 2024
New Revision: 1916886

URL: http://svn.apache.org/viewvc?rev=1916886=rev
Log:
PDFBOX-5799: sonar fix

Modified:

pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java

Modified: 
pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java?rev=1916886=1916885=1916886=diff
==
--- 
pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
 (original)
+++ 
pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
 Tue Apr  9 18:46:34 2024
@@ -157,14 +157,13 @@ public class SequenceRandomAccessRead im
 {
 // search forward/backwards if the new position is after/before 
the current position
 int increment = position < currentPosition ? -1 : 1;
-for (int i = currentIndex; i < numberOfReader && i >= 0;)
+for (int i = currentIndex; i < numberOfReader && i >= 0; i += 
increment)
 {
 if (position >= startPositions[i] && position <= 
endPositions[i])
 {
 currentIndex = i;
 break;
 }
-i += increment;
 }
 currentPosition = position;
 }




svn commit: r1916885 - /pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java

2024-04-09 Thread lehmi
Author: lehmi
Date: Tue Apr  9 18:46:23 2024
New Revision: 1916885

URL: http://svn.apache.org/viewvc?rev=1916885=rev
Log:
PDFBOX-5799: sonar fix

Modified:

pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java

Modified: 
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java?rev=1916885=1916884=1916885=diff
==
--- 
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
 (original)
+++ 
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
 Tue Apr  9 18:46:23 2024
@@ -157,14 +157,13 @@ public class SequenceRandomAccessRead im
 {
 // search forward/backwards if the new position is after/before 
the current position
 int increment = position < currentPosition ? -1 : 1;
-for (int i = currentIndex; i < numberOfReader && i >= 0;)
+for (int i = currentIndex; i < numberOfReader && i >= 0; i += 
increment)
 {
 if (position >= startPositions[i] && position <= 
endPositions[i])
 {
 currentIndex = i;
 break;
 }
-i += increment;
 }
 currentPosition = position;
 }




svn commit: r1916860 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser: COSParser.java PDFXrefStreamParser.java XrefParser.java

2024-04-08 Thread lehmi
Author: lehmi
Date: Mon Apr  8 10:51:48 2024
New Revision: 1916860

URL: http://svn.apache.org/viewvc?rev=1916860=rev
Log:
PDFBOX-5032: simplify, PDFXrefStreamParser no longer extends BaseParser

Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFXrefStreamParser.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/XrefParser.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java?rev=1916860=1916859=1916860=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java 
Mon Apr  8 10:51:48 2024
@@ -249,8 +249,8 @@ public class COSParser extends BaseParse
 long startXRefOffset = getStartxrefOffset();
 if (startXRefOffset > -1)
 {
-XrefParser xrefParser = new XrefParser(document, this);
-trailer = xrefParser.parseXref(startXRefOffset);
+XrefParser xrefParser = new XrefParser(this);
+trailer = xrefParser.parseXref(document, startXRefOffset);
 xrefTable.putAll(xrefParser.getXrefTable());
 }
 else

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFXrefStreamParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFXrefStreamParser.java?rev=1916860=1916859=1916860=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFXrefStreamParser.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFXrefStreamParser.java
 Mon Apr  8 10:51:48 2024
@@ -24,10 +24,10 @@ import java.util.NoSuchElementException;
 
 import org.apache.pdfbox.cos.COSArray;
 import org.apache.pdfbox.cos.COSBase;
-import org.apache.pdfbox.cos.COSDocument;
 import org.apache.pdfbox.cos.COSInteger;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.cos.COSStream;
+import org.apache.pdfbox.io.RandomAccessRead;
 import org.apache.pdfbox.cos.COSObjectKey;
 
 /**
@@ -36,24 +36,22 @@ import org.apache.pdfbox.cos.COSObjectKe
  *
  *  @author Justin LeFebvre
  */
-public class PDFXrefStreamParser extends BaseParser
+public class PDFXrefStreamParser
 {
 private final int[] w = new int[3];
 private ObjectNumbers objectNumbers = null;
+private final RandomAccessRead source;
 
 /**
  * Constructor.
  *
  * @param stream The stream to parse.
- * @param document The document for the current parsing.
  *
  * @throws IOException If there is an error initializing the stream.
  */
-public PDFXrefStreamParser(COSStream stream, COSDocument document)
-throws IOException
+public PDFXrefStreamParser(COSStream stream) throws IOException
 {
-super(stream.createView());
-this.document = document;
+source = stream.createView();
 try
 {
 initParserValues(stream);
@@ -109,7 +107,6 @@ public class PDFXrefStreamParser extends
 {
 source.close();
 }
-document = null;
 objectNumbers = null;
 }
 
@@ -122,7 +119,7 @@ public class PDFXrefStreamParser extends
 public void parse(XrefTrailerResolver resolver) throws IOException
 {
 byte[] currLine = new byte[w[0] + w[1] + w[2]];
-while (!isEOF() && objectNumbers.hasNext())
+while (!source.isEOF() && objectNumbers.hasNext())
 {
 readNextValue(currLine);
 // get the current objID

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/XrefParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/XrefParser.java?rev=1916860=1916859=1916860=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/XrefParser.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/XrefParser.java 
Mon Apr  8 10:51:48 2024
@@ -53,19 +53,16 @@ public class XrefParser
 private XrefTrailerResolver xrefTrailerResolver = new 
XrefTrailerResolver();
 
 private final COSParser parser;
-private final COSDocument document;
 private final RandomAccessRead source;
 
 /**
  * Default constructor.
  *
- * @param cosDocument the corresponding COS document of the pdf.
  * @param cosParser the parser to be used to read the pdf.
  * 
  */
-public XrefParser(COSDocument cos

svn commit: r1916859 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

2024-04-08 Thread lehmi
Author: lehmi
Date: Mon Apr  8 10:35:11 2024
New Revision: 1916859

URL: http://svn.apache.org/viewvc?rev=1916859=rev
Log:
PDFBOX-5032: fix javadoc

Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java?rev=1916859=1916858=1916859=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java 
Mon Apr  8 10:35:11 2024
@@ -1234,8 +1234,6 @@ public class COSParser extends BaseParse
  * This will get the security handler. The document must be parsed before 
this is called.
  *
  * @return The security handler of the document that was parsed.
- *
- * @throws IOException If there is an error getting the document.
  */
 protected SecurityHandler getSecurityHandler()
 {




svn commit: r1916856 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser: BaseParser.java BruteForceParser.java COSParser.java XrefParser.java

2024-04-07 Thread lehmi
Author: lehmi
Date: Mon Apr  8 05:54:20 2024
New Revision: 1916856

URL: http://svn.apache.org/viewvc?rev=1916856=rev
Log:
PDFBOX-5032: implement a separate parser for the xref information. 
BruteForceParser no longer extends COSParser

Added:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/XrefParser.java   
(with props)
Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java?rev=1916856=1916855=1916856=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java 
Mon Apr  8 05:54:20 2024
@@ -62,7 +62,7 @@ public abstract class BaseParser
 
 private static final long GENERATION_NUMBER_THRESHOLD = 65535;
 
-static final int MAX_LENGTH_LONG = Long.toString(Long.MAX_VALUE).length();
+private static final int MAX_LENGTH_LONG = 
Long.toString(Long.MAX_VALUE).length();
 
 private static final Charset ALTERNATIVE_CHARSET;
 
@@ -133,13 +133,25 @@ public abstract class BaseParser
 private static final char[] NULL = { 'n', 'u', 'l', 'l' };
 
 /**
+ * ASCII code for Null.
+ */
+private static final byte ASCII_NULL = 0;
+/**
+ * ASCII code for horizontal tab.
+ */
+private static final byte ASCII_TAB = 9;
+/**
  * ASCII code for line feed.
  */
-protected static final byte ASCII_LF = 10;
+private static final byte ASCII_LF = 10;
+/**
+ * ASCII code for form feed.
+ */
+private static final byte ASCII_FF = 12;
 /**
  * ASCII code for carriage return.
  */
-protected static final byte ASCII_CR = 13;
+private static final byte ASCII_CR = 13;
 private static final byte ASCII_ZERO = 48;
 private static final byte ASCII_NINE = 57;
 private static final byte ASCII_SPACE = 32;
@@ -251,8 +263,7 @@ public abstract class BaseParser
 {
 if (document == null)
 {
-throw new IOException("object reference " + key + " at offset " + 
source
-.getPosition()
+throw new IOException("object reference " + key + " at offset " + 
source.getPosition()
 + " in content stream");
 }
 return document.getObjectFromPool(key);
@@ -389,32 +400,35 @@ public abstract class BaseParser
 return true;
 }
 
+/**
+ * Skip the upcoming CRLF or LF which are supposed to follow a stream.
+ * 
+ * @throws IOException
+ */
 protected void skipWhiteSpaces() throws IOException
 {
 //PDF Ref 3.2.7 A stream must be followed by either
 //a CRLF or LF but nothing else.
-
 int whitespace = source.read();
-
 //see brother_scan_cover.pdf, it adds whitespaces
 //after the stream but before the start of the
 //data, so just read those first
-while (ASCII_SPACE == whitespace)
+while (isSpace(whitespace))
 {
 whitespace = source.read();
 }
 
-if (ASCII_CR == whitespace)
+if (isCR(whitespace))
 {
 whitespace = source.read();
-if (ASCII_LF != whitespace)
+if (!isLF(whitespace))
 {
 source.rewind(1);
 //The spec says this is invalid but it happens in the real
 //world so we must support it.
 }
 }
-else if (ASCII_LF != whitespace)
+else if (!isLF(whitespace))
 {
 //we are in an error.
 //but again we will do a lenient parsing and just assume that 
everything
@@ -460,10 +474,10 @@ public abstract class BaseParser
 // 4. COSDictionary ends in the next line: LF + '>'
 // 5. Next line contains another COSObject: CR + '/'
 // 6. COSDictionary ends in the next line: CR + '>'
-if (((nextThreeBytes[0] == ASCII_CR || nextThreeBytes[0] == ASCII_LF)
+if (((isCR(nextThreeBytes[0]) || isLF(nextThreeBytes[0]))
 && (nextThreeBytes[1] == '/' || nextThreeBytes[1] == '>')) //
 || //
-(nextThreeBytes[0] == ASCII_CR && nextThreeBytes[1] == ASCII_LF
+(isCR(nextThreeBytes[0]) && isLF(nextThreeBytes[1])
 && (nextThreeBytes[2] == '/' || nextThreeBytes[2] == 
'>')) //
 )
 {
@@ -781,14 +795,14 @@ public abstract class Bas

svn commit: r1916828 - /pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java

2024-04-06 Thread lehmi
Author: lehmi
Date: Sat Apr  6 08:12:49 2024
New Revision: 1916828

URL: http://svn.apache.org/viewvc?rev=1916828=rev
Log:
PDFBOX-5799: search forward/backwards if the new position is after/before the 
current position to optimize the search for the correct stream

Modified:

pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java

Modified: 
pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java?rev=1916828=1916827=1916828=diff
==
--- 
pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
 (original)
+++ 
pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
 Sat Apr  6 08:12:49 2024
@@ -155,13 +155,16 @@ public class SequenceRandomAccessRead im
 }
 else
 {
-for (int i = 0; i < numberOfReader; i++)
+// search forward/backwards if the new position is after/before 
the current position
+int increment = position < currentPosition ? -1 : 1;
+for (int i = currentIndex; i < numberOfReader && i >= 0;)
 {
 if (position >= startPositions[i] && position <= 
endPositions[i])
 {
 currentIndex = i;
 break;
 }
+i += increment;
 }
 currentPosition = position;
 }




svn commit: r1916827 - /pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java

2024-04-06 Thread lehmi
Author: lehmi
Date: Sat Apr  6 08:12:34 2024
New Revision: 1916827

URL: http://svn.apache.org/viewvc?rev=1916827=rev
Log:
PDFBOX-5799: search forward/backwards if the new position is after/before the 
current position to optimize the search for the correct stream

Modified:

pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java

Modified: 
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java?rev=1916827=1916826=1916827=diff
==
--- 
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
 (original)
+++ 
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/SequenceRandomAccessRead.java
 Sat Apr  6 08:12:34 2024
@@ -155,13 +155,16 @@ public class SequenceRandomAccessRead im
 }
 else
 {
-for (int i = 0; i < numberOfReader; i++)
+// search forward/backwards if the new position is after/before 
the current position
+int increment = position < currentPosition ? -1 : 1;
+for (int i = currentIndex; i < numberOfReader && i >= 0;)
 {
 if (position >= startPositions[i] && position <= 
endPositions[i])
 {
 currentIndex = i;
 break;
 }
+i += increment;
 }
 currentPosition = position;
 }




svn commit: r1916693 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObjectKey.java

2024-03-31 Thread lehmi
Author: lehmi
Date: Sun Mar 31 12:35:18 2024
New Revision: 1916693

URL: http://svn.apache.org/viewvc?rev=1916693=rev
Log:
PDFBOX-5660: simplify

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObjectKey.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObjectKey.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObjectKey.java?rev=1916693=1916692=1916693=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObjectKey.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObjectKey.java
 Sun Mar 31 12:35:18 2024
@@ -41,16 +41,7 @@ public final class COSObjectKey implemen
  */
 public COSObjectKey(long num, int gen)
 {
-if (num < 0)
-{
-throw new IllegalArgumentException("Object number must not be a 
negative value");
-}
-if (gen < 0)
-{
-throw new IllegalArgumentException("Generation number must not be 
a negative value");
-}
-numberAndGeneration = num << NUMBER_OFFSET | (gen & GENERATION_MASK);
-streamIndex = -1;
+this(num, gen, -1);
 }
 
 /**




svn commit: r1916692 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObjectKey.java

2024-03-31 Thread lehmi
Author: lehmi
Date: Sun Mar 31 12:35:02 2024
New Revision: 1916692

URL: http://svn.apache.org/viewvc?rev=1916692=rev
Log:
PDFBOX-5660: simplify

Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObjectKey.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObjectKey.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObjectKey.java?rev=1916692=1916691=1916692=diff
==
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObjectKey.java 
(original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObjectKey.java 
Sun Mar 31 12:35:02 2024
@@ -41,16 +41,7 @@ public final class COSObjectKey implemen
  */
 public COSObjectKey(long num, int gen)
 {
-if (num < 0)
-{
-throw new IllegalArgumentException("Object number must not be a 
negative value");
-}
-if (gen < 0)
-{
-throw new IllegalArgumentException("Generation number must not be 
a negative value");
-}
-numberAndGeneration = num << NUMBER_OFFSET | (gen & GENERATION_MASK);
-streamIndex = -1;
+this(num, gen, -1);
 }
 
 /**




svn commit: r1916691 - in /pdfbox/trunk: debugger/src/main/java/org/apache/pdfbox/debugger/ui/ pdfbox/src/main/java/org/apache/pdfbox/cos/ pdfbox/src/main/java/org/apache/pdfbox/multipdf/ pdfbox/src/m

2024-03-31 Thread lehmi
Author: lehmi
Date: Sun Mar 31 12:26:46 2024
New Revision: 1916691

URL: http://svn.apache.org/viewvc?rev=1916691=rev
Log:
PDFBOX-5793: remove redundant values for an object key

Modified:

pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/PDFTreeCellRenderer.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/WriteDecodedDoc.java

Modified: 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/PDFTreeCellRenderer.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/PDFTreeCellRenderer.java?rev=1916691=1916690=1916691=diff
==
--- 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/PDFTreeCellRenderer.java
 (original)
+++ 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/PDFTreeCellRenderer.java
 Sun Mar 31 12:26:46 2024
@@ -43,6 +43,8 @@ import org.apache.pdfbox.cos.COSString;
  */
 public class PDFTreeCellRenderer extends DefaultTreeCellRenderer
 {
+private static final long serialVersionUID = 6547078597109564198L;
+
 private static final ImageIcon ICON_ARRAY = new 
ImageIcon(getImageUrl("array"));
 private static final ImageIcon ICON_BOOLEAN = new 
ImageIcon(getImageUrl("boolean"));
 private static final ImageIcon ICON_DICT = new 
ImageIcon(getImageUrl("dict"));
@@ -115,8 +117,7 @@ public class PDFTreeCellRenderer extends
 if (item instanceof COSObject)
 {
 COSObject indirect = (COSObject)item;
-stringResult += " [" + indirect.getObjectNumber() + " " +
-   indirect.getGenerationNumber() + " 
R]";
+stringResult += " [" + indirect.getKey() + "]";
 }
 stringResult += toTreePostfix(value);
 

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java?rev=1916691=1916690=1916691=diff
==
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java 
(original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java Sun 
Mar 31 12:26:46 2024
@@ -30,8 +30,6 @@ import org.apache.logging.log4j.LogManag
 public class COSObject extends COSBase implements COSUpdateInfo
 {
 private COSBase baseObject;
-private long objectNumber;
-private int generationNumber;
 private ICOSParser parser;
 private boolean isDereferenced = false;
 private final COSUpdateState updateState;
@@ -90,8 +88,6 @@ public class COSObject extends COSBase i
 {
 updateState = new COSUpdateState(this);
 this.parser = parser;
-objectNumber = key.getNumber();
-generationNumber = key.getGeneration();
 setKey(key);
 }
 
@@ -152,25 +148,7 @@ public class COSObject extends COSBase i
 @Override
 public String toString()
 {
-return "COSObject{" + objectNumber + ", " + generationNumber + "}";
-}
-
-/** 
- * Getter for property objectNumber.
- * @return Value of property objectNumber.
- */
-public long getObjectNumber()
-{
-return objectNumber;
-}
-
-/** 
- * Getter for property generationNumber.
- * @return Value of property generationNumber.
- */
-public int getGenerationNumber()
-{
-return generationNumber;
+   return "COSObject{" + getKey() + "}";
 }
 
 /**

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java?rev=1916691=1916690=1916691=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java
 Sun Mar 31 12:26:46 2024
@@ -249,9 +249,8 @@ public class PDFCloneUtility
 if (actual == parent)
 {
 COSObject cosObj = ((COSObject) value);
-LOG.warn("{} object has a reference to itself: {} {} R",
-parent.getClass().getSimpleName(), 
cosObj.getObjectNumber(),
-cosObj.getGenerationNumber());
+ 

svn commit: r1916690 - in /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox: cos/COSObject.java multipdf/PDFCloneUtility.java pdfparser/COSParser.java

2024-03-31 Thread lehmi
Author: lehmi
Date: Sun Mar 31 12:20:59 2024
New Revision: 1916690

URL: http://svn.apache.org/viewvc?rev=1916690=rev
Log:
PDFBOX-5793: remove redundant values for an object key

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java?rev=1916690=1916689=1916690=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java 
(original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSObject.java 
Sun Mar 31 12:20:59 2024
@@ -30,8 +30,6 @@ import org.apache.commons.logging.LogFac
 public class COSObject extends COSBase implements COSUpdateInfo
 {
 private COSBase baseObject;
-private long objectNumber;
-private int generationNumber;
 private ICOSParser parser;
 private boolean isDereferenced = false;
 private final COSUpdateState updateState;
@@ -90,8 +88,6 @@ public class COSObject extends COSBase i
 {
 updateState = new COSUpdateState(this);
 this.parser = parser;
-objectNumber = key.getNumber();
-generationNumber = key.getGeneration();
 setKey(key);
 }
 
@@ -152,25 +148,33 @@ public class COSObject extends COSBase i
 @Override
 public String toString()
 {
-return "COSObject{" + objectNumber + ", " + generationNumber + "}";
+return "COSObject{" + getKey() + "}";
 }
 
-/** 
+/**
  * Getter for property objectNumber.
+ * 
  * @return Value of property objectNumber.
+ * 
+ * @deprecated will be removed in 4.0.0
  */
+@Deprecated
 public long getObjectNumber()
 {
-return objectNumber;
+return getKey() != null ? getKey().getNumber() : 0;
 }
 
-/** 
+/**
  * Getter for property generationNumber.
+ * 
  * @return Value of property generationNumber.
+ * 
+ * @deprecated will be removed in 4.0.0
  */
+@Deprecated
 public int getGenerationNumber()
 {
-return generationNumber;
+return getKey() != null ? getKey().getGeneration() : 0;
 }
 
 /**

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java?rev=1916690=1916689=1916690=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFCloneUtility.java
 Sun Mar 31 12:20:59 2024
@@ -251,7 +251,7 @@ public class PDFCloneUtility
 {
 COSObject cosObj = ((COSObject) value);
 LOG.warn(parent.getClass().getSimpleName() + " object has a 
reference to itself: "
-+ cosObj.getObjectNumber() + " " + 
cosObj.getGenerationNumber() + " R");
++ cosObj.getKey());
 return true;
 }
 }

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java?rev=1916690=1916689=1916690=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
 Sun Mar 31 12:20:59 2024
@@ -873,8 +873,7 @@ public class COSParser extends BaseParse
 }
 if (COSNull.NULL == length)
 {
-LOG.warn("Length object (" + lengthObj.getObjectNumber() + " "
-+ lengthObj.getGenerationNumber() + ") not found");
+LOG.warn("Length object (" + lengthObj.getKey() + ") not 
found");
 return null;
 }
 if (length instanceof COSNumber)




svn commit: r1916689 - /pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/PDFTreeCellRenderer.java

2024-03-31 Thread lehmi
Author: lehmi
Date: Sun Mar 31 12:18:42 2024
New Revision: 1916689

URL: http://svn.apache.org/viewvc?rev=1916689=rev
Log:
PDFBOX-5793: remove redundant values for an object key

Modified:

pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/PDFTreeCellRenderer.java

Modified: 
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/PDFTreeCellRenderer.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/PDFTreeCellRenderer.java?rev=1916689=1916688=1916689=diff
==
--- 
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/PDFTreeCellRenderer.java
 (original)
+++ 
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/PDFTreeCellRenderer.java
 Sun Mar 31 12:18:42 2024
@@ -43,6 +43,8 @@ import org.apache.pdfbox.cos.COSString;
  */
 public class PDFTreeCellRenderer extends DefaultTreeCellRenderer
 {
+private static final long serialVersionUID = 6547078597109564198L;
+
 private static final ImageIcon ICON_ARRAY = new 
ImageIcon(getImageUrl("array"));
 private static final ImageIcon ICON_BOOLEAN = new 
ImageIcon(getImageUrl("boolean"));
 private static final ImageIcon ICON_DICT = new 
ImageIcon(getImageUrl("dict"));
@@ -115,8 +117,7 @@ public class PDFTreeCellRenderer extends
 if (item instanceof COSObject)
 {
 COSObject indirect = (COSObject)item;
-stringResult += " [" + indirect.getObjectNumber() + " " +
-   indirect.getGenerationNumber() + " 
R]";
+stringResult += " [" + indirect.getKey() + "]";
 }
 stringResult += toTreePostfix(value);
 




svn commit: r1916688 - /pdfbox/branches/3.0/tools/src/main/java/org/apache/pdfbox/tools/WriteDecodedDoc.java

2024-03-31 Thread lehmi
Author: lehmi
Date: Sun Mar 31 12:17:50 2024
New Revision: 1916688

URL: http://svn.apache.org/viewvc?rev=1916688=rev
Log:
PDFBOX-5793: remove redundant values for an object key

Modified:

pdfbox/branches/3.0/tools/src/main/java/org/apache/pdfbox/tools/WriteDecodedDoc.java

Modified: 
pdfbox/branches/3.0/tools/src/main/java/org/apache/pdfbox/tools/WriteDecodedDoc.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/tools/src/main/java/org/apache/pdfbox/tools/WriteDecodedDoc.java?rev=1916688=1916687=1916688=diff
==
--- 
pdfbox/branches/3.0/tools/src/main/java/org/apache/pdfbox/tools/WriteDecodedDoc.java
 (original)
+++ 
pdfbox/branches/3.0/tools/src/main/java/org/apache/pdfbox/tools/WriteDecodedDoc.java
 Sun Mar 31 12:17:50 2024
@@ -116,8 +116,7 @@ public class WriteDecodedDoc implements
 }
 catch (IOException ex)
 {
-SYSERR.println("skip " + cosObject.getObjectNumber() + " "
-+ cosObject.getGenerationNumber() + " obj: " + 
ex.getMessage());
+SYSERR.println("skip " + cosObject.getKey() + " obj: " + 
ex.getMessage());
 }
 }
 




svn commit: r1916687 - in /pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight: action/ActionManagerFactory.java process/CatalogValidationProcess.java process/TrailerValidationProc

2024-03-31 Thread lehmi
Author: lehmi
Date: Sun Mar 31 12:17:18 2024
New Revision: 1916687

URL: http://svn.apache.org/viewvc?rev=1916687=rev
Log:
PDFBOX-5793: remove redundant values for an object key

Modified:

pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/action/ActionManagerFactory.java

pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/process/CatalogValidationProcess.java

pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/process/TrailerValidationProcess.java

Modified: 
pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/action/ActionManagerFactory.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/action/ActionManagerFactory.java?rev=1916687=1916686=1916687=diff
==
--- 
pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/action/ActionManagerFactory.java
 (original)
+++ 
pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/action/ActionManagerFactory.java
 Sun Mar 31 12:17:18 2024
@@ -151,8 +151,7 @@ public class ActionManagerFactory
 if (aDict instanceof COSObject)
 {
 COSObject cosObj = (COSObject) aDict;
-COSObjectKey cok = new COSObjectKey(cosObj.getObjectNumber(),
-cosObj.getGenerationNumber());
+COSObjectKey cok = cosObj.getKey();
 COSDictionary indirectDict = (COSDictionary) 
cosObj.getObject();
 if (!alreadyCreated.containsKey(cok))
 {

Modified: 
pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/process/CatalogValidationProcess.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/process/CatalogValidationProcess.java?rev=1916687=1916686=1916687=diff
==
--- 
pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/process/CatalogValidationProcess.java
 (original)
+++ 
pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/process/CatalogValidationProcess.java
 Sun Mar 31 12:17:18 2024
@@ -286,8 +286,7 @@ public class CatalogValidationProcess ex
 }
 
 COSObject cosObj = (COSObject) destOutputProfile;
-COSObjectKey key = new COSObjectKey(cosObj.getObjectNumber(),
-cosObj.getGenerationNumber());
+COSObjectKey key = cosObj.getKey();
 if (mapDestOutputProfile.containsKey(key))
 {
 // the profile is already checked. continue

Modified: 
pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/process/TrailerValidationProcess.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/process/TrailerValidationProcess.java?rev=1916687=1916686=1916687=diff
==
--- 
pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/process/TrailerValidationProcess.java
 (original)
+++ 
pdfbox/branches/3.0/preflight/src/main/java/org/apache/pdfbox/preflight/process/TrailerValidationProcess.java
 Sun Mar 31 12:17:18 2024
@@ -126,8 +126,7 @@ public class TrailerValidationProcess ex
 // Search First and Last trailers according to offset position.
 for (COSObject co : xrefs)
 {
-long offset = cosDocument.getXrefTable()
-.get(new COSObjectKey(co.getObjectNumber(), 
co.getGenerationNumber()));
+long offset = cosDocument.getXrefTable().get(co.getKey());
 if (offset < min)
 {
 min = offset;




svn commit: r1916638 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java

2024-03-29 Thread lehmi
Author: lehmi
Date: Fri Mar 29 16:41:41 2024
New Revision: 1916638

URL: http://svn.apache.org/viewvc?rev=1916638=rev
Log:
PDFBOX-5786: transfer xref-table from a brute force search to the COSDocument 
to avoid double usage of COSObjectkeys

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java?rev=1916638=1916637=1916638=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
 Fri Mar 29 16:41:41 2024
@@ -828,6 +828,16 @@ public class BruteForceParser extends CO
 trailerResolver.nextXrefObj(0, XRefType.TABLE);
 getBFCOSObjectOffsets().forEach(trailerResolver::setXRef);
 trailerResolver.setStartxref(0);
+// transfer xref-table to document
+document.getXrefTable().clear();
+document.addXRefTable(trailerResolver.getXrefTable());
+// remember the highest XRef object number to avoid it being reused in 
incremental saving
+Long maxValue = document.getXrefTable().keySet().stream() //
+.map(COSObjectKey::getNumber) //
+.reduce(Long::max) //
+.orElse(0L);
+document.setHighestXRefObjectNumber(maxValue);
+
 COSDictionary trailer = trailerResolver.getTrailer();
 document.setTrailer(trailer);
 boolean searchForObjStreamsDone = false;




svn commit: r1916637 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java

2024-03-29 Thread lehmi
Author: lehmi
Date: Fri Mar 29 16:37:26 2024
New Revision: 1916637

URL: http://svn.apache.org/viewvc?rev=1916637=rev
Log:
PDFBOX-5786: simplify

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java?rev=1916637=1916636=1916637=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
 Fri Mar 29 16:37:26 2024
@@ -21,7 +21,6 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Optional;
 import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
@@ -833,10 +832,11 @@ public class BruteForceParser extends CO
 document.getXrefTable().clear();
 document.addXRefTable(trailerResolver.getXrefTable());
 // remember the highest XRef object number to avoid it being reused in 
incremental saving
-Optional maxValue = document.getXrefTable().keySet().stream() //
+Long maxValue = document.getXrefTable().keySet().stream() //
 .map(COSObjectKey::getNumber) //
-.reduce(Long::max);
-document.setHighestXRefObjectNumber(maxValue.isPresent() ? 
maxValue.get() : 0);
+.reduce(Long::max) //
+.orElse(0L);
+document.setHighestXRefObjectNumber(maxValue);
 
 COSDictionary trailer = trailerResolver.getTrailer();
 document.setTrailer(trailer);




svn commit: r1916636 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

2024-03-29 Thread lehmi
Author: lehmi
Date: Fri Mar 29 16:35:22 2024
New Revision: 1916636

URL: http://svn.apache.org/viewvc?rev=1916636=rev
Log:
PDFBOX-5786: avoid NPE when a referenced object can't be dereferenced due to a 
malformed pdf as proposed by Tilman Hausherr

Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1916636=1916635=1916636=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java 
Fri Mar 29 16:35:22 2024
@@ -1075,6 +1075,12 @@ public class COSWriter implements ICOSVi
 actual = ((COSObject) obj).getObject();
 if (actual == null)
 {
+// the referenced object isn't there due to a malformed pdf
+// check if a key is present, otherwise create a new one
+if (key == null)
+{
+key = new COSObjectKey(++number, 0);
+}
 objectKeys.put(obj, key);
 return key;
 }




svn commit: r1916635 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

2024-03-29 Thread lehmi
Author: lehmi
Date: Fri Mar 29 16:33:50 2024
New Revision: 1916635

URL: http://svn.apache.org/viewvc?rev=1916635=rev
Log:
PDFBOX-5786: avoid NPE when a referenced object can't be dereferenced due to a 
malformed pdf as proposed by Tilman Hausherr

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1916635=1916634=1916635=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
 Fri Mar 29 16:33:50 2024
@@ -1075,6 +1075,12 @@ public class COSWriter implements ICOSVi
 actual = ((COSObject) obj).getObject();
 if (actual == null)
 {
+// the referenced object isn't there due to a malformed pdf
+// check if a key is present, otherwise create a new one
+if (key == null)
+{
+key = new COSObjectKey(++number, 0);
+}
 objectKeys.put(obj, key);
 return key;
 }




svn commit: r1916634 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java

2024-03-29 Thread lehmi
Author: lehmi
Date: Fri Mar 29 16:32:26 2024
New Revision: 1916634

URL: http://svn.apache.org/viewvc?rev=1916634=rev
Log:
PDFBOX-5786: transfer xref-table from a brute force search to the COSDocument 
to avoid double usage of COSObjectkeys

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java?rev=1916634=1916633=1916634=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
 Fri Mar 29 16:32:26 2024
@@ -21,6 +21,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
@@ -828,6 +829,15 @@ public class BruteForceParser extends CO
 trailerResolver.nextXrefObj(0, XRefType.TABLE);
 getBFCOSObjectOffsets().forEach(trailerResolver::setXRef);
 trailerResolver.setStartxref(0);
+// transfer xref-table to document
+document.getXrefTable().clear();
+document.addXRefTable(trailerResolver.getXrefTable());
+// remember the highest XRef object number to avoid it being reused in 
incremental saving
+Optional maxValue = document.getXrefTable().keySet().stream() //
+.map(COSObjectKey::getNumber) //
+.reduce(Long::max);
+document.setHighestXRefObjectNumber(maxValue.isPresent() ? 
maxValue.get() : 0);
+
 COSDictionary trailer = trailerResolver.getTrailer();
 document.setTrailer(trailer);
 boolean searchForObjStreamsDone = false;




svn commit: r1916527 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java

2024-03-25 Thread lehmi
Author: lehmi
Date: Mon Mar 25 06:45:16 2024
New Revision: 1916527

URL: http://svn.apache.org/viewvc?rev=1916527=rev
Log:
PDFBOX-5790: don't use a predefined CMap if a ToUnicode CMap is present

Modified:

pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java?rev=1916527=1916526=1916527=diff
==
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
 Mon Mar 25 06:45:16 2024
@@ -492,6 +492,12 @@ public class PDType0Font extends PDFont
 {
 return unicode;
 }
+// Use identity mapping if the given ToUnicode CMap doesn't provide 
any valid mapping
+// a predefined map shall only be used if there isn't any ToUnicode 
CMap
+if (getToUnicodeCMap() != null)
+{
+return Character.toString((char) code);
+}
 
 if ((isCMapPredefined || isDescendantCJK) && cMapUCS2 != null)
 {




svn commit: r1916526 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java

2024-03-25 Thread lehmi
Author: lehmi
Date: Mon Mar 25 06:44:52 2024
New Revision: 1916526

URL: http://svn.apache.org/viewvc?rev=1916526=rev
Log:
PDFBOX-5790: don't use a predefined CMap if a ToUnicode CMap is present

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java?rev=1916526=1916525=1916526=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
 Mon Mar 25 06:44:52 2024
@@ -542,6 +542,13 @@ public class PDType0Font extends PDFont
 return unicode;
 }
 
+// Use identity mapping if the given ToUnicode CMap doesn't provide 
any valid mapping
+// a predefined map shall only be used if there isn't any ToUnicode 
CMap
+if (getToUnicodeCMap() != null)
+{
+return Character.toString((char) code);
+}
+
 if ((isCMapPredefined || isDescendantCJK) && cMapUCS2 != null)
 {
 // if the font is composite and uses a predefined cmap (excluding 
Identity-H/V) then




svn commit: r1916525 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java

2024-03-25 Thread lehmi
Author: lehmi
Date: Mon Mar 25 06:44:32 2024
New Revision: 1916525

URL: http://svn.apache.org/viewvc?rev=1916525=rev
Log:
PDFBOX-5790: don't use a predefined CMap if a ToUnicode CMap is present

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java?rev=1916525=1916524=1916525=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
 Mon Mar 25 06:44:32 2024
@@ -541,6 +541,12 @@ public class PDType0Font extends PDFont
 {
 return unicode;
 }
+// Use identity mapping if the given ToUnicode CMap doesn't provide 
any valid mapping
+// a predefined map shall only be used if there isn't any ToUnicode 
CMap
+if (getToUnicodeCMap() != null)
+{
+return Character.toString(code);
+}
 
 if ((isCMapPredefined || isDescendantCJK) && cMapUCS2 != null)
 {




svn commit: r1916516 - /pdfbox/branches/2.0/pom.xml

2024-03-24 Thread lehmi
Author: lehmi
Date: Sun Mar 24 18:20:19 2024
New Revision: 1916516

URL: http://svn.apache.org/viewvc?rev=1916516=rev
Log:
reactivate dependency check as the issue with the NVD site seems to be resolved

Modified:
pdfbox/branches/2.0/pom.xml

Modified: pdfbox/branches/2.0/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pom.xml?rev=1916516=1916515=1916516=diff
==
--- pdfbox/branches/2.0/pom.xml (original)
+++ pdfbox/branches/2.0/pom.xml Sun Mar 24 18:20:19 2024
@@ -319,8 +319,6 @@
   dependency-check-maven
   9.0.10
   
-  
-  true
   0
   
   true




(pdfbox-docs) branch asf-site updated: Site checkin for project Apache PDFBox Website

2024-03-24 Thread lehmi
This is an automated email from the ASF dual-hosted git repository.

lehmi pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/pdfbox-docs.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new c5cbeece Site checkin for project Apache PDFBox Website
c5cbeece is described below

commit c5cbeeceee60f21234ef9aaf79551f0ca257a643
Author: Andreas Lehmkühler 
AuthorDate: Sun Mar 24 19:11:21 2024 +0100

Site checkin for project Apache PDFBox Website
---
 content/2.0/getting-started.html |  2 +-
 content/3.0/getting-started.html |  2 +-
 content/blog/index.html  |  9 --
 content/building.html|  4 +--
 content/codingconventions.html   |  4 +--
 content/doap_PDFBox.rdf  |  7 
 content/download.html| 70 
 content/errors/403.html  |  4 +--
 content/errors/404.html  |  4 +--
 content/ideas.html   |  4 +--
 content/index.html   | 24 +++---
 content/mailinglists.html|  4 +--
 content/references.html  |  4 +--
 content/security.html|  4 +--
 content/siteupdate.html  |  4 +--
 content/support.html |  4 +--
 content/team.html|  4 +--
 17 files changed, 85 insertions(+), 73 deletions(-)

diff --git a/content/2.0/getting-started.html b/content/2.0/getting-started.html
index 482c6d4b..7bacae50 100644
--- a/content/2.0/getting-started.html
+++ b/content/2.0/getting-started.html
@@ -129,7 +129,7 @@
   Getting Started
 Maven
 To use the latest release you'll need to add the following dependency:
-dependency>  groupId>org.apache.pdfbox/groupIddependency>  groupId>org.apache.pdfbox/groupIdRendering Performance
 Since PDFBox 2.0.4
 PDFBox 2.0.4 introduced a new command line setting
diff --git a/content/3.0/getting-started.html b/content/3.0/getting-started.html
index 5594e1b3..ecf95a82 100644
--- a/content/3.0/getting-started.html
+++ b/content/3.0/getting-started.html
@@ -116,7 +116,7 @@
   Getting Started
 Maven
 To use the latest release you'll need to add the following dependency:
-dependency>  groupId>org.apache.pdfbox/groupIddependency>  groupId>org.apache.pdfbox/groupIdRendering Performance
 Since PDFBox 2.0.4
 PDFBox 2.0.4 introduced a new command line setting
diff --git a/content/blog/index.html b/content/blog/index.html
index 441177d2..5301925a 100644
--- a/content/blog/index.html
+++ b/content/blog/index.html
@@ -111,7 +111,7 @@
 Dependencies
 Command-Line 
Tools
 FAQ
-https://javadoc.io/doc/org.apache.pdfbox/pdfbox/3.0.0/index.html;>API 
Docsvia javadoc.io
+https://javadoc.io/doc/org.apache.pdfbox/pdfbox/3.0.2/index.html;>API 
Docsvia javadoc.io
 
 
 
@@ -129,7 +129,7 @@
 
 Command-Line 
Tools
 FAQ
-https://javadoc.io/doc/org.apache.pdfbox/pdfbox/2.0.29/index.html;>API 
Docsvia javadoc.io
+https://javadoc.io/doc/org.apache.pdfbox/pdfbox/2.0.31/index.html;>API 
Docsvia javadoc.io
 
 
 Development
@@ -155,6 +155,11 @@
 
 
 Blog
+Apache PDFBox 2.0.31 released2024-03-24
+The Apache PDFBox community is pleased to announce the release of
+Apache PDFBox version 2.0.31. It is available for download at:
+https://pdfbox.apache.org/download.html;>https://pdfbox.apache.org/download.html
+See the https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310760version=12353787;>full
 release notes for details about this release.
 Apache PDFBox 3.0.2 released2024-03-14
 The Apache PDFBox community is pleased to announce the release of
 Apache PDFBox version 3.0.2. It is available for download at:
diff --git a/content/building.html b/content/building.html
index 1727e896..d8a467d9 100644
--- a/content/building.html
+++ b/content/building.html
@@ -111,7 +111,7 @@
 Dependencies
 Command-Line 
Tools
 FAQ
-https://javadoc.io/doc/org.apache.pdfbox/pdfbox/3.0.0/index.html;>API 
Docsvia javadoc.io
+https://javadoc.io/doc/org.apache.pdfbox/pdfbox/3.0.2/index.html;>API 
Docsvia javadoc.io
 
 
 
@@ -129,7 +129,7 @@
 
 Command-Line 
Tools
 FAQ
-https://javadoc.io/doc/org.apache.pdfbox/pdfbox/2.0.29/index.html;>API 
Docsvia javadoc.io
+htt

(pdfbox-docs) branch master updated: website update due to new releases

2024-03-24 Thread lehmi
This is an automated email from the ASF dual-hosted git repository.

lehmi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pdfbox-docs.git


The following commit(s) were added to refs/heads/master by this push:
 new 28f73145 website update due to new releases
28f73145 is described below

commit 28f731455170c3132b512d9f7114bfd0e7481773
Author: Andreas Lehmkühler 
AuthorDate: Sun Mar 24 19:10:39 2024 +0100

website update due to new releases
---
 content/2.0/getting-started.md |  2 +-
 content/3.0/getting-started.md |  2 +-
 content/_layouts/default.html  |  4 +-
 .../2024-03-24-pdfbox.2.0.31.md}   | 35 +++-
 content/doap_PDFBox.rdf|  7 +++
 content/download.html  | 66 +++---
 6 files changed, 52 insertions(+), 64 deletions(-)

diff --git a/content/2.0/getting-started.md b/content/2.0/getting-started.md
index 9496b3f9..638e7118 100644
--- a/content/2.0/getting-started.md
+++ b/content/2.0/getting-started.md
@@ -32,7 +32,7 @@ To use the latest release you'll need to add the following 
dependency:
 
   org.apache.pdfbox
   pdfbox
-  2.0.29
+  2.0.31
 
 ```
 
diff --git a/content/3.0/getting-started.md b/content/3.0/getting-started.md
index ff589381..8e933403 100644
--- a/content/3.0/getting-started.md
+++ b/content/3.0/getting-started.md
@@ -32,7 +32,7 @@ To use the latest release you'll need to add the following 
dependency:
 
   org.apache.pdfbox
   pdfbox
-  3.0.0
+  3.0.2
 
 ```
 
diff --git a/content/_layouts/default.html b/content/_layouts/default.html
index d114c7a2..d6b61ef0 100644
--- a/content/_layouts/default.html
+++ b/content/_layouts/default.html
@@ -57,7 +57,7 @@
 Dependencies
 Command-Line 
Tools
 FAQ
-https://javadoc.io/doc/org.apache.pdfbox/pdfbox/3.0.0/index.html;>API 
Docsvia javadoc.io
+https://javadoc.io/doc/org.apache.pdfbox/pdfbox/3.0.2/index.html;>API 
Docsvia javadoc.io
 
 
 
@@ -75,7 +75,7 @@
 
 Command-Line 
Tools
 FAQ
-https://javadoc.io/doc/org.apache.pdfbox/pdfbox/2.0.29/index.html;>API 
Docsvia javadoc.io
+https://javadoc.io/doc/org.apache.pdfbox/pdfbox/2.0.31/index.html;>API 
Docsvia javadoc.io
 
 
 Development
diff --git a/content/3.0/getting-started.md 
b/content/_posts/2024-03-24-pdfbox.2.0.31.md
similarity index 58%
copy from content/3.0/getting-started.md
copy to content/_posts/2024-03-24-pdfbox.2.0.31.md
index ff589381..058763f7 100644
--- a/content/3.0/getting-started.md
+++ b/content/_posts/2024-03-24-pdfbox.2.0.31.md
@@ -16,34 +16,15 @@ license: Licensed to the Apache Software Foundation (ASF) 
under one
  specific language governing permissions and limitations
  under the License.
 
-layout:  documentation
-title:   Getting Started
-eleventyNavigation:
-  order: 1
+layout:  default
+title:   Apache PDFBox 2.0.31 released
+date: 2024-03-24 00:00:00 +00:00
+categories: [release, news]
 ---
 
-# Getting Started
+The Apache PDFBox community is pleased to announce the release of
+Apache PDFBox version 2.0.31. It is available for download at:
 
-## Maven
+[https://pdfbox.apache.org/download.html](https://pdfbox.apache.org/download.html)
 
-To use the latest release you'll need to add the following dependency:
-
-```xml
-
-  org.apache.pdfbox
-  pdfbox
-  3.0.0
-
-```
-
-## Rendering Performance ##
-
-Since PDFBox 2.0.4
-
-PDFBox 2.0.4 introduced a new command line setting
-
- ```
- -Dorg.apache.pdfbox.rendering.UsePureJavaCMYKConversion=true
- ```
-
-which may improve the performance of rendering PDFs on some systems especially 
if there are a lot of images on a page.
+See the [full release 
notes](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310760=12353787)
 for details about this release.
diff --git a/content/doap_PDFBox.rdf b/content/doap_PDFBox.rdf
index d32f19dc..a9d1d22d 100644
--- a/content/doap_PDFBox.rdf
+++ b/content/doap_PDFBox.rdf
@@ -34,6 +34,13 @@
 Java
 https://projects.apache.org/category/content; />
 https://projects.apache.org/category/library; />
+
+  
+Apache PDFBox
+2024-03-24
+2.0.31
+  
+
 
   
 Apache PDFBox
diff --git a/content/download.html b/content/download.html
index 2f36e56b..6f36a303 100644
--- a/content/download.html
+++ b/content/download.html
@@ -28,7 +28,7 @@ title:   Download
 
 
 Feature release for PDFBox 3.0.2  https://www.apache.org/dist/pdfbox/3.0.2/RELEASE-NOTES.txt;>3.0.2 
(requires Java 8)
-Feature r

svn commit: r68095 - /release/pdfbox/2.0.30/

2024-03-24 Thread lehmi
Author: lehmi
Date: Sun Mar 24 18:05:08 2024
New Revision: 68095

Log:
delete old 2.0.30 release

Removed:
release/pdfbox/2.0.30/



svn commit: r68094 - /dev/pdfbox/2.0.31/ /release/pdfbox/2.0.31/

2024-03-24 Thread lehmi
Author: lehmi
Date: Sun Mar 24 18:04:05 2024
New Revision: 68094

Log:
release PDFBox 2.0.31

Added:
release/pdfbox/2.0.31/
  - copied from r68093, dev/pdfbox/2.0.31/
Removed:
dev/pdfbox/2.0.31/



svn commit: r1916512 - /pdfbox/branches/3.0/release/

2024-03-24 Thread lehmi
Author: lehmi
Date: Sun Mar 24 16:37:03 2024
New Revision: 1916512

URL: http://svn.apache.org/viewvc?rev=1916512=rev
Log:
PDFBOX-5789: remove release subproject, merge profile into main pom

Removed:
pdfbox/branches/3.0/release/



svn commit: r1916511 - in /pdfbox/branches/3.0: assembly.xml pom.xml release/assembly.xml

2024-03-24 Thread lehmi
Author: lehmi
Date: Sun Mar 24 16:36:08 2024
New Revision: 1916511

URL: http://svn.apache.org/viewvc?rev=1916511=rev
Log:
PDFBOX-5789: remove release subproject, merge profile into main pom

Added:
pdfbox/branches/3.0/assembly.xml   (with props)
Removed:
pdfbox/branches/3.0/release/assembly.xml
Modified:
pdfbox/branches/3.0/pom.xml

Added: pdfbox/branches/3.0/assembly.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/assembly.xml?rev=1916511=auto
==
--- pdfbox/branches/3.0/assembly.xml (added)
+++ pdfbox/branches/3.0/assembly.xml Sun Mar 24 16:36:08 2024
@@ -0,0 +1,32 @@
+
+
+  src
+  
+zip
+  
+  
+
+  ${project.basedir}
+  
+  
+**/target/**
+**/.*/**
+  
+
+  
+

Propchange: pdfbox/branches/3.0/assembly.xml
--
svn:eol-style = native

Propchange: pdfbox/branches/3.0/assembly.xml
--
svn:mime-type = text/xml

Modified: pdfbox/branches/3.0/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pom.xml?rev=1916511=1916510=1916511=diff
==
--- pdfbox/branches/3.0/pom.xml (original)
+++ pdfbox/branches/3.0/pom.xml Sun Mar 24 16:36:08 2024
@@ -83,7 +83,6 @@
 app
 debugger-app
 examples
-release
   
 
   
@@ -350,17 +349,113 @@
 
 
   apache-release
+  
+  
+  
+  
   
 
   
 maven-assembly-plugin
 
   
+
+  single
+
+package
+
+  pdfbox-${project.version}
+  false
+  
+assembly.xml
+  
+
+  
+
+  
+  
+maven-antrun-plugin
+3.1.0
+
+  
+
+  run
+
+deploy
 
-   true
+  
+
+
+  
+
+
+
+
+
+
+
+
+
+
+
+
+  
+
+
+  
+
+
+  
+
+
+
+From: ${username}@apache.org
+To: d...@pdfbox.apache.org
+Subject: [VOTE] Release Apache PDFBox ${project.version}
+
+A candidate for the PDFBox ${project.version} release is available at:
+
+https://dist.apache.org/repos/dist/dev/pdfbox/${project.version}/
+
+The release candidate is a zip archive of the sources in:
+
+https://svn.apache.org/repos/asf/pdfbox/tags/${project.version}/
+
+The SHA-512 checksum of the archive is ${checksum}.
+
+Please vote on releasing this package as Apache PDFBox ${project.version}.
+The vote is open for the next 72 hours and passes if a majority of at
+least three +1 PDFBox PMC votes are cast.
+
+[ ] +1 Release this package as Apache PDFBox ${project.version}
+[ ] -1 Do not release this package because...${line.separator}
+
+
+
+The release candidate has been prepared in:
+
+${basedir}/target/${project.version}
+
+Please commit it to
+
+https://dist.apache.org/repos/dist/dev/pdfbox/${project.version}/
+
+A release vote template has been generated for you:
+
+file://${basedir}/target/vote.txt
+
+
+  
 
   
 
+
+  
+ org.apache.ant
+ ant-nodeps
+ 1.8.1
+   
+
   
 
   




svn commit: r1916510 - /pdfbox/branches/2.0/release/

2024-03-24 Thread lehmi
Author: lehmi
Date: Sun Mar 24 16:29:44 2024
New Revision: 1916510

URL: http://svn.apache.org/viewvc?rev=1916510=rev
Log:
PDFBOX-5789: remove release subproject, merge profile into main pom

Removed:
pdfbox/branches/2.0/release/



svn commit: r1916509 - in /pdfbox/branches/2.0: assembly.xml pom.xml

2024-03-24 Thread lehmi
Author: lehmi
Date: Sun Mar 24 16:27:20 2024
New Revision: 1916509

URL: http://svn.apache.org/viewvc?rev=1916509=rev
Log:
PDFBOX-5789: remove release subproject, merge profile into main pom

Added:
pdfbox/branches/2.0/assembly.xml   (with props)
Modified:
pdfbox/branches/2.0/pom.xml

Added: pdfbox/branches/2.0/assembly.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/assembly.xml?rev=1916509=auto
==
--- pdfbox/branches/2.0/assembly.xml (added)
+++ pdfbox/branches/2.0/assembly.xml Sun Mar 24 16:27:20 2024
@@ -0,0 +1,32 @@
+
+
+  src
+  
+zip
+  
+  
+
+  ${project.basedir}
+  
+  
+**/target/**
+**/.*/**
+  
+
+  
+

Propchange: pdfbox/branches/2.0/assembly.xml
--
svn:eol-style = native

Propchange: pdfbox/branches/2.0/assembly.xml
--
svn:mime-type = text/xml

Modified: pdfbox/branches/2.0/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pom.xml?rev=1916509=1916508=1916509=diff
==
--- pdfbox/branches/2.0/pom.xml (original)
+++ pdfbox/branches/2.0/pom.xml Sun Mar 24 16:27:20 2024
@@ -79,7 +79,6 @@
 app
 debugger-app
 examples
-release
   
 
   
@@ -340,19 +339,114 @@
   
   
   
-  
+
   apache-release
+  
+  
+  
+  
   
 
   
 maven-assembly-plugin
 
   
+
+  single
+
+package
+
+  pdfbox-${project.version}
+  false
+  
+assembly.xml
+  
+
+  
+
+  
+  
+maven-antrun-plugin
+3.1.0
+
+  
+
+  run
+
+install
 
-   true
+  
+
+
+  
+
+
+
+
+
+
+
+
+
+
+
+  
+
+
+  
+
+
+  
+
+
+
+From: ${username}@apache.org
+To: d...@pdfbox.apache.org
+Subject: [VOTE] Release Apache PDFBox ${project.version}
+
+A candidate for the PDFBox ${project.version} release is available at:
+
+https://dist.apache.org/repos/dist/dev/pdfbox/${project.version}/
+
+The release candidate is a zip archive of the sources in:
+
+https://svn.apache.org/repos/asf/pdfbox/tags/${project.version}/
+
+The SHA-512 checksum of the archive is ${checksum}.
+
+Please vote on releasing this package as Apache PDFBox ${project.version}.
+The vote is open for the next 72 hours and passes if a majority of at
+least three +1 PDFBox PMC votes are cast.
+
+[ ] +1 Release this package as Apache PDFBox ${project.version}
+[ ] -1 Do not release this package because...${line.separator}
+
+
+
+The release candidate has been prepared in:
+
+${basedir}/target/${project.version}
+
+Please commit it to
+
+https://dist.apache.org/repos/dist/dev/pdfbox/${project.version}/
+
+A release vote template has been generated for you:
+
+file://${basedir}/target/vote.txt
+
+
+  
 
   
 
+
+  
+ org.apache.ant
+ ant-nodeps
+ 1.8.1
+   
+
   
 
   




svn commit: r1916508 - /pdfbox/trunk/release/

2024-03-24 Thread lehmi
Author: lehmi
Date: Sun Mar 24 16:05:24 2024
New Revision: 1916508

URL: http://svn.apache.org/viewvc?rev=1916508=rev
Log:
PDFBOX-5789: remove release subproject, merge profile into main pom

Removed:
pdfbox/trunk/release/



svn commit: r1916507 - /pdfbox/trunk/pom.xml

2024-03-24 Thread lehmi
Author: lehmi
Date: Sun Mar 24 16:04:52 2024
New Revision: 1916507

URL: http://svn.apache.org/viewvc?rev=1916507=rev
Log:
PDFBOX-5789: remove release subproject, merge profile into main pom

Modified:
pdfbox/trunk/pom.xml

Modified: pdfbox/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pom.xml?rev=1916507=1916506=1916507=diff
==
--- pdfbox/trunk/pom.xml (original)
+++ pdfbox/trunk/pom.xml Sun Mar 24 16:04:52 2024
@@ -79,7 +79,6 @@
 app
 debugger-app
 examples
-release
   
 
   
@@ -91,7 +90,7 @@
 3.11.0
 
 
-
+  
 
   
 
@@ -235,18 +234,112 @@
   
 
   apache-release
+  
+  
+  
+  
   
 
   
 maven-assembly-plugin
 
   
+
+  single
+
+package
 
-   true
+  pdfbox-${project.version}
+  false
+  
+assembly.xml
+  
 
   
 
   
+  
+maven-antrun-plugin
+3.1.0
+
+  
+
+  run
+
+deploy
+
+  
+
+
+  
+
+
+
+
+
+
+
+
+
+
+  
+
+
+  
+
+
+  
+
+
+
+From: ${username}@apache.org
+To: d...@pdfbox.apache.org
+Subject: [VOTE] Release Apache PDFBox ${project.version}
+
+A candidate for the PDFBox ${project.version} release is available at:
+
+https://dist.apache.org/repos/dist/dev/pdfbox/${project.version}/
+
+The release candidate is a zip archive of the sources in:
+
+https://svn.apache.org/repos/asf/pdfbox/tags/${project.version}/
+
+The SHA-512 checksum of the archive is ${checksum}.
+
+Please vote on releasing this package as Apache PDFBox ${project.version}.
+The vote is open for the next 72 hours and passes if a majority of at
+least three +1 PDFBox PMC votes are cast.
+
+[ ] +1 Release this package as Apache PDFBox ${project.version}
+[ ] -1 Do not release this package because...${line.separator}
+
+
+
+The release candidate has been prepared in:
+
+${basedir}/target/${project.version}
+
+Please commit it to
+
+https://dist.apache.org/repos/dist/dev/pdfbox/${project.version}/
+
+A release vote template has been generated for you:
+
+file://${basedir}/target/vote.txt
+
+
+  
+
+  
+
+
+  
+ org.apache.ant
+ ant-nodeps
+ 1.8.1
+   
+
+  
 
   
 




svn commit: r68048 - /dev/pdfbox/2.0.31/

2024-03-21 Thread lehmi
Author: lehmi
Date: Thu Mar 21 17:50:37 2024
New Revision: 68048

Log:
provide 2.0.31 release candidate

Added:
dev/pdfbox/2.0.31/
dev/pdfbox/2.0.31/RELEASE-NOTES.txt   (with props)
dev/pdfbox/2.0.31/debugger-app-2.0.31.jar   (with props)
dev/pdfbox/2.0.31/debugger-app-2.0.31.jar.asc   (with props)
dev/pdfbox/2.0.31/debugger-app-2.0.31.jar.sha512
dev/pdfbox/2.0.31/fontbox-2.0.31.jar   (with props)
dev/pdfbox/2.0.31/fontbox-2.0.31.jar.asc   (with props)
dev/pdfbox/2.0.31/fontbox-2.0.31.jar.sha512
dev/pdfbox/2.0.31/pdfbox-2.0.31-src.zip   (with props)
dev/pdfbox/2.0.31/pdfbox-2.0.31-src.zip.asc   (with props)
dev/pdfbox/2.0.31/pdfbox-2.0.31-src.zip.sha512
dev/pdfbox/2.0.31/pdfbox-2.0.31.jar   (with props)
dev/pdfbox/2.0.31/pdfbox-2.0.31.jar.asc   (with props)
dev/pdfbox/2.0.31/pdfbox-2.0.31.jar.sha512
dev/pdfbox/2.0.31/pdfbox-app-2.0.31.jar   (with props)
dev/pdfbox/2.0.31/pdfbox-app-2.0.31.jar.asc   (with props)
dev/pdfbox/2.0.31/pdfbox-app-2.0.31.jar.sha512
dev/pdfbox/2.0.31/pdfbox-debugger-2.0.31.jar   (with props)
dev/pdfbox/2.0.31/pdfbox-debugger-2.0.31.jar.asc   (with props)
dev/pdfbox/2.0.31/pdfbox-debugger-2.0.31.jar.sha512
dev/pdfbox/2.0.31/pdfbox-tools-2.0.31.jar   (with props)
dev/pdfbox/2.0.31/pdfbox-tools-2.0.31.jar.asc   (with props)
dev/pdfbox/2.0.31/pdfbox-tools-2.0.31.jar.sha512
dev/pdfbox/2.0.31/preflight-2.0.31.jar   (with props)
dev/pdfbox/2.0.31/preflight-2.0.31.jar.asc   (with props)
dev/pdfbox/2.0.31/preflight-2.0.31.jar.sha512
dev/pdfbox/2.0.31/preflight-app-2.0.31.jar   (with props)
dev/pdfbox/2.0.31/preflight-app-2.0.31.jar.asc   (with props)
dev/pdfbox/2.0.31/preflight-app-2.0.31.jar.sha512
dev/pdfbox/2.0.31/xmpbox-2.0.31.jar   (with props)
dev/pdfbox/2.0.31/xmpbox-2.0.31.jar.asc   (with props)
dev/pdfbox/2.0.31/xmpbox-2.0.31.jar.sha512

Added: dev/pdfbox/2.0.31/RELEASE-NOTES.txt
==
--- dev/pdfbox/2.0.31/RELEASE-NOTES.txt (added)
+++ dev/pdfbox/2.0.31/RELEASE-NOTES.txt Thu Mar 21 17:50:37 2024
@@ -0,0 +1,90 @@
+Release Notes -- Apache PDFBox -- Version 2.0.31
+
+Introduction
+
+
+The Apache PDFBox library is an open source Java tool for working with PDF 
documents.
+
+This is an incremental bugfix release based on the earlier 2.0.30 release. It 
contains
+a couple of fixes and small improvements.
+
+For more details on these changes and all the other fixes and improvements
+included in this release, please refer to the following issues on the
+PDFBox issue tracker at https://issues.apache.org/jira/browse/PDFBOX.
+
+Bug
+
+[PDFBOX-2725] - [PATCH] Split pdf lose accessibility tags
+[PDFBOX-5375] - Allow creating of PDFXObjectImage without accessing to the 
image stream
+[PDFBOX-5713] - PfbParser fails to parse PFB font with multiple binary records.
+[PDFBOX-5715] - Lines vanish when printing on MacOS
+[PDFBOX-5718] - java.lang.IllegalArgumentException: Provided dictionary is not 
of type 'COSName{OCG}'
+[PDFBOX-5721] - The embedded font DroidSansFallbackFull reports an error when 
parsing, and finally uses lastResortFont, resulting in garbled fonts.
+[PDFBOX-5723] - COSName caches already cached hashCode
+[PDFBOX-5727] - Font operation takes a long time with 3.0.1
+[PDFBOX-5728] - NullPointerException in TTFSubsetter.buildPostTable()
+[PDFBOX-5732] - Problem converting PDF to image (java.awt.color.CMMException: 
Can not access specified profile)
+[PDFBOX-5735] - Set the default value for PDNonTerminalField
+[PDFBOX-5737] - java.lang.ArrayIndexOutOfBoundsException Bug Report
+[PDFBOX-5738] - Wrong colors in PDF since PDFBOX-5488
+[PDFBOX-5740] - Java 7 support on 2.0
+[PDFBOX-5751] - Convert to image exception
+[PDFBOX-5754] - PDF conversion in this format is very slow. Is there any room 
for optimization?
+[PDFBOX-5763] - IllegalArgumentException: -Infinity is not a finite number
+[PDFBOX-5772] - Inconsistent signature page handling when signing in existing 
signature fields
+[PDFBOX-5773] - Add leading "0" for octal values in MacOSRomanEncoding
+[PDFBOX-5776] - DataFormatException: invalid distance too far back
+[PDFBOX-5778] - Grayscale JPEG rendered multicolor
+[PDFBOX-5781] - OutOfMemoryError in FileSystemFontsProvider.scanFonts
+[PDFBOX-5782] - NPE in PageDrawer.getPaint()
+[PDFBOX-5785] - Issue with embedded Font and descendant Font
+[PDFBOX-5787] - LCMS error 13: Mismatched alpha channels
+
+New Feature
+
+[PDFBOX-5768] - Enable Native Markdown Extraction in Apache PDFBox
+
+Improvement
+
+[PDFBOX-5762] - When splitting, keep page destinations that are part of target 
document(s)
+[PDFBOX-5783] - Replace Exception with some repair attempt
+
+Task
+
+[PDFBOX-5739] - Add test for PDFBOX-3347
+[PDFBOX-5741] - Add test for PDFBOX-4106
+
+Release Contents
+
+
+This release consists of a single source archive packaged as a zip file.
+The a

svn commit: r1916472 - in /pdfbox/branches/2.0: app/pom.xml debugger-app/pom.xml debugger/pom.xml examples/pom.xml fontbox/pom.xml pdfbox/pom.xml pom.xml preflight-app/pom.xml preflight/pom.xml releas

2024-03-21 Thread lehmi
Author: lehmi
Date: Thu Mar 21 17:14:39 2024
New Revision: 1916472

URL: http://svn.apache.org/viewvc?rev=1916472=rev
Log:
[maven-release-plugin] prepare for next development iteration

Modified:
pdfbox/branches/2.0/app/pom.xml
pdfbox/branches/2.0/debugger-app/pom.xml
pdfbox/branches/2.0/debugger/pom.xml
pdfbox/branches/2.0/examples/pom.xml
pdfbox/branches/2.0/fontbox/pom.xml
pdfbox/branches/2.0/pdfbox/pom.xml
pdfbox/branches/2.0/pom.xml
pdfbox/branches/2.0/preflight-app/pom.xml
pdfbox/branches/2.0/preflight/pom.xml
pdfbox/branches/2.0/release/pom.xml
pdfbox/branches/2.0/tools/pom.xml
pdfbox/branches/2.0/xmpbox/pom.xml

Modified: pdfbox/branches/2.0/app/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/app/pom.xml?rev=1916472=1916471=1916472=diff
==
--- pdfbox/branches/2.0/app/pom.xml (original)
+++ pdfbox/branches/2.0/app/pom.xml Thu Mar 21 17:14:39 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-2.0.31
+2.0.32-SNAPSHOT
 ../pom.xml
   
 

Modified: pdfbox/branches/2.0/debugger-app/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger-app/pom.xml?rev=1916472=1916471=1916472=diff
==
--- pdfbox/branches/2.0/debugger-app/pom.xml (original)
+++ pdfbox/branches/2.0/debugger-app/pom.xml Thu Mar 21 17:14:39 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-2.0.31
+2.0.32-SNAPSHOT
 ../pom.xml
   
 

Modified: pdfbox/branches/2.0/debugger/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger/pom.xml?rev=1916472=1916471=1916472=diff
==
--- pdfbox/branches/2.0/debugger/pom.xml (original)
+++ pdfbox/branches/2.0/debugger/pom.xml Thu Mar 21 17:14:39 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-2.0.31
+2.0.32-SNAPSHOT
 ../pom.xml
   
 

Modified: pdfbox/branches/2.0/examples/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/examples/pom.xml?rev=1916472=1916471=1916472=diff
==
--- pdfbox/branches/2.0/examples/pom.xml (original)
+++ pdfbox/branches/2.0/examples/pom.xml Thu Mar 21 17:14:39 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-2.0.31
+2.0.32-SNAPSHOT
 ../pom.xml
   
 

Modified: pdfbox/branches/2.0/fontbox/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/pom.xml?rev=1916472=1916471=1916472=diff
==
--- pdfbox/branches/2.0/fontbox/pom.xml (original)
+++ pdfbox/branches/2.0/fontbox/pom.xml Thu Mar 21 17:14:39 2024
@@ -21,7 +21,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-2.0.31
+2.0.32-SNAPSHOT
 ../pom.xml
   
 

Modified: pdfbox/branches/2.0/pdfbox/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/pom.xml?rev=1916472=1916471=1916472=diff
==
--- pdfbox/branches/2.0/pdfbox/pom.xml (original)
+++ pdfbox/branches/2.0/pdfbox/pom.xml Thu Mar 21 17:14:39 2024
@@ -23,7 +23,7 @@
 
 org.apache.pdfbox
 pdfbox-parent
-2.0.31
+2.0.32-SNAPSHOT
 ../pom.xml
 
 

Modified: pdfbox/branches/2.0/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pom.xml?rev=1916472=1916471=1916472=diff
==
--- pdfbox/branches/2.0/pom.xml (original)
+++ pdfbox/branches/2.0/pom.xml Thu Mar 21 17:14:39 2024
@@ -31,7 +31,7 @@
 
   org.apache.pdfbox
   pdfbox-parent
-  2.0.31
+  2.0.32-SNAPSHOT
   pom
 
   Apache PDFBox parent
@@ -43,9 +43,9 @@
   
 
   
-
scm:svn:https://svn.apache.org/repos/asf/pdfbox/tags/2.0.31
-
scm:svn:https://svn.apache.org/repos/asf/pdfbox/tags/2.0.31
-https://svn.apache.org/viewvc/pdfbox/tags/2.0.31
+
scm:svn:https://svn.apache.org/repos/asf/pdfbox/branches/2.0
+
scm:svn:https://svn.apache.org/repos/asf/pdfbox/branches/2.0
+https://svn.apache.org/viewvc/pdfbox/branches/2.0
   
 
   

Modified: pdfbox/branches/2.0/preflight-app/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/preflight-app/pom.xml?rev=1916472=1916471=1916472=diff
==
Binary files - no diff available.

Modified: pdfbox/branches/2.0/preflight/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/preflight/pom.xml?rev=1916472=1916471=1916472=diff
==
--- pdfbox/branches/2.0/preflight/pom.xml (original)
+++ pdfbox/branches/2.0/preflight/pom.xml Thu Mar 21 17:14:39 2024
@@ -26,7 +26,7

svn commit: r1916471 - /pdfbox/tags/2.0.31/

2024-03-21 Thread lehmi
Author: lehmi
Date: Thu Mar 21 17:14:36 2024
New Revision: 1916471

URL: http://svn.apache.org/viewvc?rev=1916471=rev
Log:
[maven-release-plugin] copy for tag 2.0.31

Added:
pdfbox/tags/2.0.31/   (props changed)
  - copied from r1916470, pdfbox/branches/2.0/

Propchange: pdfbox/tags/2.0.31/
--
--- svn:ignore (added)
+++ svn:ignore Thu Mar 21 17:14:36 2024
@@ -0,0 +1,2 @@
+.*
+target

Propchange: pdfbox/tags/2.0.31/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Thu Mar 21 17:14:36 2024
@@ -0,0 +1,4 @@
+/pdfbox/branches/issue4569:1861285,1861586,1872016,1872020,1872024,1872074
+/pdfbox/branches/no-awt:1618517-1621410
+/pdfbox/no-awt:1618514-1618516
+/pdfbox/trunk:1736223,1736227,1736615,1737043,1737130,1737599-1737600,1738755,1740160,1742437,1742442,1743248,1745595,1745606,1745772,1745774,1745776,1745779,1746032,1746151,1749162,1749165,1749432,1766088,1766213,1767585,1768061,1770985,1770988,1772528,1778172,1782679,1786586,1786603,1787546,1789414,1790745,1794073,1794090,1794620,1794753,1794859,1794891,1800566,1812426,1814226,1826836,1857800,1857803,1857914,1861927,1861933,1872981,1877805,1877808,1877811,1878049,1879281,1879769,1880018




svn commit: r1916470 - in /pdfbox/branches/2.0: app/pom.xml debugger-app/pom.xml debugger/pom.xml examples/pom.xml fontbox/pom.xml pdfbox/pom.xml pom.xml preflight-app/pom.xml preflight/pom.xml releas

2024-03-21 Thread lehmi
Author: lehmi
Date: Thu Mar 21 17:14:24 2024
New Revision: 1916470

URL: http://svn.apache.org/viewvc?rev=1916470=rev
Log:
[maven-release-plugin] prepare release 2.0.31

Modified:
pdfbox/branches/2.0/app/pom.xml
pdfbox/branches/2.0/debugger-app/pom.xml
pdfbox/branches/2.0/debugger/pom.xml
pdfbox/branches/2.0/examples/pom.xml
pdfbox/branches/2.0/fontbox/pom.xml
pdfbox/branches/2.0/pdfbox/pom.xml
pdfbox/branches/2.0/pom.xml
pdfbox/branches/2.0/preflight-app/pom.xml
pdfbox/branches/2.0/preflight/pom.xml
pdfbox/branches/2.0/release/pom.xml
pdfbox/branches/2.0/tools/pom.xml
pdfbox/branches/2.0/xmpbox/pom.xml

Modified: pdfbox/branches/2.0/app/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/app/pom.xml?rev=1916470=1916469=1916470=diff
==
--- pdfbox/branches/2.0/app/pom.xml (original)
+++ pdfbox/branches/2.0/app/pom.xml Thu Mar 21 17:14:24 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-2.0.31-SNAPSHOT
+2.0.31
 ../pom.xml
   
 

Modified: pdfbox/branches/2.0/debugger-app/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger-app/pom.xml?rev=1916470=1916469=1916470=diff
==
--- pdfbox/branches/2.0/debugger-app/pom.xml (original)
+++ pdfbox/branches/2.0/debugger-app/pom.xml Thu Mar 21 17:14:24 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-2.0.31-SNAPSHOT
+2.0.31
 ../pom.xml
   
 

Modified: pdfbox/branches/2.0/debugger/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger/pom.xml?rev=1916470=1916469=1916470=diff
==
--- pdfbox/branches/2.0/debugger/pom.xml (original)
+++ pdfbox/branches/2.0/debugger/pom.xml Thu Mar 21 17:14:24 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-2.0.31-SNAPSHOT
+2.0.31
 ../pom.xml
   
 

Modified: pdfbox/branches/2.0/examples/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/examples/pom.xml?rev=1916470=1916469=1916470=diff
==
--- pdfbox/branches/2.0/examples/pom.xml (original)
+++ pdfbox/branches/2.0/examples/pom.xml Thu Mar 21 17:14:24 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-2.0.31-SNAPSHOT
+2.0.31
 ../pom.xml
   
 

Modified: pdfbox/branches/2.0/fontbox/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/pom.xml?rev=1916470=1916469=1916470=diff
==
--- pdfbox/branches/2.0/fontbox/pom.xml (original)
+++ pdfbox/branches/2.0/fontbox/pom.xml Thu Mar 21 17:14:24 2024
@@ -21,7 +21,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-2.0.31-SNAPSHOT
+2.0.31
 ../pom.xml
   
 

Modified: pdfbox/branches/2.0/pdfbox/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/pom.xml?rev=1916470=1916469=1916470=diff
==
--- pdfbox/branches/2.0/pdfbox/pom.xml (original)
+++ pdfbox/branches/2.0/pdfbox/pom.xml Thu Mar 21 17:14:24 2024
@@ -23,7 +23,7 @@
 
 org.apache.pdfbox
 pdfbox-parent
-2.0.31-SNAPSHOT
+2.0.31
 ../pom.xml
 
 

Modified: pdfbox/branches/2.0/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pom.xml?rev=1916470=1916469=1916470=diff
==
--- pdfbox/branches/2.0/pom.xml (original)
+++ pdfbox/branches/2.0/pom.xml Thu Mar 21 17:14:24 2024
@@ -31,7 +31,7 @@
 
   org.apache.pdfbox
   pdfbox-parent
-  2.0.31-SNAPSHOT
+  2.0.31
   pom
 
   Apache PDFBox parent
@@ -43,9 +43,9 @@
   
 
   
-
scm:svn:https://svn.apache.org/repos/asf/pdfbox/branches/2.0
-
scm:svn:https://svn.apache.org/repos/asf/pdfbox/branches/2.0
-https://svn.apache.org/viewvc/pdfbox/branches/2.0
+
scm:svn:https://svn.apache.org/repos/asf/pdfbox/tags/2.0.31
+
scm:svn:https://svn.apache.org/repos/asf/pdfbox/tags/2.0.31
+https://svn.apache.org/viewvc/pdfbox/tags/2.0.31
   
 
   

Modified: pdfbox/branches/2.0/preflight-app/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/preflight-app/pom.xml?rev=1916470=1916469=1916470=diff
==
Binary files - no diff available.

Modified: pdfbox/branches/2.0/preflight/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/preflight/pom.xml?rev=1916470=1916469=1916470=diff
==
--- pdfbox/branches/2.0/preflight/pom.xml (original)
+++ pdfbox/branches/2.0/preflight/pom.xml Thu Mar 21 17:14:24 2024
@@ -26,7 +26,7

svn commit: r1916469 - /pdfbox/branches/2.0/pom.xml

2024-03-21 Thread lehmi
Author: lehmi
Date: Thu Mar 21 17:08:14 2024
New Revision: 1916469

URL: http://svn.apache.org/viewvc?rev=1916469=rev
Log:
disable dependency check due to ongoing issues with the NVD site

Modified:
pdfbox/branches/2.0/pom.xml

Modified: pdfbox/branches/2.0/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pom.xml?rev=1916469=1916468=1916469=diff
==
--- pdfbox/branches/2.0/pom.xml (original)
+++ pdfbox/branches/2.0/pom.xml Thu Mar 21 17:08:14 2024
@@ -320,6 +320,8 @@
   dependency-check-maven
   9.0.10
   
+  
+  true
   0
   
   true




svn commit: r1916445 - /pdfbox/branches/2.0/RELEASE-NOTES.txt

2024-03-20 Thread lehmi
Author: lehmi
Date: Wed Mar 20 17:15:11 2024
New Revision: 1916445

URL: http://svn.apache.org/viewvc?rev=1916445=rev
Log:
prepare for 2.0.31 release

Modified:
pdfbox/branches/2.0/RELEASE-NOTES.txt

Modified: pdfbox/branches/2.0/RELEASE-NOTES.txt
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/RELEASE-NOTES.txt?rev=1916445=1916444=1916445=diff
==
--- pdfbox/branches/2.0/RELEASE-NOTES.txt (original)
+++ pdfbox/branches/2.0/RELEASE-NOTES.txt Wed Mar 20 17:15:11 2024
@@ -1,11 +1,11 @@
-Release Notes -- Apache PDFBox -- Version 2.0.30
+Release Notes -- Apache PDFBox -- Version 2.0.31
 
 Introduction
 
 
 The Apache PDFBox library is an open source Java tool for working with PDF 
documents.
 
-This is an incremental bugfix release based on the earlier 2.0.29 release. It 
contains
+This is an incremental bugfix release based on the earlier 2.0.30 release. It 
contains
 a couple of fixes and small improvements.
 
 For more details on these changes and all the other fixes and improvements
@@ -14,45 +14,45 @@ PDFBox issue tracker at https://issues.a
 
 Bug
 
-[PDFBOX-5350] - Regression unicode mapping in Korean document
-[PDFBOX-5359] - Operators "q" and "Q" should also preserve text matrices
-[PDFBOX-5623] - Signature Image not Rendered starting with PDFBox 2.0.23 + 
patch provided
-[PDFBOX-5627] - Fonts are not subsetted when saving incrementally
-[PDFBOX-5628] - Bug in PDFMergerUtility#mergeFields
-[PDFBOX-5639] - Password protected PDF opens in GUI apps but PDFbox says 
invalid password
-[PDFBOX-5642] - Wrong error message "2.4.1 : Invalid Color space, The operator 
"rg" can't be used with CMYK Profile"
-[PDFBOX-5644] - Make FDF annotations more compliant with the specification
-[PDFBOX-5649] - NPE in DomXmpParser.parseLiDescription
-[PDFBOX-5651] - Regression: NoSuchElementException in PDFXrefStreamParser
-[PDFBOX-5653] - The PageDrawer.strokePath method is blocked, and cpu100%
-[PDFBOX-5654] - Avoid NPE when processing CFF2 based fonts
-[PDFBOX-5658] - IllegalArgumentException: Dimensions (width=458477041 
height=26) are too large
-[PDFBOX-5662] - Can not see checkbox check
-[PDFBOX-5665] - NPE when converting pdf to image.
-[PDFBOX-5668] - NullPointerException in XMPMetadata.getSchema()
-[PDFBOX-5672] - PDFToImage might not correctly detect unsupported image formats
-[PDFBOX-5684] - Font cache isn't effective on my machine, always rebuilds
-[PDFBOX-5694] - PDF to Image conversion results in different converted image
-[PDFBOX-5702] - Text in a certain font is lost when converting pdf to image
-[PDFBOX-5706] - Incorrect colors in image from PDFs (DCTDecode)
+[PDFBOX-2725] - [PATCH] Split pdf lose accessibility tags
+[PDFBOX-5375] - Allow creating of PDFXObjectImage without accessing to the 
image stream
+[PDFBOX-5713] - PfbParser fails to parse PFB font with multiple binary records.
+[PDFBOX-5715] - Lines vanish when printing on MacOS
+[PDFBOX-5718] - java.lang.IllegalArgumentException: Provided dictionary is not 
of type 'COSName{OCG}'
+[PDFBOX-5721] - The embedded font DroidSansFallbackFull reports an error when 
parsing, and finally uses lastResortFont, resulting in garbled fonts.
+[PDFBOX-5723] - COSName caches already cached hashCode
+[PDFBOX-5727] - Font operation takes a long time with 3.0.1
+[PDFBOX-5728] - NullPointerException in TTFSubsetter.buildPostTable()
+[PDFBOX-5732] - Problem converting PDF to image (java.awt.color.CMMException: 
Can not access specified profile)
+[PDFBOX-5735] - Set the default value for PDNonTerminalField
+[PDFBOX-5737] - java.lang.ArrayIndexOutOfBoundsException Bug Report
+[PDFBOX-5738] - Wrong colors in PDF since PDFBOX-5488
+[PDFBOX-5740] - Java 7 support on 2.0
+[PDFBOX-5751] - Convert to image exception
+[PDFBOX-5754] - PDF conversion in this format is very slow. Is there any room 
for optimization?
+[PDFBOX-5763] - IllegalArgumentException: -Infinity is not a finite number
+[PDFBOX-5772] - Inconsistent signature page handling when signing in existing 
signature fields
+[PDFBOX-5773] - Add leading "0" for octal values in MacOSRomanEncoding
+[PDFBOX-5776] - DataFormatException: invalid distance too far back
+[PDFBOX-5778] - Grayscale JPEG rendered multicolor
+[PDFBOX-5781] - OutOfMemoryError in FileSystemFontsProvider.scanFonts
+[PDFBOX-5782] - NPE in PageDrawer.getPaint()
+[PDFBOX-5785] - Issue with embedded Font and descendant Font
+[PDFBOX-5787] - LCMS error 13: Mismatched alpha channels
 
 New Feature
 
-[PDFBOX-5683] - Inconsistent/incomplete PDF rendering
+[PDFBOX-5768] - Enable Native Markdown Extraction in Apache PDFBox
 
 Improvement
 
-[PDFBOX-4892] - Improve code quality (4)
-[PDFBOX-5630] - Add PDRectangle#TABLOID paper size
-[PDFBOX-5631] - Support version 0.5 of MaximumProfileTable
-[PDFBOX-5632] - loca-table isn't mandatory for TTF/OTF-fonts using CFF outlines
-[PDFBOX-5636] - Implement PDF 2.0 dash phase cl

svn commit: r1916326 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

2024-03-15 Thread lehmi
Author: lehmi
Date: Fri Mar 15 07:20:01 2024
New Revision: 1916326

URL: http://svn.apache.org/viewvc?rev=1916326=rev
Log:
PDFBOX-5785: remove restriction 

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java?rev=1916326=1916325=1916326=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
 Fri Mar 15 07:20:01 2024
@@ -325,7 +325,7 @@ public class PDCIDFontType2 extends PDCI
 return cid;
 }
 // "Identity" is the default for TrueTypeFonts if the CID is 
within the range
-return otf == null && cid < ttf.getNumberOfGlyphs() ? cid : 0;
+return cid < ttf.getNumberOfGlyphs() ? cid : 0;
 }
 }
 }




svn commit: r1916325 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

2024-03-15 Thread lehmi
Author: lehmi
Date: Fri Mar 15 07:19:41 2024
New Revision: 1916325

URL: http://svn.apache.org/viewvc?rev=1916325=rev
Log:
PDFBOX-5785: remove restriction 

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java?rev=1916325=1916324=1916325=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
 Fri Mar 15 07:19:41 2024
@@ -327,7 +327,7 @@ public class PDCIDFontType2 extends PDCI
 return cid;
 }
 // "Identity" is the default for TrueTypeFonts if the CID is 
within the range
-return otf == null && cid < ttf.getNumberOfGlyphs() ? cid : 0;
+return cid < ttf.getNumberOfGlyphs() ? cid : 0;
 }
 }
 }




svn commit: r1916316 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

2024-03-14 Thread lehmi
Author: lehmi
Date: Thu Mar 14 20:52:54 2024
New Revision: 1916316

URL: http://svn.apache.org/viewvc?rev=1916316=rev
Log:
PDFBOX-5785: adjust logic due to a different behavior of 2.0 compared to 3.0

Modified:

pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java?rev=1916316=1916315=1916316=diff
==
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
 Thu Mar 14 20:52:54 2024
@@ -304,14 +304,13 @@ public class PDCIDFontType2 extends PDCI
 }
 else
 {
-boolean isOTF = ttf instanceof OpenTypeFont;
 // "Identity" is the default for CFF-based OpenTypeFonts
-if (isOTF && ((OpenTypeFont) ttf).isPostScript())
+if (ttf instanceof OpenTypeFont && ((OpenTypeFont) 
ttf).isPostScript())
 {
 return cid;
 }
 // "Identity" is the default for TrueTypeFonts if the CID is 
within the range
-return !isOTF && cid < ttf.getNumberOfGlyphs() ? cid : 0;
+return cid < ttf.getNumberOfGlyphs() ? cid : 0;
 }
 }
 }




(pdfbox-docs) branch asf-site updated: Site checkin for project Apache PDFBox Website

2024-03-14 Thread lehmi
This is an automated email from the ASF dual-hosted git repository.

lehmi pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/pdfbox-docs.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new e60c95d8 Site checkin for project Apache PDFBox Website
e60c95d8 is described below

commit e60c95d8e40097359feab97b37670c83b270788d
Author: Andreas Lehmkühler 
AuthorDate: Thu Mar 14 21:35:59 2024 +0100

Site checkin for project Apache PDFBox Website
---
 content/blog/index.html |  7 +
 content/doap_PDFBox.rdf |  7 +
 content/download.html   | 72 -
 content/index.html  | 18 +++--
 4 files changed, 60 insertions(+), 44 deletions(-)

diff --git a/content/blog/index.html b/content/blog/index.html
index b09d94f4..441177d2 100644
--- a/content/blog/index.html
+++ b/content/blog/index.html
@@ -155,6 +155,13 @@
 
 
 Blog
+Apache PDFBox 3.0.2 released2024-03-14
+The Apache PDFBox community is pleased to announce the release of
+Apache PDFBox version 3.0.2. It is available for download at:
+https://pdfbox.apache.org/download.html;>https://pdfbox.apache.org/download.html
+See the https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310760version=12353972;>full
 release notes for details about this release.
+The https://pdfbox.apache.org/3.0/migration.html;>Migration 
Guide shall give users coming from
+PDFBox 2.0.x an overview about things to look at when switching over. More 
details to come.
 Apache PDFBox 3.0.1 released2023-11-30
 The Apache PDFBox community is pleased to announce the release of
 Apache PDFBox version 3.0.1. It is available for download at:
diff --git a/content/doap_PDFBox.rdf b/content/doap_PDFBox.rdf
index 87b6af1a..d32f19dc 100644
--- a/content/doap_PDFBox.rdf
+++ b/content/doap_PDFBox.rdf
@@ -34,6 +34,13 @@
 Java
 https://projects.apache.org/category/content; />
 https://projects.apache.org/category/library; />
+
+  
+Apache PDFBox
+2024-03-14
+3.0.2
+  
+
 
   
 Apache PDFBox
diff --git a/content/download.html b/content/download.html
index f47fddcb..fc1afc19 100644
--- a/content/download.html
+++ b/content/download.html
@@ -162,7 +162,7 @@
 The Apache PDFBox community provides feature and bugfix releases.
 
 
-Feature release for PDFBox 3.0.1  https://www.apache.org/dist/pdfbox/3.0.1/RELEASE-NOTES.txt;>3.0.1 
(requires Java 8)
+Feature release for PDFBox 3.0.2  https://www.apache.org/dist/pdfbox/3.0.2/RELEASE-NOTES.txt;>3.0.2 
(requires Java 8)
 Feature release for PDFBox 2.0.x  https://www.apache.org/dist/pdfbox/2.0.30/RELEASE-NOTES.txt;>2.0.30 
(requires Java 6)
 Feature release of JBIG2 ImageIO plugin 3.0.x  https://www.apache.org/dist/pdfbox/jbig2-imageio/3.0.4/RELEASE-NOTES.txt;>3.0.4
 (requires Java 6)
 Previous releases
@@ -186,71 +186,71 @@
 
 
 
-PDFBox3.0.1feature
+PDFBox3.0.2feature
 Command line tools
 
 
 PDFBox standalone
-https://www.apache.org/dyn/closer.lua/pdfbox/3.0.1/pdfbox-app-3.0.1.jar;>pdfbox-app-3.0.1.jar
-https://www.apache.org/dist/pdfbox/3.0.1/pdfbox-app-3.0.1.jar.asc;>ASC
-https://www.apache.org/dist/pdfbox/3.0.1/pdfbox-app-3.0.1.jar.sha512;>SHA512
+https://www.apache.org/dyn/closer.lua/pdfbox/3.0.2/pdfbox-app-3.0.2.jar;>pdfbox-app-3.0.2.jar
+https://www.apache.org/dist/pdfbox/3.0.2/pdfbox-app-3.0.2.jar.asc;>ASC
+https://www.apache.org/dist/pdfbox/3.0.2/pdfbox-app-3.0.2.jar.sha512;>SHA512
 
 
 Debugger standalone
-https://www.apache.org/dyn/closer.lua/pdfbox/3.0.1/debugger-app-3.0.1.jar;>debugger-app-3.0.1.jar
-https://www.apache.org/dist/pdfbox/3.0.1/debugger-app-3.0.1.jar.asc;>ASC
-https://www.apache.org/dist/pdfbox/3.0.1/debugger-app-3.0.1.jar.sha512;>SHA512
+https://www.apache.org/dyn/closer.lua/pdfbox/3.0.2/debugger-app-3.0.2.jar;>debugger-app-3.0.2.jar
+https://www.apache.org/dist/pdfbox/3.0.2/debugger-app-3.0.2.jar.asc;>ASC
+https://www.apache.org/dist/pdfbox/3.0.2/debugger-app-3.0.2.jar.sha512;>SHA512
 
 
 Preflight standalone
-https://www.apache.org/dyn/closer.lua/pdfbox/3.0.1/preflight-app-3.0.1.jar;>preflight-app-3.0.1.jar
-https://www.apache.org/dist/pdfbox/3.0.1/preflight-app-3.0.1.jar.asc;>ASC
-https://www.apache.org/dist/pdfbox/3.0.1/preflight-app-3.0.1.jar.sha512;>SHA512
+https://www.apache.org/dyn/closer.lua/pdfbox/3.0.2/preflight-app-3.0.2.jar;>preflight-app-3.0.2.jar
+https://www.apache.org/dist/pdfbox/3.0.2/preflight-app-3.0.2.jar.asc;>ASC
+h

(pdfbox-docs) branch master updated: update website due to new release

2024-03-14 Thread lehmi
This is an automated email from the ASF dual-hosted git repository.

lehmi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pdfbox-docs.git


The following commit(s) were added to refs/heads/master by this push:
 new cf8906d0 update website due to new release
cf8906d0 is described below

commit cf8906d03439fc3671ed3d1845348e7f3d23a48d
Author: Andreas Lehmkühler 
AuthorDate: Thu Mar 14 20:08:37 2024 +0100

update website due to new release
---
 content/_posts/2024-03-14-pdfbox.3.0.2.md | 34 +++
 content/doap_PDFBox.rdf   |  7 +++
 content/download.html | 72 +++
 3 files changed, 77 insertions(+), 36 deletions(-)

diff --git a/content/_posts/2024-03-14-pdfbox.3.0.2.md 
b/content/_posts/2024-03-14-pdfbox.3.0.2.md
new file mode 100644
index ..b1605289
--- /dev/null
+++ b/content/_posts/2024-03-14-pdfbox.3.0.2.md
@@ -0,0 +1,34 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+layout:  default
+title:   Apache PDFBox 3.0.2 released
+date: 2024-03-14 00:00:00 +00:00
+categories: [release, news]
+---
+
+The Apache PDFBox community is pleased to announce the release of
+Apache PDFBox version 3.0.2. It is available for download at:
+
+[https://pdfbox.apache.org/download.html](https://pdfbox.apache.org/download.html)
+
+See the [full release 
notes](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310760=12353972)
 for details about this release.
+
+The [Migration Guide](https://pdfbox.apache.org/3.0/migration.html) shall give 
users coming from
+PDFBox 2.0.x an overview about things to look at when switching over. More 
details to come.
+
diff --git a/content/doap_PDFBox.rdf b/content/doap_PDFBox.rdf
index 87b6af1a..d32f19dc 100644
--- a/content/doap_PDFBox.rdf
+++ b/content/doap_PDFBox.rdf
@@ -34,6 +34,13 @@
 Java
 https://projects.apache.org/category/content; />
 https://projects.apache.org/category/library; />
+
+  
+Apache PDFBox
+2024-03-14
+3.0.2
+  
+
 
   
 Apache PDFBox
diff --git a/content/download.html b/content/download.html
index da49eb10..2f36e56b 100644
--- a/content/download.html
+++ b/content/download.html
@@ -27,7 +27,7 @@ title:   Download
 The Apache PDFBox community provides feature and bugfix releases.
 
 
-Feature release for PDFBox 3.0.1  https://www.apache.org/dist/pdfbox/3.0.1/RELEASE-NOTES.txt;>3.0.1 
(requires Java 8)
+Feature release for PDFBox 3.0.2  https://www.apache.org/dist/pdfbox/3.0.2/RELEASE-NOTES.txt;>3.0.2 
(requires Java 8)
 Feature release for PDFBox 2.0.x  https://www.apache.org/dist/pdfbox/2.0.30/RELEASE-NOTES.txt;>2.0.30 
(requires Java 6)
 Feature release of JBIG2 ImageIO plugin 3.0.x  https://www.apache.org/dist/pdfbox/jbig2-imageio/3.0.4/RELEASE-NOTES.txt;>3.0.4
 (requires Java 6)
 Previous releases
@@ -51,71 +51,71 @@ title:   Download
 
 
 
-PDFBox3.0.1feature
+PDFBox3.0.2feature
 Command line tools
 
 
 PDFBox standalone
-https://www.apache.org/dyn/closer.lua/pdfbox/3.0.1/pdfbox-app-3.0.1.jar;>pdfbox-app-3.0.1.jar
-https://www.apache.org/dist/pdfbox/3.0.1/pdfbox-app-3.0.1.jar.asc;>ASC
-https://www.apache.org/dist/pdfbox/3.0.1/pdfbox-app-3.0.1.jar.sha512;>SHA512
+https://www.apache.org/dyn/closer.lua/pdfbox/3.0.2/pdfbox-app-3.0.2.jar;>pdfbox-app-3.0.2.jar
+https://www.apache.org/dist/pdfbox/3.0.2/pdfbox-app-3.0.2.jar.asc;>ASC
+https://www.apache.org/dist/pdfbox/3.0.2/pdfbox-app-3.0.2.jar.sha512;>SHA512
 
 
 Debugger standalone
-https://www.apache.org/dyn/closer.lua/pdfbox/3.0.1/debugger-app-3.0.1.jar;>debugger-app-3.0.1.jar
-https://www.apache.org/dist/pdfbox/3.0.1/debugger-app-3.0.1.jar.asc;>ASC
-https://www.apache.org/dist/pdfbox/3.0.1/debugger-app-3.0.1.jar.sha512;>SHA512
+https://www.apache.org/dyn/close

svn commit: r67952 - /release/pdfbox/3.0.1/

2024-03-14 Thread lehmi
Author: lehmi
Date: Thu Mar 14 20:34:03 2024
New Revision: 67952

Log:
delete old 3.0.1 release

Removed:
release/pdfbox/3.0.1/



svn commit: r67951 - /dev/pdfbox/3.0.2/ /release/pdfbox/3.0.2/

2024-03-14 Thread lehmi
Author: lehmi
Date: Thu Mar 14 20:33:13 2024
New Revision: 67951

Log:
release PDFBox 3.0.2

Added:
release/pdfbox/3.0.2/
  - copied from r67950, dev/pdfbox/3.0.2/
Removed:
dev/pdfbox/3.0.2/



svn commit: r1916314 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

2024-03-14 Thread lehmi
Author: lehmi
Date: Thu Mar 14 19:14:33 2024
New Revision: 1916314

URL: http://svn.apache.org/viewvc?rev=1916314=rev
Log:
PDFBOX-5785: omit in range check for OTF fonts when using identity as 
CIDToGIDMap

Modified:

pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java?rev=1916314=1916313=1916314=diff
==
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
 Thu Mar 14 19:14:33 2024
@@ -304,16 +304,14 @@ public class PDCIDFontType2 extends PDCI
 }
 else
 {
-// "Identity" is the default CIDToGIDMap
-if (cid < ttf.getNumberOfGlyphs())
+boolean isOTF = ttf instanceof OpenTypeFont;
+// "Identity" is the default for CFF-based OpenTypeFonts
+if (isOTF && ((OpenTypeFont) ttf).isPostScript())
 {
 return cid;
 }
-else
-{
-// out of range CIDs map to GID 0
-return 0;
-}
+// "Identity" is the default for TrueTypeFonts if the CID is 
within the range
+return !isOTF && cid < ttf.getNumberOfGlyphs() ? cid : 0;
 }
 }
 }




svn commit: r1916290 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

2024-03-14 Thread lehmi
Author: lehmi
Date: Thu Mar 14 07:35:56 2024
New Revision: 1916290

URL: http://svn.apache.org/viewvc?rev=1916290=rev
Log:
PDFBOX-5785: omit in range check for OTF fonts when using identity as 
CIDToGIDMap

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java?rev=1916290=1916289=1916290=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
 Thu Mar 14 07:35:56 2024
@@ -319,16 +319,13 @@ public class PDCIDFontType2 extends PDCI
 }
 else
 {
-// "Identity" is the default CIDToGIDMap
-if (cid < ttf.getNumberOfGlyphs())
+// "Identity" is the default for CFF-based OpenTypeFonts
+if (otf != null && otf.isPostScript())
 {
 return cid;
 }
-else
-{
-// out of range CIDs map to GID 0
-return 0;
-}
+// "Identity" is the default for TrueTypeFonts if the CID is 
within the range
+return otf == null && cid < ttf.getNumberOfGlyphs() ? cid : 0;
 }
 }
 }




svn commit: r1916289 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

2024-03-14 Thread lehmi
Author: lehmi
Date: Thu Mar 14 07:28:38 2024
New Revision: 1916289

URL: http://svn.apache.org/viewvc?rev=1916289=rev
Log:
PDFBOX-5785: omit in range check for OTF fonts when using identity as 
CIDToGIDMap

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java?rev=1916289=1916288=1916289=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDCIDFontType2.java
 Thu Mar 14 07:28:38 2024
@@ -321,16 +321,13 @@ public class PDCIDFontType2 extends PDCI
 }
 else
 {
-// "Identity" is the default CIDToGIDMap
-if (cid < ttf.getNumberOfGlyphs())
+// "Identity" is the default for CFF-based OpenTypeFonts
+if (otf != null && otf.isPostScript())
 {
 return cid;
 }
-else
-{
-// out of range CIDs map to GID 0
-return 0;
-}
+// "Identity" is the default for TrueTypeFonts if the CID is 
within the range
+return otf == null && cid < ttf.getNumberOfGlyphs() ? cid : 0;
 }
 }
 }




svn commit: r67886 - /dev/pdfbox/3.0.2/

2024-03-11 Thread lehmi
Author: lehmi
Date: Mon Mar 11 19:21:54 2024
New Revision: 67886

Log:
provide 3.0.2 candidate

Added:
dev/pdfbox/3.0.2/
dev/pdfbox/3.0.2/RELEASE-NOTES.txt   (with props)
dev/pdfbox/3.0.2/debugger-app-3.0.2.jar   (with props)
dev/pdfbox/3.0.2/debugger-app-3.0.2.jar.asc   (with props)
dev/pdfbox/3.0.2/debugger-app-3.0.2.jar.sha512
dev/pdfbox/3.0.2/fontbox-3.0.2.jar   (with props)
dev/pdfbox/3.0.2/fontbox-3.0.2.jar.asc   (with props)
dev/pdfbox/3.0.2/fontbox-3.0.2.jar.sha512
dev/pdfbox/3.0.2/pdfbox-3.0.2-src.zip   (with props)
dev/pdfbox/3.0.2/pdfbox-3.0.2-src.zip.asc   (with props)
dev/pdfbox/3.0.2/pdfbox-3.0.2-src.zip.sha512
dev/pdfbox/3.0.2/pdfbox-3.0.2.jar   (with props)
dev/pdfbox/3.0.2/pdfbox-3.0.2.jar.asc   (with props)
dev/pdfbox/3.0.2/pdfbox-3.0.2.jar.sha512
dev/pdfbox/3.0.2/pdfbox-app-3.0.2.jar   (with props)
dev/pdfbox/3.0.2/pdfbox-app-3.0.2.jar.asc   (with props)
dev/pdfbox/3.0.2/pdfbox-app-3.0.2.jar.sha512
dev/pdfbox/3.0.2/pdfbox-debugger-3.0.2.jar   (with props)
dev/pdfbox/3.0.2/pdfbox-debugger-3.0.2.jar.asc   (with props)
dev/pdfbox/3.0.2/pdfbox-debugger-3.0.2.jar.sha512
dev/pdfbox/3.0.2/pdfbox-io-3.0.2.jar   (with props)
dev/pdfbox/3.0.2/pdfbox-io-3.0.2.jar.asc   (with props)
dev/pdfbox/3.0.2/pdfbox-io-3.0.2.jar.sha512
dev/pdfbox/3.0.2/pdfbox-tools-3.0.2.jar   (with props)
dev/pdfbox/3.0.2/pdfbox-tools-3.0.2.jar.asc   (with props)
dev/pdfbox/3.0.2/pdfbox-tools-3.0.2.jar.sha512
dev/pdfbox/3.0.2/preflight-3.0.2.jar   (with props)
dev/pdfbox/3.0.2/preflight-3.0.2.jar.asc   (with props)
dev/pdfbox/3.0.2/preflight-3.0.2.jar.sha512
dev/pdfbox/3.0.2/preflight-app-3.0.2.jar   (with props)
dev/pdfbox/3.0.2/preflight-app-3.0.2.jar.asc   (with props)
dev/pdfbox/3.0.2/preflight-app-3.0.2.jar.sha512
dev/pdfbox/3.0.2/xmpbox-3.0.2.jar   (with props)
dev/pdfbox/3.0.2/xmpbox-3.0.2.jar.asc   (with props)
dev/pdfbox/3.0.2/xmpbox-3.0.2.jar.sha512

Added: dev/pdfbox/3.0.2/RELEASE-NOTES.txt
==
--- dev/pdfbox/3.0.2/RELEASE-NOTES.txt (added)
+++ dev/pdfbox/3.0.2/RELEASE-NOTES.txt Mon Mar 11 19:21:54 2024
@@ -0,0 +1,107 @@
+Release Notes -- Apache PDFBox -- Version 3.0.2
+
+Introduction
+
+
+The Apache PDFBox library is an open source Java tool for working with PDF 
documents.
+
+This is an incremental bugfix release based on the earlier 3.0.1 release. It 
contains
+a couple of fixes and small improvements.
+
+A migration guide is available at 
https://pdfbox.apache.org/3.0/migration.html. It is
+still a work in progress and we are happy to include any valuable feedback 
from our 
+community. 
+
+For more details on these changes and all the other fixes and improvements
+included in this release, please refer to the following issues on the
+PDFBox issue tracker at https://issues.apache.org/jira/browse/PDFBOX.
+
+Bug
+
+[PDFBOX-2725] - [PATCH] Split pdf lose accessibility tags
+[PDFBOX-5375] - Allow creating of PDFXObjectImage without accessing to the 
image stream
+[PDFBOX-5704] - char not rendered
+[PDFBOX-5714] - PDFBox 3.0 regression: duplicate references in dictionary 
values
+[PDFBOX-5715] - Lines vanish when printing on MacOS
+[PDFBOX-5717] - NullPointerException calling saveIncrementalForExternalSigning
+[PDFBOX-5721] - The embedded font DroidSansFallbackFull reports an error when 
parsing, and finally uses lastResortFont, resulting in garbled fonts.
+[PDFBOX-5722] - Wrong scope for maven dependencies
+[PDFBOX-5723] - COSName caches already cached hashCode
+[PDFBOX-5724] - CharStringCommand.equals() does not conform to the contract of 
Object.equals
+[PDFBOX-5727] - Font operation takes a long time with 3.0.1
+[PDFBOX-5728] - NullPointerException in TTFSubsetter.buildPostTable()
+[PDFBOX-5730] - The expected SubstFormat for ExtensionSubstFormat1 subtable is 
108 but should be 1
+[PDFBOX-5732] - Problem converting PDF to image (java.awt.color.CMMException: 
Can not access specified profile)
+[PDFBOX-5733] - lookupType is to be replaced by extensionLookupType in type 7 
lookup table
+[PDFBOX-5735] - Set the default value for PDNonTerminalField
+[PDFBOX-5737] - java.lang.ArrayIndexOutOfBoundsException Bug Report
+[PDFBOX-5738] - Wrong colors in PDF since PDFBOX-5488
+[PDFBOX-5742] - Split result PDFs broken
+[PDFBOX-5744] - EOFException while readMultipleSubstitutionSubtable()
+[PDFBOX-5745] - EOFException while readSingleLookupSubTable()
+[PDFBOX-5748] - Cannot get overlayPDF working on command line interface
+[PDFBOX-5751] - Convert to image exception
+[PDFBOX-5752] - Font errors after copying a page to another document
+[PDFBOX-5754] - PDF conversion in this format is very slow. Is there any room 
for optimization?
+[PDFBOX-5757] - streamCacheCreateFunction not passed to PDFParser
+[PDFBOX-5758] - ExceptionInInitializerError when unmapping is not supported
+[PDFBOX-5760] - NPE

svn commit: r1916239 - in /pdfbox/branches/3.0: app/pom.xml debugger-app/pom.xml debugger/pom.xml examples/pom.xml fontbox/pom.xml io/pom.xml pdfbox/pom.xml pom.xml preflight-app/pom.xml preflight/pom

2024-03-11 Thread lehmi
Author: lehmi
Date: Mon Mar 11 19:17:59 2024
New Revision: 1916239

URL: http://svn.apache.org/viewvc?rev=1916239=rev
Log:
[maven-release-plugin] prepare for next development iteration

Modified:
pdfbox/branches/3.0/app/pom.xml
pdfbox/branches/3.0/debugger-app/pom.xml
pdfbox/branches/3.0/debugger/pom.xml
pdfbox/branches/3.0/examples/pom.xml
pdfbox/branches/3.0/fontbox/pom.xml
pdfbox/branches/3.0/io/pom.xml
pdfbox/branches/3.0/pdfbox/pom.xml
pdfbox/branches/3.0/pom.xml
pdfbox/branches/3.0/preflight-app/pom.xml
pdfbox/branches/3.0/preflight/pom.xml
pdfbox/branches/3.0/release/pom.xml
pdfbox/branches/3.0/tools/pom.xml
pdfbox/branches/3.0/xmpbox/pom.xml

Modified: pdfbox/branches/3.0/app/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/app/pom.xml?rev=1916239=1916238=1916239=diff
==
--- pdfbox/branches/3.0/app/pom.xml (original)
+++ pdfbox/branches/3.0/app/pom.xml Mon Mar 11 19:17:59 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-3.0.2
+3.0.3-SNAPSHOT
 ../pom.xml
   
 

Modified: pdfbox/branches/3.0/debugger-app/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/debugger-app/pom.xml?rev=1916239=1916238=1916239=diff
==
--- pdfbox/branches/3.0/debugger-app/pom.xml (original)
+++ pdfbox/branches/3.0/debugger-app/pom.xml Mon Mar 11 19:17:59 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-3.0.2
+3.0.3-SNAPSHOT
 ../pom.xml
   
 

Modified: pdfbox/branches/3.0/debugger/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/debugger/pom.xml?rev=1916239=1916238=1916239=diff
==
--- pdfbox/branches/3.0/debugger/pom.xml (original)
+++ pdfbox/branches/3.0/debugger/pom.xml Mon Mar 11 19:17:59 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-3.0.2
+3.0.3-SNAPSHOT
 ../pom.xml
   
 

Modified: pdfbox/branches/3.0/examples/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/examples/pom.xml?rev=1916239=1916238=1916239=diff
==
--- pdfbox/branches/3.0/examples/pom.xml (original)
+++ pdfbox/branches/3.0/examples/pom.xml Mon Mar 11 19:17:59 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-3.0.2
+3.0.3-SNAPSHOT
 ../pom.xml
   
 

Modified: pdfbox/branches/3.0/fontbox/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/fontbox/pom.xml?rev=1916239=1916238=1916239=diff
==
--- pdfbox/branches/3.0/fontbox/pom.xml (original)
+++ pdfbox/branches/3.0/fontbox/pom.xml Mon Mar 11 19:17:59 2024
@@ -21,7 +21,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-3.0.2
+3.0.3-SNAPSHOT
 ../pom.xml
   
 

Modified: pdfbox/branches/3.0/io/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/io/pom.xml?rev=1916239=1916238=1916239=diff
==
--- pdfbox/branches/3.0/io/pom.xml (original)
+++ pdfbox/branches/3.0/io/pom.xml Mon Mar 11 19:17:59 2024
@@ -23,7 +23,7 @@
 
 org.apache.pdfbox
 pdfbox-parent
-3.0.2
+3.0.3-SNAPSHOT
 ../pom.xml
 
 

Modified: pdfbox/branches/3.0/pdfbox/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/pom.xml?rev=1916239=1916238=1916239=diff
==
--- pdfbox/branches/3.0/pdfbox/pom.xml (original)
+++ pdfbox/branches/3.0/pdfbox/pom.xml Mon Mar 11 19:17:59 2024
@@ -23,7 +23,7 @@
 
 org.apache.pdfbox
 pdfbox-parent
-3.0.2
+3.0.3-SNAPSHOT
 ../pom.xml
 
 

Modified: pdfbox/branches/3.0/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pom.xml?rev=1916239=1916238=1916239=diff
==
--- pdfbox/branches/3.0/pom.xml (original)
+++ pdfbox/branches/3.0/pom.xml Mon Mar 11 19:17:59 2024
@@ -30,7 +30,7 @@
   org.apache.pdfbox
   pdfbox-parent
   pom
-  3.0.2
+  3.0.3-SNAPSHOT
 
   Apache PDFBox parent
   2002
@@ -46,9 +46,9 @@
   
 
   
-  
scm:svn:https://svn.apache.org/repos/asf/pdfbox/tags/3.0.2
-  
scm:svn:https://svn.apache.org/repos/asf/pdfbox/tags/3.0.2
-  https://svn.apache.org/viewvc/pdfbox/tags/3.0.2
+  
scm:svn:https://svn.apache.org/repos/asf/pdfbox/branches/3.0
+  
scm:svn:https://svn.apache.org/repos/asf/pdfbox/branches/3.0
+  https://svn.apache.org/viewvc/pdfbox/branches/3.0
   
 
   

Modified: pdfbox/branches/3.0/preflight-app/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/preflight-app/pom.xml?rev=1916239=1916238

svn commit: r1916237 - in /pdfbox/branches/3.0: app/pom.xml debugger-app/pom.xml debugger/pom.xml examples/pom.xml fontbox/pom.xml io/pom.xml pdfbox/pom.xml pom.xml preflight-app/pom.xml preflight/pom

2024-03-11 Thread lehmi
Author: lehmi
Date: Mon Mar 11 19:17:55 2024
New Revision: 1916237

URL: http://svn.apache.org/viewvc?rev=1916237=rev
Log:
[maven-release-plugin] prepare release 3.0.2

Modified:
pdfbox/branches/3.0/app/pom.xml
pdfbox/branches/3.0/debugger-app/pom.xml
pdfbox/branches/3.0/debugger/pom.xml
pdfbox/branches/3.0/examples/pom.xml
pdfbox/branches/3.0/fontbox/pom.xml
pdfbox/branches/3.0/io/pom.xml
pdfbox/branches/3.0/pdfbox/pom.xml
pdfbox/branches/3.0/pom.xml
pdfbox/branches/3.0/preflight-app/pom.xml
pdfbox/branches/3.0/preflight/pom.xml
pdfbox/branches/3.0/release/pom.xml
pdfbox/branches/3.0/tools/pom.xml
pdfbox/branches/3.0/xmpbox/pom.xml

Modified: pdfbox/branches/3.0/app/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/app/pom.xml?rev=1916237=1916236=1916237=diff
==
--- pdfbox/branches/3.0/app/pom.xml (original)
+++ pdfbox/branches/3.0/app/pom.xml Mon Mar 11 19:17:55 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-3.0.2-SNAPSHOT
+3.0.2
 ../pom.xml
   
 

Modified: pdfbox/branches/3.0/debugger-app/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/debugger-app/pom.xml?rev=1916237=1916236=1916237=diff
==
--- pdfbox/branches/3.0/debugger-app/pom.xml (original)
+++ pdfbox/branches/3.0/debugger-app/pom.xml Mon Mar 11 19:17:55 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-3.0.2-SNAPSHOT
+3.0.2
 ../pom.xml
   
 

Modified: pdfbox/branches/3.0/debugger/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/debugger/pom.xml?rev=1916237=1916236=1916237=diff
==
--- pdfbox/branches/3.0/debugger/pom.xml (original)
+++ pdfbox/branches/3.0/debugger/pom.xml Mon Mar 11 19:17:55 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-3.0.2-SNAPSHOT
+3.0.2
 ../pom.xml
   
 

Modified: pdfbox/branches/3.0/examples/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/examples/pom.xml?rev=1916237=1916236=1916237=diff
==
--- pdfbox/branches/3.0/examples/pom.xml (original)
+++ pdfbox/branches/3.0/examples/pom.xml Mon Mar 11 19:17:55 2024
@@ -23,7 +23,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-3.0.2-SNAPSHOT
+3.0.2
 ../pom.xml
   
 

Modified: pdfbox/branches/3.0/fontbox/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/fontbox/pom.xml?rev=1916237=1916236=1916237=diff
==
--- pdfbox/branches/3.0/fontbox/pom.xml (original)
+++ pdfbox/branches/3.0/fontbox/pom.xml Mon Mar 11 19:17:55 2024
@@ -21,7 +21,7 @@
   
 org.apache.pdfbox
 pdfbox-parent
-3.0.2-SNAPSHOT
+3.0.2
 ../pom.xml
   
 

Modified: pdfbox/branches/3.0/io/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/io/pom.xml?rev=1916237=1916236=1916237=diff
==
--- pdfbox/branches/3.0/io/pom.xml (original)
+++ pdfbox/branches/3.0/io/pom.xml Mon Mar 11 19:17:55 2024
@@ -23,7 +23,7 @@
 
 org.apache.pdfbox
 pdfbox-parent
-3.0.2-SNAPSHOT
+3.0.2
 ../pom.xml
 
 

Modified: pdfbox/branches/3.0/pdfbox/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/pom.xml?rev=1916237=1916236=1916237=diff
==
--- pdfbox/branches/3.0/pdfbox/pom.xml (original)
+++ pdfbox/branches/3.0/pdfbox/pom.xml Mon Mar 11 19:17:55 2024
@@ -23,7 +23,7 @@
 
 org.apache.pdfbox
 pdfbox-parent
-3.0.2-SNAPSHOT
+3.0.2
 ../pom.xml
 
 

Modified: pdfbox/branches/3.0/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pom.xml?rev=1916237=1916236=1916237=diff
==
--- pdfbox/branches/3.0/pom.xml (original)
+++ pdfbox/branches/3.0/pom.xml Mon Mar 11 19:17:55 2024
@@ -30,7 +30,7 @@
   org.apache.pdfbox
   pdfbox-parent
   pom
-  3.0.2-SNAPSHOT
+  3.0.2
 
   Apache PDFBox parent
   2002
@@ -46,9 +46,9 @@
   
 
   
-  
scm:svn:https://svn.apache.org/repos/asf/pdfbox/branches/3.0
-  
scm:svn:https://svn.apache.org/repos/asf/pdfbox/branches/3.0
-  https://svn.apache.org/viewvc/pdfbox/branches/3.0
+  
scm:svn:https://svn.apache.org/repos/asf/pdfbox/tags/3.0.2
+  
scm:svn:https://svn.apache.org/repos/asf/pdfbox/tags/3.0.2
+  https://svn.apache.org/viewvc/pdfbox/tags/3.0.2
   
 
   

Modified: pdfbox/branches/3.0/preflight-app/pom.xml
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/preflight-app/pom.xml?rev=1916237=1916236=1916237=diff

svn commit: r1916238 - /pdfbox/tags/3.0.2/

2024-03-11 Thread lehmi
Author: lehmi
Date: Mon Mar 11 19:17:56 2024
New Revision: 1916238

URL: http://svn.apache.org/viewvc?rev=1916238=rev
Log:
[maven-release-plugin] copy for tag 3.0.2

Added:
pdfbox/tags/3.0.2/   (props changed)
  - copied from r1916237, pdfbox/branches/3.0/

Propchange: pdfbox/tags/3.0.2/
--
--- svn:ignore (added)
+++ svn:ignore Mon Mar 11 19:17:56 2024
@@ -0,0 +1,2 @@
+.*
+target

Propchange: pdfbox/tags/3.0.2/
--
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Mar 11 19:17:56 2024
@@ -0,0 +1,4 @@
+/pdfbox/branches/2.0:1760418,1761484,1762133,1762140,1763609,1776107,1778755,1779822,1780783,1780789,1782684,1784450,1792784,1795704,1795712,1799081-1799082,1814046,1814285,1814459,1824914,1825811,1825820,1825912,1844477,1844516,1844519,1844567,1850577,1857953,1858696,1858698,1860825,1867724,1868399,1868402,1871957,1878273
+/pdfbox/branches/issue4569:1861285,1861586,1871048-1871049,1872016,1872020,1872024,1872074
+/pdfbox/branches/no-awt:1618517-1621410
+/pdfbox/no-awt:1618514-1618516




svn commit: r1916235 - /pdfbox/branches/3.0/RELEASE-NOTES.txt

2024-03-11 Thread lehmi
Author: lehmi
Date: Mon Mar 11 18:33:51 2024
New Revision: 1916235

URL: http://svn.apache.org/viewvc?rev=1916235=rev
Log:
prepare for 3.0.2 release

Modified:
pdfbox/branches/3.0/RELEASE-NOTES.txt

Modified: pdfbox/branches/3.0/RELEASE-NOTES.txt
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/RELEASE-NOTES.txt?rev=1916235=1916234=1916235=diff
==
--- pdfbox/branches/3.0/RELEASE-NOTES.txt (original)
+++ pdfbox/branches/3.0/RELEASE-NOTES.txt Mon Mar 11 18:33:51 2024
@@ -1,11 +1,11 @@
-Release Notes -- Apache PDFBox -- Version 3.0.1
+Release Notes -- Apache PDFBox -- Version 3.0.2
 
 Introduction
 
 
 The Apache PDFBox library is an open source Java tool for working with PDF 
documents.
 
-This is an incremental bugfix release based on the earlier 3.0.0 release. It 
contains
+This is an incremental bugfix release based on the earlier 3.0.1 release. It 
contains
 a couple of fixes and small improvements.
 
 A migration guide is available at 
https://pdfbox.apache.org/3.0/migration.html. It is
@@ -16,55 +16,60 @@ For more details on these changes and al
 included in this release, please refer to the following issues on the
 PDFBox issue tracker at https://issues.apache.org/jira/browse/PDFBOX.
 
-Sub-task
-
-[PDFBOX-5663] - Implement "about" dialog
-
 Bug
 
-[PDFBOX-5350] - Regression unicode mapping in Korean document
-[PDFBOX-5649] - NPE in DomXmpParser.parseLiDescription
-[PDFBOX-5654] - Avoid NPE when processing CFF2 based fonts
-[PDFBOX-5658] - IllegalArgumentException: Dimensions (width=458477041 
height=26) are too large
-[PDFBOX-5662] - Can not see checkbox check
-[PDFBOX-5665] - NPE when converting pdf to image.
-[PDFBOX-5666] - error encountered in splitting pdf using ver 3.0.0
-[PDFBOX-5668] - NullPointerException in XMPMetadata.getSchema()
-[PDFBOX-5672] - PDFToImage might not correctly detect unsupported image formats
-[PDFBOX-5673] - Refactor Stream operations and operations on collections
-[PDFBOX-5681] - ConcurrentModificationException in getObjectsByType() in 3.x
-[PDFBOX-5682] - Long/permanent hang in PDFBox 3.x
-[PDFBOX-5684] - Font cache isn't effective on my machine, always rebuilds
-[PDFBOX-5687] - PDFBox 3.0 OSGi bundle requires sun.java2d.cmm.kcms package
-[PDFBOX-5689] - Many new warnings "newGlyph ... newValue: ... is trying to 
override the oldValue" after upgrade to V3.0.0
-[PDFBOX-5694] - PDF to Image conversion results in different converted image
-[PDFBOX-5696] - COSStream lost, becomes a COSDictionary
-[PDFBOX-5702] - Text in a certain font is lost when converting pdf to image
-[PDFBOX-5706] - Incorrect colors in image from PDFs (DCTDecode)
-[PDFBOX-5707] - Avoid NPE when accessing the elements of a COSArray
-[PDFBOX-5712] - Stackoverflow in split
-[PDFBOX-5713] - PfbParser fails to parse PFB font with multiple binary records.
-[PDFBOX-5718] - java.lang.IllegalArgumentException: Provided dictionary is not 
of type 'COSName{OCG}'
+[PDFBOX-2725] - [PATCH] Split pdf lose accessibility tags
+[PDFBOX-5375] - Allow creating of PDFXObjectImage without accessing to the 
image stream
+[PDFBOX-5704] - char not rendered
+[PDFBOX-5714] - PDFBox 3.0 regression: duplicate references in dictionary 
values
+[PDFBOX-5715] - Lines vanish when printing on MacOS
+[PDFBOX-5717] - NullPointerException calling saveIncrementalForExternalSigning
+[PDFBOX-5721] - The embedded font DroidSansFallbackFull reports an error when 
parsing, and finally uses lastResortFont, resulting in garbled fonts.
+[PDFBOX-5722] - Wrong scope for maven dependencies
+[PDFBOX-5723] - COSName caches already cached hashCode
+[PDFBOX-5724] - CharStringCommand.equals() does not conform to the contract of 
Object.equals
+[PDFBOX-5727] - Font operation takes a long time with 3.0.1
+[PDFBOX-5728] - NullPointerException in TTFSubsetter.buildPostTable()
+[PDFBOX-5730] - The expected SubstFormat for ExtensionSubstFormat1 subtable is 
108 but should be 1
+[PDFBOX-5732] - Problem converting PDF to image (java.awt.color.CMMException: 
Can not access specified profile)
+[PDFBOX-5733] - lookupType is to be replaced by extensionLookupType in type 7 
lookup table
+[PDFBOX-5735] - Set the default value for PDNonTerminalField
+[PDFBOX-5737] - java.lang.ArrayIndexOutOfBoundsException Bug Report
+[PDFBOX-5738] - Wrong colors in PDF since PDFBOX-5488
+[PDFBOX-5742] - Split result PDFs broken
+[PDFBOX-5744] - EOFException while readMultipleSubstitutionSubtable()
+[PDFBOX-5745] - EOFException while readSingleLookupSubTable()
+[PDFBOX-5748] - Cannot get overlayPDF working on command line interface
+[PDFBOX-5751] - Convert to image exception
+[PDFBOX-5752] - Font errors after copying a page to another document
+[PDFBOX-5754] - PDF conversion in this format is very slow. Is there any room 
for optimization?
+[PDFBOX-5757] - streamCacheCreateFunction not passed to PDFParser
+[PDFBOX-5758] - ExceptionInInitializerError when unmapping is no

svn commit: r1916209 - in /pdfbox/trunk/fontbox/src: main/java/org/apache/fontbox/cff/ test/java/org/apache/fontbox/cff/

2024-03-10 Thread lehmi
Author: lehmi
Date: Sun Mar 10 10:41:32 2024
New Revision: 1916209

URL: http://svn.apache.org/viewvc?rev=1916209=rev
Log:
PDFBOX-5725: simply the implementation of CharStringCommand as proposed by Axel 
Howind

Modified:

pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CharStringCommand.java

pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type1CharStringParser.java

pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/Type2CharString.java

pdfbox/trunk/fontbox/src/test/java/org/apache/fontbox/cff/CharStringCommandTest.java

Modified: 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CharStringCommand.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CharStringCommand.java?rev=1916209=1916208=1916209=diff
==
--- 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CharStringCommand.java
 (original)
+++ 
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CharStringCommand.java
 Sun Mar 10 10:41:32 2024
@@ -16,193 +16,151 @@
  */
 package org.apache.fontbox.cff;
 
-import java.util.EnumMap;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
+import java.util.Arrays;
 
 /**
  * This class represents a CharStringCommand.
  * 
  * @author Villu Ruusmann
  */
-public class CharStringCommand
+public enum CharStringCommand
 {
+HSTEM(Type1KeyWord.HSTEM, Type2KeyWord.HSTEM, 1),
+VSTEM(Type1KeyWord.VSTEM, Type2KeyWord.VSTEM, 3),
+VMOVETO(Type1KeyWord.VMOVETO, Type2KeyWord.VMOVETO,4),
+RLINETO(Type1KeyWord.RLINETO, Type2KeyWord.RLINETO,5),
+HLINETO(Type1KeyWord.HLINETO, Type2KeyWord.HLINETO,6),
+VLINETO(Type1KeyWord.VLINETO, Type2KeyWord.VLINETO,7),
+RRCURVETO(Type1KeyWord.RRCURVETO, Type2KeyWord.RRCURVETO,8),
+CLOSEPATH(Type1KeyWord.CLOSEPATH, null,9),
+CALLSUBR(Type1KeyWord.CALLSUBR, Type2KeyWord.CALLSUBR,10),
+RET(Type1KeyWord.RET, Type2KeyWord.RET,11),
+ESCAPE(Type1KeyWord.ESCAPE, Type2KeyWord.ESCAPE,12),
+HSBW(Type1KeyWord.HSBW, null,13),
+ENDCHAR(Type1KeyWord.ENDCHAR, Type2KeyWord.ENDCHAR,14),
+HSTEMHM(null, Type2KeyWord.HSTEMHM,18),
+HINTMASK(null, Type2KeyWord.HINTMASK,19),
+CNTRMASK(null, Type2KeyWord.CNTRMASK,20),
+RMOVETO(Type1KeyWord.RMOVETO, Type2KeyWord.RMOVETO,21),
+HMOVETO(Type1KeyWord.HMOVETO, Type2KeyWord.HMOVETO,22),
+VSTEMHM(null, Type2KeyWord.VSTEMHM,23),
+RCURVELINE(null, Type2KeyWord.RCURVELINE,24),
+RLINECURVE(null, Type2KeyWord.RLINECURVE,25),
+VVCURVETO(null, Type2KeyWord.VVCURVETO,26),
+HHCURVETO(null, Type2KeyWord.HHCURVETO,27),
+SHORTINT(null, Type2KeyWord.SHORTINT,28),
+CALLGSUBR(null, Type2KeyWord.CALLGSUBR,29),
+VHCURVETO(Type1KeyWord.VHCURVETO, Type2KeyWord.VHCURVETO,30),
+HVCURVETO(Type1KeyWord.HVCURVETO, Type2KeyWord.HVCURVETO,31),
+DOTSECTION(Type1KeyWord.DOTSECTION, null,192),
+VSTEM3(Type1KeyWord.VSTEM3, null,193),
+HSTEM3(Type1KeyWord.HSTEM3, null,194),
+AND(null, Type2KeyWord.AND,195),
+OR(null, Type2KeyWord.OR,196),
+NOT(null, Type2KeyWord.NOT,197),
+SEAC(Type1KeyWord.SEAC, null,198),
+SBW(Type1KeyWord.SBW, null,199),
+ABS(null, Type2KeyWord.ABS,201),
+ADD(null, Type2KeyWord.ADD,202),
+SUB(null, Type2KeyWord.SUB,203),
+DIV(Type1KeyWord.DIV, Type2KeyWord.DIV,204),
+NEG(null, Type2KeyWord.NEG,206),
+EQ(null, Type2KeyWord.EQ,207),
+CALLOTHERSUBR(Type1KeyWord.CALLOTHERSUBR, null,208),
+POP(Type1KeyWord.POP, null,209),
+DROP(null, Type2KeyWord.DROP,210),
+PUT(null, Type2KeyWord.PUT,212),
+GET(null, Type2KeyWord.GET,213),
+IFELSE(null, Type2KeyWord.IFELSE,214),
+RANDOM(null, Type2KeyWord.RANDOM,215),
+MUL(null, Type2KeyWord.MUL,216),
+SQRT(null, Type2KeyWord.SQRT,218),
+DUP(null, Type2KeyWord.DUP,219),
+EXCH(null, Type2KeyWord.EXCH,220),
+INDEX(null, Type2KeyWord.INDEX,221),
+ROLL(null, Type2KeyWord.ROLL,222),
+SETCURRENTPOINT(Type1KeyWord.SETCURRENTPOINT, null,225),
+HFLEX(null, Type2KeyWord.HFLEX,226),
+FLEX(null, Type2KeyWord.FLEX,227),
+HFLEX1(null, Type2KeyWord.HFLEX1,228),
+FLEX1(null, Type2KeyWord.FLEX1,229),
+UNKNOWN(null, null, 99);
+
+private static final CharStringCommand[] COMMANDS_BY_VALUE;
+
+static
+{
+int max = 
Arrays.stream(CharStringCommand.values()).mapToInt(CharStringCommand::getValue)
+.max().orElseThrow();
+COMMANDS_BY_VALUE = new CharStringCommand[max + 1];
+Arrays.stream(CharStringCommand.values()).forEach(c -> 
COMMANDS_BY_VALUE[c.getValue()] = c);
+}
+
 private final Type1KeyWord type1KeyWord;
 private final Type2KeyWord type2KeyWord;
+private final int value;
+private final String stringValue;
 
-private static final Map CHAR_STRING_COMMANDS 
= createMap();
-
-public static final CharStringCommand COMMAND_CLOSEP

svn commit: r1916199 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java

2024-03-09 Thread lehmi
Author: lehmi
Date: Sat Mar  9 13:41:35 2024
New Revision: 1916199

URL: http://svn.apache.org/viewvc?rev=1916199=rev
Log:
PDFBOX-5783: remove duplicate filter list entries instead of throwing an 
exception

Modified:

pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java?rev=1916199=1916198=1916199=diff
==
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java
 Sat Mar  9 13:41:35 2024
@@ -28,6 +28,8 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.pdfbox.filter.DecodeOptions;
 import org.apache.pdfbox.filter.DecodeResult;
 import org.apache.pdfbox.filter.Filter;
@@ -43,6 +45,8 @@ import org.apache.pdfbox.io.ScratchFile;
  */
 public final class COSInputStream extends FilterInputStream
 {
+private static final Log LOG = LogFactory.getLog(COSInputStream.class);
+
 /**
  * Creates a new COSInputStream from an encoded input stream.
  *
@@ -74,7 +78,17 @@ public final class COSInputStream extend
 Set filterSet = new HashSet(filters);
 if (filterSet.size() != filters.size())
 {
-throw new IOException("Duplicate");
+List reducedFilterList = new ArrayList();
+for (Filter filter : filters)
+{
+if (!reducedFilterList.contains(filter))
+{
+reducedFilterList.add(filter);
+}
+}
+// replace origin list with the reduced one
+filters = reducedFilterList;
+LOG.warn("Removed duplicated filter entries");
 }
 }
 // apply filters




svn commit: r1916198 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java

2024-03-09 Thread lehmi
Author: lehmi
Date: Sat Mar  9 13:36:52 2024
New Revision: 1916198

URL: http://svn.apache.org/viewvc?rev=1916198=rev
Log:
PDFBOX-5783: remove duplicate filter list entries instead of throwing an 
exception

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java?rev=1916198=1916197=1916198=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java 
(original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java 
Sat Mar  9 13:36:52 2024
@@ -19,6 +19,7 @@ package org.apache.pdfbox.filter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -216,7 +217,17 @@ public abstract class Filter
 Set filterSet = new HashSet<>(filterList);
 if (filterSet.size() != filterList.size())
 {
-throw new IOException("Duplicate");
+List reducedFilterList = new ArrayList<>();
+for (Filter filter : filterList)
+{
+if (!reducedFilterList.contains(filter))
+{
+reducedFilterList.add(filter);
+}
+}
+// replace origin list with the reduced one
+filterList = reducedFilterList;
+LOG.warn("Removed duplicated filter entries");
 }
 }
 InputStream input = encoded;




svn commit: r1916197 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java

2024-03-09 Thread lehmi
Author: lehmi
Date: Sat Mar  9 13:36:31 2024
New Revision: 1916197

URL: http://svn.apache.org/viewvc?rev=1916197=rev
Log:
PDFBOX-5783: remove duplicate filter list entries instead of throwing an 
exception

Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java?rev=1916197=1916196=1916197=diff
==
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java 
(original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java Sat 
Mar  9 13:36:31 2024
@@ -19,6 +19,7 @@ package org.apache.pdfbox.filter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -216,7 +217,17 @@ public abstract class Filter
 Set filterSet = new HashSet<>(filterList);
 if (filterSet.size() != filterList.size())
 {
-throw new IOException("Duplicate");
+List reducedFilterList = new ArrayList<>();
+for (Filter filter : filterList)
+{
+if (!reducedFilterList.contains(filter))
+{
+reducedFilterList.add(filter);
+}
+}
+// replace origin list with the reduced one
+filterList = reducedFilterList;
+LOG.warn("Removed duplicated filter entries");
 }
 }
 InputStream input = encoded;




(pdfbox-docs) branch asf-site updated: Site checkin for project Apache PDFBox Website

2024-03-04 Thread lehmi
This is an automated email from the ASF dual-hosted git repository.

lehmi pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/pdfbox-docs.git


The following commit(s) were added to refs/heads/asf-site by this push:
 new 63d88ada Site checkin for project Apache PDFBox Website
63d88ada is described below

commit 63d88adac6d067f16ed816a8017810b44fdca0c9
Author: Andreas Lehmkühler 
AuthorDate: Tue Mar 5 08:13:47 2024 +0100

Site checkin for project Apache PDFBox Website
---
 content/3.0/commandline.html | 2 +-
 content/mailinglists.html| 5 +
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/content/3.0/commandline.html b/content/3.0/commandline.html
index 7059f1c9..dfb268c8 100644
--- a/content/3.0/commandline.html
+++ b/content/3.0/commandline.html
@@ -385,7 +385,7 @@ PDFBox tools as Java applications.
 
 OverlayPDF
 This application will overlay one document with the content of another 
document
-Usage: java -jar pdfbox-app-3.y.z.jar overlayPDF [OPTIONS] 
-i=infile -o=outfile
+Usage: java -jar pdfbox-app-3.y.z.jar overlay [OPTIONS] 
-i=infile -o=outfile
 
 
 
diff --git a/content/mailinglists.html b/content/mailinglists.html
index 510ce858..61b68d51 100644
--- a/content/mailinglists.html
+++ b/content/mailinglists.html
@@ -164,6 +164,7 @@ on the Users Mailing List.
 the Developers Mailing List is the place to be.
 If you like to keep track of what's being changed inside the project, you 
can subscribe
 to the Commit Mailing List.
+If you have any issues with subscribing to one of the lists use the 
Help link to get support.
 Please use the Users Mailing List if you are 
unsure which list to use
 
 
@@ -174,7 +175,6 @@ to the Commit Mailing List.
 Unsubscribe
 Help
 Archive
-MarkMail
 
 
 
@@ -185,7 +185,6 @@ to the Commit Mailing List.
 mailto:users-unsubscr...@pdfbox.apache.org;>Unsubscribe
 mailto:users-h...@pdfbox.apache.org;>Help
 https://lists.apache.org/list.html?us...@pdfbox.apache.org;>Archive
-http://pdfbox-users.markmail.org/;>MarkMail
 
 
 Developers
@@ -194,7 +193,6 @@ to the Commit Mailing List.
 mailto:dev-unsubscr...@pdfbox.apache.org;>Unsubscribe
 mailto:dev-h...@pdfbox.apache.org;>Help
 https://lists.apache.org/list.html?d...@pdfbox.apache.org;>Archive
-http://pdfbox-dev.markmail.org/;>MarkMail
 
 
 Commits List
@@ -203,7 +201,6 @@ to the Commit Mailing List.
 mailto:commits-unsubscr...@pdfbox.apache.org;>Unsubscribe
 mailto:commits-h...@pdfbox.apache.org;>Help
 https://lists.apache.org/list.html?commits@pdfbox.apache.org;>Archive
-http://pdfbox-commits.markmail.org/;>MarkMail
 
 
 



(pdfbox-docs) branch master updated: PDFBOX-3330: markmail doesn't exist anymore, clarify help link

2024-03-04 Thread lehmi
This is an automated email from the ASF dual-hosted git repository.

lehmi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pdfbox-docs.git


The following commit(s) were added to refs/heads/master by this push:
 new e85c6b6b PDFBOX-3330: markmail doesn't exist anymore, clarify help link
e85c6b6b is described below

commit e85c6b6bd591cd91a86c160a28bbe6a18992deb7
Author: Andreas Lehmkühler 
AuthorDate: Tue Mar 5 08:12:53 2024 +0100

PDFBOX-3330: markmail doesn't exist anymore, clarify help link
---
 content/mailinglists.md | 12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/content/mailinglists.md b/content/mailinglists.md
index cb36a32a..476df9f4 100644
--- a/content/mailinglists.md
+++ b/content/mailinglists.md
@@ -36,10 +36,12 @@ the **Developers Mailing List** is the place to be.
 If you like to keep track of what's being changed inside the project, you can 
subscribe 
 to the **Commit Mailing List**.
 
+If you have any issues with subscribing to one of the lists use the **Help** 
link to get support.
+
 Please use the Users Mailing List if you are 
unsure which list to use
 
-| Name | Address | Subscribe | Unsubscribe | Help | Archive | MarkMail |
-| --- | --- | --- | ---| ---| --- | --- |
-| Users | us...@pdfbox.apache.org | 
[Subscribe](mailto:users-subscr...@pdfbox.apache.org) | 
[Unsubscribe](mailto:users-unsubscr...@pdfbox.apache.org) | 
[Help](mailto:users-h...@pdfbox.apache.org) | 
[Archive](https://lists.apache.org/list.html?us...@pdfbox.apache.org) | 
[MarkMail](http://pdfbox-users.markmail.org/) |
-| Developers | d...@pdfbox.apache.org | 
[Subscribe](mailto:dev-subscr...@pdfbox.apache.org) | 
[Unsubscribe](mailto:dev-unsubscr...@pdfbox.apache.org) | 
[Help](mailto:dev-h...@pdfbox.apache.org) | 
[Archive](https://lists.apache.org/list.html?d...@pdfbox.apache.org) | 
[MarkMail](http://pdfbox-dev.markmail.org/) |
-| Commits List | commits@pdfbox.apache.org | 
[Subscribe](mailto:commits-subscr...@pdfbox.apache.org) | 
[Unsubscribe](mailto:commits-unsubscr...@pdfbox.apache.org) | 
[Help](mailto:commits-h...@pdfbox.apache.org) | 
[Archive](https://lists.apache.org/list.html?commits@pdfbox.apache.org) | 
[MarkMail](http://pdfbox-commits.markmail.org/) |
+| Name | Address | Subscribe | Unsubscribe | Help | Archive |
+| --- | --- | --- | ---| ---| --- |
+| Users | us...@pdfbox.apache.org | 
[Subscribe](mailto:users-subscr...@pdfbox.apache.org) | 
[Unsubscribe](mailto:users-unsubscr...@pdfbox.apache.org) | 
[Help](mailto:users-h...@pdfbox.apache.org) | 
[Archive](https://lists.apache.org/list.html?us...@pdfbox.apache.org) |
+| Developers | d...@pdfbox.apache.org | 
[Subscribe](mailto:dev-subscr...@pdfbox.apache.org) | 
[Unsubscribe](mailto:dev-unsubscr...@pdfbox.apache.org) | 
[Help](mailto:dev-h...@pdfbox.apache.org) | 
[Archive](https://lists.apache.org/list.html?d...@pdfbox.apache.org) |
+| Commits List | commits@pdfbox.apache.org | 
[Subscribe](mailto:commits-subscr...@pdfbox.apache.org) | 
[Unsubscribe](mailto:commits-unsubscr...@pdfbox.apache.org) | 
[Help](mailto:commits-h...@pdfbox.apache.org) | 
[Archive](https://lists.apache.org/list.html?commits@pdfbox.apache.org) |



svn commit: r1916094 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

2024-03-03 Thread lehmi
Author: lehmi
Date: Sun Mar  3 12:50:08 2024
New Revision: 1916094

URL: http://svn.apache.org/viewvc?rev=1916094=rev
Log:
PDFBOX-5714: sonar fix

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1916094=1916093=1916094=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
 Sun Mar  3 12:50:08 2024
@@ -183,8 +183,6 @@ public class COSWriter implements ICOSVi
 
 // the current object number
 private long number = 0;
-// indicates whether existing object keys should be reused or not
-private boolean reuseObjectNumbers = true;
 
 // maps the object to the keys generated in the writer
 // these are used for indirect references in other objects
@@ -272,9 +270,6 @@ public class COSWriter implements ICOSVi
 // write to buffer instead of output
 setOutput(new ByteArrayOutputStream());
 setStandardOutput(new COSStandardOutputStream(output, 
inputData.length()));
-// don't reuse object numbers to avoid overlapping keys
-// as inputData already contains a lot of objects
-reuseObjectNumbers = false;
 // disable compressed object streams
 compressParameters = CompressParameters.NO_COMPRESSION;
 incrementalInput = inputData;




svn propchange: r1916093 - svn:log

2024-03-03 Thread lehmi
Author: lehmi
Revision: 1916093
Modified property: svn:log

Modified: svn:log at Sun Mar  3 12:49:51 2024
--
--- svn:log (original)
+++ svn:log Sun Mar  3 12:49:51 2024
@@ -0,0 +1 @@
+PDFBOX-5714: sonar fix



svn commit: r1916093 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

2024-03-03 Thread lehmi
Author: lehmi
Date: Sun Mar  3 12:48:02 2024
New Revision: 1916093

URL: http://svn.apache.org/viewvc?rev=1916093=rev
Log: (empty)

Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1916093=1916092=1916093=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java 
Sun Mar  3 12:48:02 2024
@@ -182,8 +182,6 @@ public class COSWriter implements ICOSVi
 
 // the current object number
 private long number = 0;
-// indicates whether existing object keys should be reused or not
-private boolean reuseObjectNumbers = true;
 
 // maps the object to the keys generated in the writer
 // these are used for indirect references in other objects
@@ -271,9 +269,6 @@ public class COSWriter implements ICOSVi
 // write to buffer instead of output
 setOutput(new ByteArrayOutputStream());
 setStandardOutput(new COSStandardOutputStream(output, 
inputData.length()));
-// don't reuse object numbers to avoid overlapping keys
-// as inputData already contains a lot of objects
-reuseObjectNumbers = false;
 // disable compressed object streams
 compressParameters = CompressParameters.NO_COMPRESSION;
 incrementalInput = inputData;




svn commit: r1916079 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java

2024-03-02 Thread lehmi
Author: lehmi
Date: Sat Mar  2 16:44:51 2024
New Revision: 1916079

URL: http://svn.apache.org/viewvc?rev=1916079=rev
Log:
PDFBOX-5752: eliminate overlapping object keys after importing some external 
content

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java?rev=1916079=1916078=1916079=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java
 Sat Mar  2 16:44:51 2024
@@ -127,6 +127,12 @@ public class COSWriterCompressionPool
 {
 return current;
 }
+// check if the key of the indirect object matches the key of the 
referenced object
+// otherwise update the key
+if (!actualKey.equals(key) && base instanceof COSObject)
+{
+base.setKey(actualKey);
+}
 topLevelObjects.add(actualKey);
 return current;
 }
@@ -137,7 +143,12 @@ public class COSWriterCompressionPool
 {
 return current;
 }
-
+// check if the key of the indirect object matches the key of the 
referenced object
+// otherwise update the key
+if (!actualKey.equals(key) && base instanceof COSObject)
+{
+base.setKey(actualKey);
+}
 // Append it to an object stream.
 this.objectStreamObjects.add(actualKey);
 return current;
@@ -194,7 +205,13 @@ public class COSWriterCompressionPool
 COSObject cosObject = (COSObject) value;
 if (cosObject.getKey() != null && 
objectPool.contains(cosObject.getKey()))
 {
-continue;
+// check if the stored object matches the referenced 
object otherwise replace the key with a new one
+// there may differences if some imported content uses the 
same object numbers than the target pdf
+if 
(objectPool.getObject(cosObject.getKey()).equals(cosObject.getObject()))
+{
+continue;
+}
+cosObject.setKey(null);
 }
 if (cosObject.getObject() != null)
 {




svn commit: r1916065 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java

2024-02-29 Thread lehmi
Author: lehmi
Date: Fri Mar  1 07:25:11 2024
New Revision: 1916065

URL: http://svn.apache.org/viewvc?rev=1916065=rev
Log:
PDFBOX-5752: eliminate overlapping object keys after importing some external 
content

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java?rev=1916065=1916064=1916065=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java
 Fri Mar  1 07:25:11 2024
@@ -127,6 +127,12 @@ public class COSWriterCompressionPool
 {
 return current;
 }
+// check if the key of the indirect object matches the key of the 
referenced object
+// otherwise update the key
+if (!actualKey.equals(key) && base instanceof COSObject)
+{
+base.setKey(actualKey);
+}
 topLevelObjects.add(actualKey);
 return current;
 }
@@ -137,6 +143,12 @@ public class COSWriterCompressionPool
 {
 return current;
 }
+// check if the key of the indirect object matches the key of the 
referenced object
+// otherwise update the key
+if (!actualKey.equals(key) && base instanceof COSObject)
+{
+base.setKey(actualKey);
+}
 
 // Append it to an object stream.
 this.objectStreamObjects.add(actualKey);
@@ -194,7 +206,13 @@ public class COSWriterCompressionPool
 COSObject cosObject = (COSObject) value;
 if (cosObject.getKey() != null && 
objectPool.contains(cosObject.getKey()))
 {
-continue;
+// check if the stored object matches the referenced 
object otherwise replace the key with a new one
+// there may differences if some imported content uses the 
same object numbers than the target pdf
+if 
(objectPool.getObject(cosObject.getKey()).equals(cosObject.getObject()))
+{
+continue;
+}
+cosObject.setKey(null);
 }
 if (cosObject.getObject() != null)
 {




svn commit: r1915941 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/Encoding.java

2024-02-21 Thread lehmi
Author: lehmi
Date: Thu Feb 22 07:06:28 2024
New Revision: 1915941

URL: http://svn.apache.org/viewvc?rev=1915941=rev
Log:
PDFBOX-5660: simplify as proposed by DvonHolten, closes #186

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/Encoding.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/Encoding.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/Encoding.java?rev=1915941=1915940=1915941=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/Encoding.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/Encoding.java
 Thu Feb 22 07:06:28 2024
@@ -165,12 +165,7 @@ public abstract class Encoding implement
  */
 public String getName(int code)
 {
-   String name = codeToName.get(code);
-   if (name != null)
-   {
-  return name;
-   }
-   return ".notdef";
+return codeToName.getOrDefault(code, ".notdef");
 }
 
 /**




svn commit: r1915940 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/Encoding.java

2024-02-21 Thread lehmi
Author: lehmi
Date: Thu Feb 22 07:03:36 2024
New Revision: 1915940

URL: http://svn.apache.org/viewvc?rev=1915940=rev
Log:
PDFBOX-5660: simplify as proposed by DvonHolten

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/Encoding.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/Encoding.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/Encoding.java?rev=1915940=1915939=1915940=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/Encoding.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/Encoding.java
 Thu Feb 22 07:03:36 2024
@@ -165,12 +165,7 @@ public abstract class Encoding implement
  */
 public String getName(int code)
 {
-   String name = codeToName.get(code);
-   if (name != null)
-   {
-  return name;
-   }
-   return ".notdef";
+return codeToName.getOrDefault(code, ".notdef");
 }
 
 /**




svn commit: r1915939 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java

2024-02-21 Thread lehmi
Author: lehmi
Date: Thu Feb 22 06:55:40 2024
New Revision: 1915939

URL: http://svn.apache.org/viewvc?rev=1915939=rev
Log:
PDFBOX-5773: add missing leading "0" of octal values as pointed out by 
DvonHolten

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java?rev=1915939=1915938=1915939=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java
 Thu Feb 22 06:55:40 2024
@@ -29,22 +29,22 @@ public class MacOSRomanEncoding extends
  * on top of {@link MacRomanEncoding}.
  */
 private static final Object[][] MAC_OS_ROMAN_ENCODING_TABLE = {
-{255, "notequal"},
-{260, "infinity"},
-{262, "lessequal"},
-{263, "greaterequal"},
-{266, "partialdiff"},
-{267, "summation"},
-{270, "product"},
-{271, "pi"},
-{272, "integral"},
-{275, "Omega"},
-{303, "radical"},
-{305, "approxequal"},
-{306, "Delta"},
-{327, "lozenge"},
-{333, "Euro"},
-{360, "apple"}
+{ 0255, "notequal" }, //
+{ 0260, "infinity" }, //
+{ 0262, "lessequal" }, //
+{ 0263, "greaterequal" }, //
+{ 0266, "partialdiff" }, //
+{ 0267, "summation" }, //
+{ 0270, "product" }, //
+{ 0271, "pi" }, //
+{ 0272, "integral" }, //
+{ 0275, "Omega" }, //
+{ 0303, "radical" }, //
+{ 0305, "approxequal" }, //
+{ 0306, "Delta" }, //
+{ 0327, "lozenge" }, //
+{ 0333, "Euro" }, //
+{ 0360, "apple" } 
 };
 
 /**




svn commit: r1915938 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java

2024-02-21 Thread lehmi
Author: lehmi
Date: Thu Feb 22 06:55:23 2024
New Revision: 1915938

URL: http://svn.apache.org/viewvc?rev=1915938=rev
Log:
PDFBOX-5773: add missing leading "0" of octal values as pointed out by 
DvonHolten

Modified:

pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java?rev=1915938=1915937=1915938=diff
==
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java
 Thu Feb 22 06:55:23 2024
@@ -29,22 +29,22 @@ public class MacOSRomanEncoding extends
  * on top of {@link MacRomanEncoding}.
  */
 private static final Object[][] MAC_OS_ROMAN_ENCODING_TABLE = {
-{255, "notequal"},
-{260, "infinity"},
-{262, "lessequal"},
-{263, "greaterequal"},
-{266, "partialdiff"},
-{267, "summation"},
-{270, "product"},
-{271, "pi"},
-{272, "integral"},
-{275, "Omega"},
-{303, "radical"},
-{305, "approxequal"},
-{306, "Delta"},
-{327, "lozenge"},
-{333, "Euro"},
-{360, "apple"}
+{ 0255, "notequal" }, //
+{ 0260, "infinity" }, //
+{ 0262, "lessequal" }, //
+{ 0263, "greaterequal" }, //
+{ 0266, "partialdiff" }, //
+{ 0267, "summation" }, //
+{ 0270, "product" }, //
+{ 0271, "pi" }, //
+{ 0272, "integral" }, //
+{ 0275, "Omega" }, //
+{ 0303, "radical" }, //
+{ 0305, "approxequal" }, //
+{ 0306, "Delta" }, //
+{ 0327, "lozenge" }, //
+{ 0333, "Euro" }, //
+{ 0360, "apple" } 
 };
 
 /**




svn commit: r1915937 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java

2024-02-21 Thread lehmi
Author: lehmi
Date: Thu Feb 22 06:55:10 2024
New Revision: 1915937

URL: http://svn.apache.org/viewvc?rev=1915937=rev
Log:
PDFBOX-5773: add missing leading "0" of octal values as pointed out by 
DvonHolten

Modified:

pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java?rev=1915937=1915936=1915937=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/encoding/MacOSRomanEncoding.java
 Thu Feb 22 06:55:10 2024
@@ -29,22 +29,22 @@ public class MacOSRomanEncoding extends
  * on top of {@link MacRomanEncoding}.
  */
 private static final Object[][] MAC_OS_ROMAN_ENCODING_TABLE = {
-{255, "notequal"},
-{260, "infinity"},
-{262, "lessequal"},
-{263, "greaterequal"},
-{266, "partialdiff"},
-{267, "summation"},
-{270, "product"},
-{271, "pi"},
-{272, "integral"},
-{275, "Omega"},
-{303, "radical"},
-{305, "approxequal"},
-{306, "Delta"},
-{327, "lozenge"},
-{333, "Euro"},
-{360, "apple"}
+{ 0255, "notequal" }, //
+{ 0260, "infinity" }, //
+{ 0262, "lessequal" }, //
+{ 0263, "greaterequal" }, //
+{ 0266, "partialdiff" }, //
+{ 0267, "summation" }, //
+{ 0270, "product" }, //
+{ 0271, "pi" }, //
+{ 0272, "integral" }, //
+{ 0275, "Omega" }, //
+{ 0303, "radical" }, //
+{ 0305, "approxequal" }, //
+{ 0306, "Delta" }, //
+{ 0327, "lozenge" }, //
+{ 0333, "Euro" }, //
+{ 0360, "apple" } 
 };
 
 /**




svn commit: r1915737 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

2024-02-11 Thread lehmi
Author: lehmi
Date: Mon Feb 12 07:39:34 2024
New Revision: 1915737

URL: http://svn.apache.org/viewvc?rev=1915737=rev
Log:
PDFBOX-5660: close input stream

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1915737=1915736=1915737=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
 Mon Feb 12 07:39:34 2024
@@ -860,9 +860,12 @@ public class COSWriter implements ICOSVi
 private void doWriteIncrement() throws IOException
 {
 // write existing PDF
-IOUtils.copy(new RandomAccessInputStream(incrementalInput), 
incrementalOutput);
-// write the actual incremental update
-incrementalOutput.write(((ByteArrayOutputStream) 
output).toByteArray());
+try (RandomAccessInputStream input = new 
RandomAccessInputStream(incrementalInput))
+{
+IOUtils.copy(input, incrementalOutput);
+// write the actual incremental update
+incrementalOutput.write(((ByteArrayOutputStream) 
output).toByteArray());
+}
 }
 
 private void doWriteSignature() throws IOException




svn commit: r1915738 - /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

2024-02-11 Thread lehmi
Author: lehmi
Date: Mon Feb 12 07:39:43 2024
New Revision: 1915738

URL: http://svn.apache.org/viewvc?rev=1915738=rev
Log:
PDFBOX-5660: close input stream

Modified:

pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Modified: 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1915738=1915737=1915738=diff
==
--- 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
 (original)
+++ 
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
 Mon Feb 12 07:39:43 2024
@@ -736,7 +736,9 @@ public class COSWriter implements ICOSVi
 private void doWriteIncrement() throws IOException
 {
 // write existing PDF
-IOUtils.copy(new RandomAccessInputStream(incrementalInput), 
incrementalOutput);
+RandomAccessInputStream input = new 
RandomAccessInputStream(incrementalInput);
+IOUtils.copy(input, incrementalOutput);
+input.close();
 // write the actual incremental update
 incrementalOutput.write(((ByteArrayOutputStream) 
output).toByteArray());
 }




svn commit: r1915736 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

2024-02-11 Thread lehmi
Author: lehmi
Date: Mon Feb 12 07:39:24 2024
New Revision: 1915736

URL: http://svn.apache.org/viewvc?rev=1915736=rev
Log:
PDFBOX-5660: close input stream

Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1915736=1915735=1915736=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java 
Mon Feb 12 07:39:24 2024
@@ -859,10 +859,12 @@ public class COSWriter implements ICOSVi
 private void doWriteIncrement() throws IOException
 {
 // write existing PDF
-InputStream input = new RandomAccessInputStream(incrementalInput);
-input.transferTo(incrementalOutput);
-// write the actual incremental update
-incrementalOutput.write(((ByteArrayOutputStream) 
output).toByteArray());
+try (InputStream input = new RandomAccessInputStream(incrementalInput))
+{
+input.transferTo(incrementalOutput);
+// write the actual incremental update
+incrementalOutput.write(((ByteArrayOutputStream) 
output).toByteArray());
+}
 }
 
 private void doWriteSignature() throws IOException




svn commit: r1915735 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

2024-02-11 Thread lehmi
Author: lehmi
Date: Mon Feb 12 07:25:43 2024
New Revision: 1915735

URL: http://svn.apache.org/viewvc?rev=1915735=rev
Log:
PDFBOX-5714: fix key replacement, avoid NPE

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1915735=1915734=1915735=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
 Mon Feb 12 07:25:43 2024
@@ -1070,39 +1070,37 @@ public class COSWriter implements ICOSVi
  */
 private COSObjectKey getObjectKey( COSBase obj )
 {
-COSBase actual = obj;
-if( actual instanceof COSObject )
+COSObjectKey key = obj.getKey();
+COSBase actual;
+if (obj instanceof COSObject)
 {
 actual = ((COSObject) obj).getObject();
-if (reuseObjectNumbers)
+if (actual == null)
 {
-COSObjectKey key = obj.getKey();
-if (key != null)
-{
-COSObjectKey actualKey = actual != null ? actual.getKey() 
: null;
-// check if the key of the referenced object and the 
indirect object is the same
-if (actualKey != null && !key.equals(actualKey))
-{
-// update the object key of the indirect object
-key = actualKey;
-obj.setKey(key);
-}
-objectKeys.put(obj, key);
-return key;
-}
+objectKeys.put(obj, key);
+return key;
 }
 }
-// PDFBOX-4540: because objectKeys is accessible from outside, it is 
possible
-// that a COSObject obj is already in the objectKeys map.
-COSObjectKey newKey = objectKeys.computeIfAbsent(actual,
+else
+{
+actual = obj;
+}
+COSObjectKey actualKey = objectKeys.computeIfAbsent(actual,
 k -> new COSObjectKey(++number, 0));
-COSObjectKey actualKey = actual.getKey();
-// if the returned key is new update the existing key of the given 
object
-if (actualKey != null && !actualKey.equals(newKey))
+// check if the returned key and the origin key of the given object 
are the same
+if (key == null || (actualKey != null && !key.equals(actualKey)))
 {
-actual.setKey(newKey);
+// update the object key given object/referenced object
+key = actualKey;
+actual.setKey(actualKey);
+if (obj instanceof COSObject)
+{
+// update the object key of the indirect object
+obj.setKey(key);
+objectKeys.put(obj, key);
+}
 }
-return newKey;
+return key;
 }
 
 @Override




svn commit: r1915734 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

2024-02-11 Thread lehmi
Author: lehmi
Date: Mon Feb 12 07:18:50 2024
New Revision: 1915734

URL: http://svn.apache.org/viewvc?rev=1915734=rev
Log:
PDFBOX-5714: remove System.out

Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1915734=1915733=1915734=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java 
Mon Feb 12 07:18:50 2024
@@ -1091,10 +1091,6 @@ public class COSWriter implements ICOSVi
 // check if the returned key and the origin key of the given object 
are the same
 if (key == null || (actualKey != null && !key.equals(actualKey)))
 {
-if (key != null)
-System.out.println("key fixed: " + key + " -> " + actualKey);
-else
-System.out.println("key initialized: " + actualKey);
 // update the object key given object/referenced object
 key = actualKey;
 actual.setKey(actualKey);




svn commit: r1915733 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

2024-02-11 Thread lehmi
Author: lehmi
Date: Mon Feb 12 07:17:44 2024
New Revision: 1915733

URL: http://svn.apache.org/viewvc?rev=1915733=rev
Log:
PDFBOX-5714: fix key replacement, avoid NPE

Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1915733=1915732=1915733=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java 
Mon Feb 12 07:17:44 2024
@@ -1071,39 +1071,41 @@ public class COSWriter implements ICOSVi
  */
 private COSObjectKey getObjectKey( COSBase obj )
 {
-COSBase actual = obj;
-if( actual instanceof COSObject )
+COSObjectKey key = obj.getKey();
+COSBase actual;
+if (obj instanceof COSObject)
 {
 actual = ((COSObject) obj).getObject();
-if (reuseObjectNumbers)
+if (actual == null)
 {
-COSObjectKey key = obj.getKey();
-if (key != null)
-{
-COSObjectKey actualKey = actual != null ? actual.getKey() 
: null;
-// check if the key of the referenced object and the 
indirect object is the same
-if (actualKey != null && !key.equals(actualKey))
-{
-// update the object key of the indirect object
-key = actualKey;
-obj.setKey(key);
-}
-objectKeys.put(obj, key);
-return key;
-}
+objectKeys.put(obj, key);
+return key;
 }
 }
-// PDFBOX-4540: because objectKeys is accessible from outside, it is 
possible
-// that a COSObject obj is already in the objectKeys map.
-COSObjectKey newKey = objectKeys.computeIfAbsent(actual,
+else
+{
+actual = obj;
+}
+COSObjectKey actualKey = objectKeys.computeIfAbsent(actual,
 k -> new COSObjectKey(++number, 0));
-COSObjectKey actualKey = actual.getKey();
-// if the returned key is new update the existing key of the given 
object
-if (actualKey != null && !actualKey.equals(newKey))
+// check if the returned key and the origin key of the given object 
are the same
+if (key == null || (actualKey != null && !key.equals(actualKey)))
 {
-actual.setKey(newKey);
+if (key != null)
+System.out.println("key fixed: " + key + " -> " + actualKey);
+else
+System.out.println("key initialized: " + actualKey);
+// update the object key given object/referenced object
+key = actualKey;
+actual.setKey(actualKey);
+if (obj instanceof COSObject)
+{
+// update the object key of the indirect object
+obj.setKey(key);
+objectKeys.put(obj, key);
+}
 }
-return newKey;
+return key;
 }
 
 @Override




svn commit: r1915676 - in /pdfbox/branches/3.0/io/src: main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java

2024-02-08 Thread lehmi
Author: lehmi
Date: Fri Feb  9 06:45:03 2024
New Revision: 1915676

URL: http://svn.apache.org/viewvc?rev=1915676=rev
Log:
PDFBOX-5764: use limit instead of capacity to initialize the chunksize as 
proposed by David Klika

Modified:

pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java

pdfbox/branches/3.0/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java

Modified: 
pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java?rev=1915676=1915675=1915676=diff
==
--- 
pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java
 (original)
+++ 
pdfbox/branches/3.0/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java
 Fri Feb  9 06:45:03 2024
@@ -90,7 +90,7 @@ public class RandomAccessReadBuffer impl
  */
 public RandomAccessReadBuffer(ByteBuffer input)
 {
-chunkSize = input.capacity();
+chunkSize = input.limit();
 size = chunkSize;
 currentBuffer = input;
 bufferList = new ArrayList<>(1);

Modified: 
pdfbox/branches/3.0/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java?rev=1915676=1915675=1915676=diff
==
--- 
pdfbox/branches/3.0/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java
 (original)
+++ 
pdfbox/branches/3.0/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java
 Fri Feb  9 06:45:03 2024
@@ -28,7 +28,7 @@ import java.io.OutputStream;
 
 import java.net.URI;
 import java.net.URISyntaxException;
-
+import java.nio.ByteBuffer;
 import java.nio.file.Files;
 import java.nio.file.Path;
 
@@ -256,4 +256,24 @@ class RandomAccessReadBufferTest
 }
 }
 
+/**
+ * PDFBOX-5764: constructor has to use the limit of the given buffer as 
chunksize instead of the capacity.
+ * 
+ * @throws IOException
+ */
+@Test
+void testPDFBOX5764() throws IOException
+{
+int bufferSize = 4096;
+int limit = 2048;
+ByteBuffer buffer = ByteBuffer.wrap(new byte[bufferSize]);
+buffer.limit(limit);
+try (RandomAccessRead rar = new RandomAccessReadBuffer(buffer))
+{
+byte[] buf = new byte[bufferSize];
+int bytesRead = rar.read(buf);
+assertEquals(limit, bytesRead);
+}
+}
+
 }




svn commit: r1915675 - in /pdfbox/trunk/io/src: main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java

2024-02-08 Thread lehmi
Author: lehmi
Date: Fri Feb  9 06:44:43 2024
New Revision: 1915675

URL: http://svn.apache.org/viewvc?rev=1915675=rev
Log:
PDFBOX-5764: use limit instead of capacity to initialize the chunksize as 
proposed by David Klika 

Modified:

pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java

pdfbox/trunk/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java

Modified: 
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java?rev=1915675=1915674=1915675=diff
==
--- 
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java 
(original)
+++ 
pdfbox/trunk/io/src/main/java/org/apache/pdfbox/io/RandomAccessReadBuffer.java 
Fri Feb  9 06:44:43 2024
@@ -90,7 +90,7 @@ public class RandomAccessReadBuffer impl
  */
 public RandomAccessReadBuffer(ByteBuffer input)
 {
-chunkSize = input.capacity();
+chunkSize = input.limit();
 size = chunkSize;
 currentBuffer = input;
 bufferList = new ArrayList<>(1);

Modified: 
pdfbox/trunk/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java?rev=1915675=1915674=1915675=diff
==
--- 
pdfbox/trunk/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java
 (original)
+++ 
pdfbox/trunk/io/src/test/java/org/apache/pdfbox/io/RandomAccessReadBufferTest.java
 Fri Feb  9 06:44:43 2024
@@ -28,7 +28,7 @@ import java.io.OutputStream;
 
 import java.net.URI;
 import java.net.URISyntaxException;
-
+import java.nio.ByteBuffer;
 import java.nio.file.Files;
 import java.nio.file.Path;
 
@@ -256,4 +256,24 @@ class RandomAccessReadBufferTest
 }
 }
 
+/**
+ * PDFBOX-5764: constructor has to use the limit of the given buffer as 
chunksize instead of the capacity.
+ * 
+ * @throws IOException
+ */
+@Test
+void testPDFBOX5764() throws IOException
+{
+int bufferSize = 4096;
+int limit = 2048;
+ByteBuffer buffer = ByteBuffer.wrap(new byte[bufferSize]);
+buffer.limit(limit);
+try (RandomAccessRead rar = new RandomAccessReadBuffer(buffer))
+{
+byte[] buf = new byte[bufferSize];
+int bytesRead = rar.read(buf);
+assertEquals(limit, bytesRead);
+}
+}
+
 }




svn commit: r1915421 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

2024-01-27 Thread lehmi
Author: lehmi
Date: Sat Jan 27 10:42:47 2024
New Revision: 1915421

URL: http://svn.apache.org/viewvc?rev=1915421=rev
Log:
PDFBOX-5714: update key of indirect objects if the key of the referenced object 
was replaced

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1915421=1915420=1915421=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
 Sat Jan 27 10:42:47 2024
@@ -1073,20 +1073,36 @@ public class COSWriter implements ICOSVi
 COSBase actual = obj;
 if( actual instanceof COSObject )
 {
+actual = ((COSObject) obj).getObject();
 if (reuseObjectNumbers)
 {
 COSObjectKey key = obj.getKey();
 if (key != null)
 {
+COSObjectKey actualKey = actual != null ? actual.getKey() 
: null;
+// check if the key of the referenced object and the 
indirect object is the same
+if (actualKey != null && !key.equals(actualKey))
+{
+// update the object key of the indirect object
+key = actualKey;
+obj.setKey(key);
+}
 objectKeys.put(obj, key);
 return key;
 }
 }
-actual = ((COSObject) obj).getObject();
 }
 // PDFBOX-4540: because objectKeys is accessible from outside, it is 
possible
 // that a COSObject obj is already in the objectKeys map.
-return objectKeys.computeIfAbsent(actual, k -> new 
COSObjectKey(++number, 0));
+COSObjectKey newKey = objectKeys.computeIfAbsent(actual,
+k -> new COSObjectKey(++number, 0));
+COSObjectKey actualKey = actual.getKey();
+// if the returned key is new update the existing key of the given 
object
+if (actualKey != null && !actualKey.equals(newKey))
+{
+actual.setKey(newKey);
+}
+return newKey;
 }
 
 @Override




svn commit: r1915420 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

2024-01-27 Thread lehmi
Author: lehmi
Date: Sat Jan 27 10:42:31 2024
New Revision: 1915420

URL: http://svn.apache.org/viewvc?rev=1915420=rev
Log:
PDFBOX-5714: update key of indirect objects if the key of the referenced object 
was replaced

Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1915420=1915419=1915420=diff
==
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java 
Sat Jan 27 10:42:31 2024
@@ -1074,20 +1074,36 @@ public class COSWriter implements ICOSVi
 COSBase actual = obj;
 if( actual instanceof COSObject )
 {
+actual = ((COSObject) obj).getObject();
 if (reuseObjectNumbers)
 {
 COSObjectKey key = obj.getKey();
 if (key != null)
 {
+COSObjectKey actualKey = actual != null ? actual.getKey() 
: null;
+// check if the key of the referenced object and the 
indirect object is the same
+if (actualKey != null && !key.equals(actualKey))
+{
+// update the object key of the indirect object
+key = actualKey;
+obj.setKey(key);
+}
 objectKeys.put(obj, key);
 return key;
 }
 }
-actual = ((COSObject) obj).getObject();
 }
 // PDFBOX-4540: because objectKeys is accessible from outside, it is 
possible
 // that a COSObject obj is already in the objectKeys map.
-return objectKeys.computeIfAbsent(actual, k -> new 
COSObjectKey(++number, 0));
+COSObjectKey newKey = objectKeys.computeIfAbsent(actual,
+k -> new COSObjectKey(++number, 0));
+COSObjectKey actualKey = actual.getKey();
+// if the returned key is new update the existing key of the given 
object
+if (actualKey != null && !actualKey.equals(newKey))
+{
+actual.setKey(newKey);
+}
+return newKey;
 }
 
 @Override




svn commit: r1915352 - /pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFontFactory.java

2024-01-21 Thread lehmi
Author: lehmi
Date: Sun Jan 21 16:05:13 2024
New Revision: 1915352

URL: http://svn.apache.org/viewvc?rev=1915352=rev
Log:
PDFBOX-5704: detect and fix wrong CID font subtype inspired by the 
implementation of pdf.js as proposed by Mike Li on dev@

Modified:

pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFontFactory.java

Modified: 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFontFactory.java
URL: 
http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFontFactory.java?rev=1915352=1915351=1915352=diff
==
--- 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFontFactory.java
 (original)
+++ 
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDFontFactory.java
 Sun Jan 21 16:05:13 2024
@@ -17,9 +17,16 @@
 package org.apache.pdfbox.pdmodel.font;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
+import java.util.List;
 
+import org.apache.pdfbox.cos.COSArray;
+import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.cos.COSStream;
+import org.apache.pdfbox.io.RandomAccessRead;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.pdfbox.pdmodel.ResourceCache;
@@ -32,6 +39,12 @@ public final class PDFontFactory
 {
 private static final Log LOG = LogFactory.getLog(PDFontFactory.class);
 
+private static final String FONT_TYPE1C = "Type1C";
+private static final String FONT_OPEN_TYPE = "OTTO";
+private static final String FONT_TTF_COLLECTION = "ttcf";
+private static final String FONT_TRUE_TYPE = "true";
+private static final byte[] TTF_HEADER = new byte[] { 0, 1, 0, 0 };
+
 private PDFontFactory()
 {
 }
@@ -48,6 +61,58 @@ public final class PDFontFactory
 return createFont(dictionary, null);
 }
 
+private static class FontType
+{
+private static final List cidType0Types //
+= Arrays.asList(COSName.TYPE1.getName(), FONT_TYPE1C);
+private static final List cidType2Types //
+= Arrays.asList(COSName.TRUE_TYPE.getName(), 
COSName.OPEN_TYPE.getName());
+private final COSName type;
+private final COSName subtype;
+
+public FontType(COSName type, String subtypeString)
+{
+this.type = type;
+if (cidType0Types.contains(subtypeString))
+{
+subtype = COSName.CID_FONT_TYPE0;
+}
+else if (cidType2Types.contains(subtypeString))
+{
+subtype = COSName.CID_FONT_TYPE2;
+}
+else
+{
+subtype = null;
+}
+}
+
+public FontType(COSName type, COSName subtype)
+{
+this.type = type;
+this.subtype = subtype;
+}
+
+public FontType(COSName type)
+{
+this(type, (COSName) null);
+}
+
+public COSName getSubtype()
+{
+return subtype;
+}
+
+public boolean isCIDSubtype(COSName cidSubtype)
+{
+if (!COSName.TYPE0.equals(type))
+{
+return false;
+}
+return subtype != null && subtype.equals(cidSubtype);
+}
+}
+
 /**
  * Creates a new PDFont instance with the appropriate subclass.
  *
@@ -93,6 +158,18 @@ public final class PDFontFactory
 }
 else if (COSName.TYPE0.equals(subType))
 {
+COSDictionary fontDescriptor = getFontDescriptor(dictionary);
+FontType fontTypeFromFont = getFontTypeFromFont(fontDescriptor, 
subType);
+if (fontTypeFromFont != null)
+{
+COSDictionary descendantFont = getDescendantFont(dictionary);
+COSName descFontType = descendantFont != null
+? descendantFont.getCOSName(COSName.SUBTYPE) : null;
+if (descFontType != null && 
!fontTypeFromFont.isCIDSubtype(descFontType))
+{
+fixType0Subtype(descendantFont, fontDescriptor, 
fontTypeFromFont.getSubtype());
+}
+}
 return new PDType0Font(dictionary);
 }
 else if (COSName.CID_FONT_TYPE0.equals(subType))
@@ -112,6 +189,172 @@ public final class PDFontFactory
 }
 }
 
+private static void fixType0Subtype(COSDictionary descendantFont, 
COSDictionary fontDescriptor,
+COSName newSubType)
+{
+LOG.warn("Try to fix different descendant font types for font "
++ fontDescriptor.getNameAsString(COSName.

  1   2   3   4   5   6   7   8   9   10   >