iText 5 itextpdf.jar Source Code

itextpdf.jar is a component in iText 5 Java library to provide core functionalities. iText Java library allows you to generate and manage PDF documents.

The Source Code files are provided at iText GitHub site.

You can compile it to generate your JAR file, using pom.xml as the build configuration file.

The source code of itextpdf-5.5.14.jar is provided below:

✍: FYIcenter.com

com/itextpdf/xmp/XMPMetaFactory.java

//Copyright (c) 2006, Adobe Systems Incorporated
//All rights reserved.
//
//        Redistribution and use in source and binary forms, with or without
//        modification, are permitted provided that the following conditions are met:
//        1. Redistributions of source code must retain the above copyright
//        notice, this list of conditions and the following disclaimer.
//        2. Redistributions in binary form must reproduce the above copyright
//        notice, this list of conditions and the following disclaimer in the
//        documentation and/or other materials provided with the distribution.
//        3. All advertising materials mentioning features or use of this software
//        must display the following acknowledgement:
//        This product includes software developed by the Adobe Systems Incorporated.
//        4. Neither the name of the Adobe Systems Incorporated nor the
//        names of its contributors may be used to endorse or promote products
//        derived from this software without specific prior written permission.
//
//        THIS SOFTWARE IS PROVIDED BY ADOBE SYSTEMS INCORPORATED ''AS IS'' AND ANY
//        EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
//        WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
//        DISCLAIMED. IN NO EVENT SHALL ADOBE SYSTEMS INCORPORATED BE LIABLE FOR ANY
//        DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
//        (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
//        LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
//        ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
//        (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
//        SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//        http://www.adobe.com/devnet/xmp/library/eula-xmp-library-java.html

package com.itextpdf.xmp;

import com.itextpdf.xmp.impl.XMPMetaImpl;
import com.itextpdf.xmp.impl.XMPMetaParser;
import com.itextpdf.xmp.impl.XMPSchemaRegistryImpl;
import com.itextpdf.xmp.impl.XMPSerializerHelper;
import com.itextpdf.xmp.options.ParseOptions;
import com.itextpdf.xmp.options.SerializeOptions;

import java.io.InputStream;
import java.io.OutputStream;


/**
 * Creates <code>XMPMeta</code>-instances from an <code>InputStream</code>
 *
 * @since 30.01.2006
 */
public final class XMPMetaFactory {
    /**
     * The singleton instance of the <code>XMPSchemaRegistry</code>.
     */
    private static XMPSchemaRegistry schema = new XMPSchemaRegistryImpl();
    /**
     * cache for version info
     */
    private static XMPVersionInfo versionInfo = null;

    /**
     * Hides public constructor
     */
    private XMPMetaFactory() {
        // EMPTY
    }

    /**
     * @return Returns the singleton instance of the <code>XMPSchemaRegistry</code>.
     */
    public static XMPSchemaRegistry getSchemaRegistry() {
        return schema;
    }

    /**
     * @return Returns an empty <code>XMPMeta</code>-object.
     */
    public static XMPMeta create() {
        return new XMPMetaImpl();
    }

    /**
     * Parsing with default options.
     *
     * @param in an <code>InputStream</code>
     * @return Returns the <code>XMPMeta</code>-object created from the input.
     * @throws XMPException If the file is not well-formed XML or if the parsing fails.
     * @see XMPMetaFactory#parse(InputStream, ParseOptions)
     */
    public static XMPMeta parse(InputStream in) throws XMPException {
        return parse(in, null);
    }

    /**
     * These functions support parsing serialized RDF into an XMP object, and serailizing an XMP
     * object into RDF. The input for parsing may be any valid Unicode
     * encoding. ISO Latin-1 is also recognized, but its use is strongly discouraged. Serialization
     * is always as UTF-8.
     * <p/>
     * <code>parseFromBuffer()</code> parses RDF from an <code>InputStream</code>. The encoding
     * is recognized automatically.
     *
     * @param in      an <code>InputStream</code>
     * @param options Options controlling the parsing.<br>
     *                The available options are:
     *                <ul>
     *                <li> XMP_REQUIRE_XMPMETA - The &lt;x:xmpmeta&gt; XML element is required around
     *                <tt>&lt;rdf:RDF&gt;</tt>.
     *                <li> XMP_STRICT_ALIASING - Do not reconcile alias differences, throw an exception.
     *                </ul>
     *                <em>Note:</em>The XMP_STRICT_ALIASING option is not yet implemented.
     * @return Returns the <code>XMPMeta</code>-object created from the input.
     * @throws XMPException If the file is not well-formed XML or if the parsing fails.
     */
    public static XMPMeta parse(InputStream in, ParseOptions options)
            throws XMPException {
        return XMPMetaParser.parse(in, options);
    }

    /**
     * Parsing with default options.
     *
     * @param packet a String contain an XMP-file.
     * @return Returns the <code>XMPMeta</code>-object created from the input.
     * @throws XMPException If the file is not well-formed XML or if the parsing fails.
     * @see XMPMetaFactory#parse(InputStream)
     */
    public static XMPMeta parseFromString(String packet) throws XMPException {
        return parseFromString(packet, null);
    }

    /**
     * Creates an <code>XMPMeta</code>-object from a string.
     *
     * @param packet  a String contain an XMP-file.
     * @param options Options controlling the parsing.
     * @return Returns the <code>XMPMeta</code>-object created from the input.
     * @throws XMPException If the file is not well-formed XML or if the parsing fails.
     * @see XMPMetaFactory#parseFromString(String, ParseOptions)
     */
    public static XMPMeta parseFromString(String packet, ParseOptions options)
            throws XMPException {
        return XMPMetaParser.parse(packet, options);
    }

