Author: tilman
Date: Sun Feb 23 05:40:06 2025
New Revision: 1923992
URL: http://svn.apache.org/viewvc?rev=1923992&view=rev
Log:
PDFBOX-5961: support 3 / 4 byte input values
Modified:
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMap.java
Modified:
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMap.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMap.java?rev=1923992&r1=1923991&r2=1923992&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMap.java
(original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMap.java
Sun Feb 23 05:40:06 2025
@@ -197,8 +197,16 @@ public class CMap
*/
void addCharMapping(byte[] codes, String unicode)
{
- unicodeToByteCodes.put(unicode, CMapStrings.getByteValue(codes));
- charToUnicode.put(CMapStrings.getIndexValue(codes), unicode);
+ if (codes.length <= 2)
+ {
+ unicodeToByteCodes.put(unicode, CMapStrings.getByteValue(codes));
+ charToUnicode.put(CMapStrings.getIndexValue(codes), unicode);
+ }
+ else
+ {
+ unicodeToByteCodes.put(unicode, codes.clone());
+ charToUnicode.put(toInt(codes, codes.length), unicode);
+ }
// fixme: ugly little hack
if (SPACE.equals(unicode))
{