org.apache.fop.pdf

## Class PDFMetadata

- java.lang.Object
- - org.apache.fop.pdf.PDFObject
  - - org.apache.fop.pdf.AbstractPDFStream
    - - org.apache.fop.pdf.PDFStream
      - - org.apache.fop.pdf.PDFMetadata

- All Implemented Interfaces:
    PDFWritable

      public class PDFMetadata
      extends PDFStream

  Special PDFStream for Metadata.
  Since:
    PDF 1.4

- - ### Field Summary

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

      `data`

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

      `log`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PDFMetadata(org.apache.xmlgraphics.xmp.Metadata xmp, boolean readOnly)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static org.apache.xmlgraphics.xmp.Metadata` | `createXMPFromPDFDocument(PDFDocument pdfDoc)` Creates an XMP document based on the settings on the PDF Document.
    `protected String` | `getDefaultFilterName()` Returns the name of a suitable filter for this PDF object.
    `org.apache.xmlgraphics.xmp.Metadata` | `getMetadata()`
    `int` | `output(OutputStream stream)` overload the base object method so we don't have to copy byte arrays around so much Overload the base object method so we don't have to copy byte arrays around so much Write the PDF represention of this object
    `protected void` | `outputRawStreamData(OutputStream out)` Sends the raw stream data to the target OutputStream.
    `protected void` | `populateStreamDict(Object lengthEntry)` Populates the dictionary with all necessary entries for the stream.
    `static void` | `updateInfoFromMetadata(org.apache.xmlgraphics.xmp.Metadata meta, PDFInfo info)` Updates the values in the Info object from the XMP metadata according to the rules defined in PDF/A-1 (ISO 19005-1:2005)

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

      `add, add, getBufferOutputStream, getBufferWriter, getDataLength, getSizeHint, setData, streamHashCode`

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

      `encodeAndWriteStream, encodeStream, get, getChildren, getDictionary, getFilterList, multipleFiltersAllowed, outputStreamData, prepareImplicitFilters, put, registerChildren, setDocument, setupFilterList, supportsObjectStream`

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

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

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

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

- - ### Constructor Detail

    - #### PDFMetadata

          public PDFMetadata(org.apache.xmlgraphics.xmp.Metadata xmp,
                             boolean readOnly)

      Parameters:
        `xmp` - xmp metadata
        `readOnly` - true if read only
      See Also:
        `PDFObject.PDFObject()`

  - ### Method Detail

    - #### getDefaultFilterName

          protected String getDefaultFilterName()

      Returns the name of a suitable filter for this PDF object.
      Overrides:
        `getDefaultFilterName` in class `AbstractPDFStream`
      Returns:
        the default filter
      See Also:
        `PDFFilterList`

    - #### getMetadata

          public org.apache.xmlgraphics.xmp.Metadata getMetadata()

      Returns:
        the XMP metadata

    - #### output

          public int output(OutputStream stream)
                     throws IOException

      overload the base object method so we don't have to copy byte arrays around so much Overload the base object method so we don't have to copy byte arrays around so much Write the PDF represention of this object
      Overrides:
        `output` in class `PDFStream`
      Parameters:
        `stream` - the stream to write the PDF to
      Returns:
        the number of bytes written
      Throws:
        `IOException` - if there is an error writing to the stream

    - #### outputRawStreamData

          protected void outputRawStreamData(OutputStream out)
                                      throws IOException

      Sends the raw stream data to the target OutputStream.
      Overrides:
        `outputRawStreamData` in class `PDFStream`
      Parameters:
        `out` - OutputStream to write to
      Throws:
        `IOException` - In case of an I/O problem

    - #### populateStreamDict

          protected void populateStreamDict(Object lengthEntry)

      Populates the dictionary with all necessary entries for the stream. Override this method if you need additional entries.
      Overrides:
        `populateStreamDict` in class `AbstractPDFStream`
      Parameters:
        `lengthEntry` - value for the /Length entry

    - #### createXMPFromPDFDocument

          public static org.apache.xmlgraphics.xmp.Metadata createXMPFromPDFDocument(PDFDocument pdfDoc)

      Creates an XMP document based on the settings on the PDF Document.
      Parameters:
        `pdfDoc` - the PDF Document
      Returns:
        the requested XMP metadata

    - #### updateInfoFromMetadata

          public static void updateInfoFromMetadata(org.apache.xmlgraphics.xmp.Metadata meta,
                                                    PDFInfo info)

      Updates the values in the Info object from the XMP metadata according to the rules defined in PDF/A-1 (ISO 19005-1:2005)
      Parameters:
        `meta` - the metadata
        `info` - the Info object

Copyright © 2025 Apache Software Foundation. All rights reserved.