    /**
     * Parsing with default options.
     *
     * @param buffer a String contain an XMP-file.
     * @return Returns the <code>XMPMeta</code>-object created from the input.
     * @throws XMPException If the file is not well-formed XML or if the parsing fails.
     * @see XMPMetaFactory#parseFromBuffer(byte[], ParseOptions)
     */
    public static XMPMeta parseFromBuffer(byte[] buffer) throws XMPException {
        return parseFromBuffer(buffer, null);
    }

    /**
     * Creates an <code>XMPMeta</code>-object from a byte-buffer.
     *
     * @param buffer  a String contain an XMP-file.
     * @param options Options controlling the parsing.
     * @return Returns the <code>XMPMeta</code>-object created from the input.
     * @throws XMPException If the file is not well-formed XML or if the parsing fails.
     * @see XMPMetaFactory#parse(InputStream, ParseOptions)
     */
    public static XMPMeta parseFromBuffer(byte[] buffer,
                                          ParseOptions options) throws XMPException {
        return XMPMetaParser.parse(buffer, options);
    }

    /**
     * Serializes an <code>XMPMeta</code>-object as RDF into an <code>OutputStream</code>
     * with default options.
     *
     * @param xmp a metadata object
     * @param out an <code>OutputStream</code> to write the serialized RDF to.
     * @throws XMPException on serializsation errors.
     */
    public static void serialize(XMPMeta xmp, OutputStream out) throws XMPException {
        serialize(xmp, out, null);
    }

    /**
     * Serializes an <code>XMPMeta</code>-object as RDF into an <code>OutputStream</code>.
     *
     * @param xmp     a metadata object
     * @param options Options to control the serialization (see {@link SerializeOptions}).
     * @param out     an <code>OutputStream</code> to write the serialized RDF to.
     * @throws XMPException on serializsation errors.
     */
    public static void serialize(XMPMeta xmp, OutputStream out, SerializeOptions options)
            throws XMPException {
        assertImplementation(xmp);
        XMPSerializerHelper.serialize((XMPMetaImpl) xmp, out, options);
    }

    /**
     * Serializes an <code>XMPMeta</code>-object as RDF into a byte buffer.
     *
     * @param xmp     a metadata object
     * @param options Options to control the serialization (see {@link SerializeOptions}).
     * @return Returns a byte buffer containing the serialized RDF.
     * @throws XMPException on serializsation errors.
     */
    public static byte[] serializeToBuffer(XMPMeta xmp, SerializeOptions options)
            throws XMPException {
        assertImplementation(xmp);
        return XMPSerializerHelper.serializeToBuffer((XMPMetaImpl) xmp, options);
    }

    /**
     * Serializes an <code>XMPMeta</code>-object as RDF into a string. <em>Note:</em> Encoding
     * is ignored when serializing to a string.
     *
     * @param xmp     a metadata object
     * @param options Options to control the serialization (see {@link SerializeOptions}).
     * @return Returns a string containing the serialized RDF.
     * @throws XMPException on serializsation errors.
     */
    public static String serializeToString(XMPMeta xmp, SerializeOptions options)
            throws XMPException {
        assertImplementation(xmp);
        return XMPSerializerHelper.serializeToString((XMPMetaImpl) xmp, options);
    }

    /**
     * @param xmp Asserts that xmp is compatible to <code>XMPMetaImpl</code>.s
     */
    private static void assertImplementation(XMPMeta xmp) {
        if (!(xmp instanceof XMPMetaImpl)) {
            throw new UnsupportedOperationException("The serializing service works only" +
                    "with the XMPMeta implementation of this library");
        }
    }

    /**
     * Resets the schema registry to its original state (creates a new one).
     * Be careful this might break all existing XMPMeta-objects and should be used
     * only for testing purpurses.
     */
    public static void reset() {
        schema = new XMPSchemaRegistryImpl();
    }

    /**
     * Obtain version information. The XMPVersionInfo singleton is created the first time
     * its requested.
     *
     * @return Returns the version information.
     */
    public static synchronized XMPVersionInfo getVersionInfo() {
        if (versionInfo == null) {
            try {
                final int major = 5;
                final int minor = 1;
                final int micro = 0;
                final int engBuild = 3;
                final boolean debug = false;

                // Adobe XMP Core 5.0-jc001 DEBUG-<branch>.<changelist>, 2009 Jan 28 15:22:38-CET
                final String message = "Adobe XMP Core 5.1.0-jc003";


                versionInfo = new XMPVersionInfo() {
                    public int getMajor() {
                        return major;
                    }

                    public int getMinor() {
                        return minor;
                    }

                    public int getMicro() {
                        return micro;
                    }

                    public boolean isDebug() {
                        return debug;
                    }

                    public int getBuild() {
                        return engBuild;
                    }

                    public String getMessage() {
                        return message;
                    }

                    public String toString() {
                        return message;
                    }
                };

            } catch (Throwable e) {
                // EMTPY, severe error would be detected during the tests
                System.out.println(e);
            }
        }
        return versionInfo;
    }
}

com/itextpdf/xmp/XMPMetaFactory.java

 

Or download all of them as a single archive file:

File name: itextpdf-5.5.14-fyi.zip
File size: 2163839 bytes
Release date: 2009-10-09
Download 

 

iText-2.1.6.jar - iText, a JAVA-PDF library

iText layout.jar Source Code

Download and Install iText Java Library

⇑⇑ iText for PDF Generation

2021-07-03, 113129👍, 0💬