org.apache.fop.pdf

## Class PDFText

- java.lang.Object
- - org.apache.fop.pdf.PDFObject
  - - org.apache.fop.pdf.PDFText

- All Implemented Interfaces:
    PDFWritable

      public class PDFText
      extends PDFObject

  This class represents a simple number object. It also contains contains some utility methods for outputting numbers to PDF.

- - ### Field Summary

    - ### Fields inherited from class org.apache.fop.pdf.PDFObject

      `log`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PDFText()`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static byte[]` | `escapeByteArray(byte[] data)` Escape a byte array for output to PDF (Used for encrypted strings)
    `static String` | `escapeString(String s)` Escaped a String as described in section 4.4 in the PDF 1.3 specs.
    `static void` | `escapeStringChar(char c, StringBuffer target)` Escapes a character conforming to the rules established in the PostScript Language Reference (Search for "Literal Text Strings").
    `static String` | `escapeText(String text)` Escape text (see 4.4.1 in PDF 1.3 specs)
    `static String` | `escapeText(String text, boolean forceHexMode)` Escape text (see 4.4.1 in PDF 1.3 specs)
    `String` | `getText()` Returns the text.
    `void` | `setText(String text)` Sets the text.
    `static String` | `toHex(byte[] data)` Converts a byte array to a Hexadecimal String (3.2.3 in PDF 1.4 specs)
    `static String` | `toHex(byte[] data, boolean brackets)` Converts a byte array to a Hexadecimal String (3.2.3 in PDF 1.4 specs)
    `protected String` | `toPDFString()` This method returns a String representation of the PDF object.
    `static String` | `toPDFString(CharSequence text)` Converts a text to PDF's "string" data type.
    `static String` | `toPDFString(CharSequence text, char replacement)` Converts a text to PDF's "string" data type.
    `static String` | `toUnicodeHex(char c)` Convert a char to a multibyte hex representation
    `static void` | `toUnicodeHex(int c, StringBuffer sb)` Convert a char to a multibyte hex representation appending to string buffer.
    `static byte[]` | `toUTF16(String text)` Converts a String to UTF-16 (big endian).

    - ### Methods inherited from class org.apache.fop.pdf.PDFObject

      `contentEquals, encode, encodeBinaryToHexString, encodeString, encodeText, formatObject, getChildren, getDocument, getDocumentSafely, getGeneration, getObjectID, getObjectNumber, getParent, hasObjectNumber, makeReference, output, outputInline, referencePDF, setDocument, setObjectNumber, setObjectNumber, setObjectNumber, setParent, supportsObjectStream, toPDF`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PDFText

          public PDFText()

  - ### Method Detail

    - #### getText

          public String getText()

      Returns the text.
      Returns:
        the text

    - #### setText

          public void setText(String text)

      Sets the text.
      Parameters:
        `text` - the text

    - #### toPDFString

          protected String toPDFString()

      This method returns a String representation of the PDF object. The result is normally converted/encoded to a byte array by toPDF(). Only use this method to implement the serialization if the object can be fully represented as text. If the PDF representation of the object contains binary content use toPDF() or output(OutputStream) instead. This applies to any object potentially containing a string object because string object are encrypted and therefore need to be binary.
      Overrides:
        `toPDFString` in class `PDFObject`
      Returns:
        String the String representation

    - #### escapeText

          public static final String escapeText(String text)

      Escape text (see 4.4.1 in PDF 1.3 specs)
      Parameters:
        `text` - the text to encode
      Returns:
        encoded text

    - #### escapeText

          public static final String escapeText(String text,
                                                boolean forceHexMode)

      Escape text (see 4.4.1 in PDF 1.3 specs)
      Parameters:
        `text` - the text to encode
        `forceHexMode` - true if the output should follow the hex encoding rules
      Returns:
        encoded text

    - #### toHex

          public static final String toHex(byte[] data,
                                           boolean brackets)

      Converts a byte array to a Hexadecimal String (3.2.3 in PDF 1.4 specs)
      Parameters:
        `data` - the data to encode
        `brackets` - true if enclosing brackets should be included
      Returns:
        String the resulting string

    - #### toHex

          public static final String toHex(byte[] data)

      Converts a byte array to a Hexadecimal String (3.2.3 in PDF 1.4 specs)
      Parameters:
        `data` - the data to encode
      Returns:
        String the resulting string

    - #### toUTF16

          public static final byte[] toUTF16(String text)

      Converts a String to UTF-16 (big endian).
      Parameters:
        `text` - text to convert
      Returns:
        byte[] UTF-16 stream

    - #### toUnicodeHex

          public static final String toUnicodeHex(char c)

      Convert a char to a multibyte hex representation
      Parameters:
        `c` - character to encode
      Returns:
        the encoded character

    - #### toUnicodeHex

          public static final void toUnicodeHex(int c,
                                                StringBuffer sb)

      Convert a char to a multibyte hex representation appending to string buffer. The created string will be:
      - 4-character string in case of non-BMP character
      - 6-character string in case of BMP character
      Parameters:
        `c` - character to encode
        `sb` - the string buffer to append output

    - #### escapeString

          public static final String escapeString(String s)

      Escaped a String as described in section 4.4 in the PDF 1.3 specs.
      Parameters:
        `s` - String to escape
      Returns:
        String the escaped String

    - #### escapeStringChar

          public static final void escapeStringChar(char c,
                                                    StringBuffer target)

      Escapes a character conforming to the rules established in the PostScript Language Reference (Search for "Literal Text Strings").
      Parameters:
        `c` - character to escape
        `target` - target StringBuffer to write the escaped character to

    - #### escapeByteArray

          public static final byte[] escapeByteArray(byte[] data)

      Escape a byte array for output to PDF (Used for encrypted strings)
      Parameters:
        `data` - data to encode
      Returns:
        byte[] encoded data

    - #### toPDFString

          public static String toPDFString(CharSequence text)

      Converts a text to PDF's "string" data type. Unsupported characters get converted to '?' characters (similar to what the Java "US-ASCII" encoding does).
      Parameters:
        `text` - the text to convert
      Returns:
        the converted string
      See Also:
        `toPDFString(CharSequence, char)`

    - #### toPDFString

          public static String toPDFString(CharSequence text,
                                           char replacement)

      Converts a text to PDF's "string" data type. Unsupported characters get converted to the given replacement character.

      The PDF library currently doesn't properly distinguish between the PDF data types "string" and "text string", so we currently restrict "string" to US-ASCII, also because "string" seems somewhat under-specified concerning the upper 128 bytes.

      Parameters:
        `text` - the text to convert
        `replacement` - the replacement character used when substituting a character
      Returns:
        the converted string

Copyright © 2025 Apache Software Foundation. All rights reserved.