protected String toUnicodeString(String value, boolean isHexWriting) { byte[] bytes = decodeStringToByte(value); if (isHexWriting) { return PdfEncodings.convertToString(bytes, PdfEncodings.UNICODE_BIG_UNMARKED); } else { if (bytes.length >= 2 && bytes[0] == (byte)0xfe && bytes[1] == (byte)0xff) { return PdfEncodings.convertToString(bytes, PdfEncodings.UNICODE_BIG); } else { return PdfEncodings.convertToString(bytes, PdfEncodings.PDF_DOC_ENCODING); } } }
protected String toUnicodeString(String value, boolean isHexWriting) { byte[] bytes = decodeStringToByte(value); if (isHexWriting) { return PdfEncodings.convertToString(bytes, PdfEncodings.UNICODE_BIG_UNMARKED); } else { if (bytes.length >= 2 && bytes[0] == (byte)0xfe && bytes[1] == (byte)0xff) { return PdfEncodings.convertToString(bytes, PdfEncodings.UNICODE_BIG); } else { return PdfEncodings.convertToString(bytes, PdfEncodings.PDF_DOC_ENCODING); } } }
protected void generateValue() { assert content != null : "No byte[] content to generate value"; value = PdfEncodings.convertToString(decodeContent(), null); if (decryption != null) { decryption = null; content = null; } }
/** * Returns the Unicode {@code String} value of this * {@code PdfString}-object. */ public String toUnicodeString() { if (encoding != null && encoding.length() != 0) { return getValue(); } if (content == null) { generateContent(); } byte[] b = decodeContent(); if (b.length >= 2 && b[0] == (byte) 0xFE && b[1] == (byte) 0xFF) { return PdfEncodings.convertToString(b, PdfEncodings.UNICODE_BIG); } else if (b.length >= 3 && b[0] == (byte)0xEF && b[1] == (byte)0xBB && b[2] == (byte)0xBF) { return PdfEncodings.convertToString(b, PdfEncodings.UTF8); } else { return PdfEncodings.convertToString(b, PdfEncodings.PDF_DOC_ENCODING); } }
private static void indexedModel(byte[] bdata, int bpc, int paletteEntries, BmpParameters bmp) { RawImageHelper.updateRawImageParameters(bmp.image, bmp.width, bmp.height, 1, bpc, bdata); Object[] colorSpace = new Object[4]; colorSpace[0] = "/Indexed"; colorSpace[1] = "/DeviceRGB"; byte[] np = getPalette(paletteEntries, bmp); int len = np.length; colorSpace[2] = len / 3 - 1; colorSpace[3] = PdfEncodings.convertToString(np, null); bmp.additional = new HashMap<>(); bmp.additional.put("ColorSpace", colorSpace); }
private static void indexedModel(byte[] bdata, int bpc, int paletteEntries, BmpParameters bmp) { RawImageHelper.updateRawImageParameters(bmp.image, bmp.width, bmp.height, 1, bpc, bdata); Object[] colorSpace = new Object[4]; colorSpace[0] = "/Indexed"; colorSpace[1] = "/DeviceRGB"; byte[] np = getPalette(paletteEntries, bmp); int len = np.length; colorSpace[2] = len / 3 - 1; colorSpace[3] = PdfEncodings.convertToString(np, null); bmp.additional = new HashMap<>(); bmp.additional.put("ColorSpace", colorSpace); }
public static String decodeCMapObject(CMapObject cMapObject) { if (cMapObject.isHexString()) { return PdfEncodings.convertToString(((String) cMapObject.getValue()).getBytes(), PdfEncodings.UNICODE_BIG_UNMARKED); } else { return (String) cMapObject.getValue(); } } }
/** * Converts an array of bytes to a String of hexadecimal values * * @param bytes a byte array * @return the same bytes expressed as hexadecimal values */ public static String convertToHex(byte[] bytes) { ByteBuffer buf = new ByteBuffer(); for (byte b : bytes) { buf.appendHex(b); } return PdfEncodings.convertToString(buf.toByteArray(), null).toUpperCase(); } }
public static String decodeCMapObject(CMapObject cMapObject) { if (cMapObject.isHexString()) { return PdfEncodings.convertToString(((String) cMapObject.getValue()).getBytes(), PdfEncodings.UNICODE_BIG_UNMARKED); } else { return (String) cMapObject.getValue(); } } }
/** * Converts an array of bytes to a String of hexadecimal values * * @param bytes a byte array * @return the same bytes expressed as hexadecimal values */ public static String convertToHex(byte[] bytes) { ByteBuffer buf = new ByteBuffer(); for (byte b : bytes) { buf.appendHex(b); } return PdfEncodings.convertToString(buf.toByteArray(), null).toUpperCase(); } }
protected void fillNamedEncoding() { PdfEncodings.convertToBytes(" ", baseEncoding); // check if the encoding exists boolean stdEncoding = PdfEncodings.WINANSI.equals(baseEncoding) || PdfEncodings.MACROMAN.equals(baseEncoding); if (!stdEncoding && differences == null) { differences = new String[256]; } byte[] b = new byte[256]; for (int k = 0; k < 256; ++k) { b[k] = (byte) k; } String str = PdfEncodings.convertToString(b, baseEncoding); char[] encoded = str.toCharArray(); for (int ch = 0; ch < 256; ++ch) { char uni = encoded[ch]; String name = AdobeGlyphList.unicodeToName(uni); if (name == null) { name = NOTDEF; } else { unicodeToCode.put(uni, ch); codeToUnicode[ch] = (int) uni; unicodeDifferences.put(uni, uni); } if (differences != null) { differences[ch] = name; } } }
protected void fillNamedEncoding() { PdfEncodings.convertToBytes(" ", baseEncoding); // check if the encoding exists boolean stdEncoding = PdfEncodings.WINANSI.equals(baseEncoding) || PdfEncodings.MACROMAN.equals(baseEncoding); if (!stdEncoding && differences == null) { differences = new String[256]; } byte[] b = new byte[256]; for (int k = 0; k < 256; ++k) { b[k] = (byte) k; } String str = PdfEncodings.convertToString(b, baseEncoding); char[] encoded = str.toCharArray(); for (int ch = 0; ch < 256; ++ch) { char uni = encoded[ch]; String name = AdobeGlyphList.unicodeToName(uni); if (name == null) { name = NOTDEF; } else { unicodeToCode.put(uni, ch); codeToUnicode[ch] = (int) uni; unicodeDifferences.put(uni, uni); } if (differences != null) { differences[ch] = name; } } }
PdfType0Font(TrueTypeFont ttf, String cmap) { super(); if (!cmap.equals(PdfEncodings.IDENTITY_H) && !cmap.equals(PdfEncodings.IDENTITY_V)) { throw new PdfException(PdfException.OnlyIdentityCMapsSupportsWithTrueType); } if (!ttf.getFontNames().allowEmbedding()) { throw new PdfException(PdfException.CannotBeEmbeddedDueToLicensingRestrictions) .setMessageParams(ttf.getFontNames().getFontName() + ttf.getFontNames().getStyle()); } this.fontProgram = ttf; this.embedded = true; vertical = cmap.endsWith("V"); cmapEncoding = new CMapEncoding(cmap); longTag = new HashSet<>(); cidFontType = CID_FONT_TYPE_2; if (ttf.isFontSpecific()) { specificUnicodeDifferences = new char[256]; byte[] bytes = new byte[1]; for (int k = 0; k < 256; ++k) { bytes[0] = (byte) k; String s = PdfEncodings.convertToString(bytes, null); char ch = s.length() > 0 ? s.charAt(0) : '?'; specificUnicodeDifferences[k] = ch; } } }
colorspace[3] = PdfEncodings.convertToString(png.colorTable, null); png.additional.put("ColorSpace", colorspace); } else {
colorspace[3] = PdfEncodings.convertToString(png.colorTable, null); png.additional.put("ColorSpace", colorspace); } else {
int len = gif.m_curr_table.length; colorspace[2] = len / 3 - 1; colorspace[3] = PdfEncodings.convertToString(gif.m_curr_table, null); Map<String, Object> ad = new HashMap<>(); ad.put("ColorSpace", colorspace);
int len = gif.m_curr_table.length; colorspace[2] = len / 3 - 1; colorspace[3] = PdfEncodings.convertToString(gif.m_curr_table, null); Map<String, Object> ad = new HashMap<>(); ad.put("ColorSpace", colorspace);
void addRange(String from, String to, CMapObject code) { byte[] a1 = decodeStringToByte(from); byte[] a2 = decodeStringToByte(to); if (a1.length != a2.length || a1.length == 0) { throw new IllegalArgumentException("Invalid map."); } byte[] sout = null; if (code.isString()) { sout = decodeStringToByte(code.toString()); } int start = byteArrayToInt(a1); int end = byteArrayToInt(a2); for (int k = start; k <= end; ++k) { intToByteArray(k, a1); String mark = PdfEncodings.convertToString(a1, null); if (code.isArray()) { List<CMapObject> codes = (ArrayList<CMapObject>) code.getValue(); addChar(mark, codes.get(k - start)); } else if (code.isNumber()) { int nn = (int)code.getValue() + k - start; addChar(mark, new CMapObject(CMapObject.NUMBER, nn)); } else if (code.isString()) { CMapObject s1 = new CMapObject(CMapObject.HEX_STRING, sout); addChar(mark, s1); assert sout != null; intToByteArray(byteArrayToInt(sout) + 1, sout); } } }
void addRange(String from, String to, CMapObject code) { byte[] a1 = decodeStringToByte(from); byte[] a2 = decodeStringToByte(to); if (a1.length != a2.length || a1.length == 0) { throw new IllegalArgumentException("Invalid map."); } byte[] sout = null; if (code.isString()) { sout = decodeStringToByte(code.toString()); } int start = byteArrayToInt(a1); int end = byteArrayToInt(a2); for (int k = start; k <= end; ++k) { intToByteArray(k, a1); String mark = PdfEncodings.convertToString(a1, null); if (code.isArray()) { List<CMapObject> codes = (ArrayList<CMapObject>) code.getValue(); addChar(mark, codes.get(k - start)); } else if (code.isNumber()) { int nn = (int)code.getValue() + k - start; addChar(mark, new CMapObject(CMapObject.NUMBER, nn)); } else if (code.isString()) { CMapObject s1 = new CMapObject(CMapObject.HEX_STRING, sout); addChar(mark, s1); assert sout != null; intToByteArray(byteArrayToInt(sout) + 1, sout); } } }
indexed[1] = "/DeviceRGB"; indexed[2] = gColor - 1; indexed[3] = PdfEncodings.convertToString(palette, null); tiff.additional = new HashMap<>(); tiff.additional.put("ColorSpace", indexed);