Class PdfCopy

    • Method Detail

      • isRotateContents

        public boolean isRotateContents()
        Getter for property rotateContents.
        Returns:
        Value of property rotateContents.
      • setRotateContents

        public void setRotateContents​(boolean rotateContents)
        Setter for property rotateContents.
        Parameters:
        rotateContents - New value of property rotateContents.
      • getImportedPage

        public PdfImportedPage getImportedPage​(PdfReader reader,
                                               int pageNumber)
        Grabs a page from the input document
        Overrides:
        getImportedPage in class PdfWriter
        Parameters:
        reader - the reader of the document
        pageNumber - which page to get
        Returns:
        the page
      • copyIndirect

        protected PdfIndirectReference copyIndirect​(PRIndirectReference in)
                                             throws java.io.IOException,
                                                    BadPdfFormatException
        Translate a PRIndirectReference to a PdfIndirectReference In addition, translates the object numbers, and copies the referenced object to the output file. NB: PRIndirectReferences (and PRIndirectObjects) really need to know what file they came from, because each file has its own namespace. The translation we do from their namespace to ours is *at best* heuristic, and guaranteed to fail under some circumstances.
        Parameters:
        in - the PRIndirectReference to translate
        Returns:
        the translated PRIndirectReference
        Throws:
        java.io.IOException - on error
        BadPdfFormatException - on error with the Pdf format
      • copyDictionary

        protected PdfDictionary copyDictionary​(PdfDictionary in)
                                        throws java.io.IOException,
                                               BadPdfFormatException
        Translate a PRDictionary to a PdfDictionary. Also translate all of the objects contained in it.
        Parameters:
        in - the PRDictionary to translate
        Returns:
        the translated PRDictionary
        Throws:
        java.io.IOException - on error
        BadPdfFormatException - on error with the Pdf format
      • copyStream

        protected PdfStream copyStream​(PRStream in)
                                throws java.io.IOException,
                                       BadPdfFormatException
        Translate a PRStream to a PdfStream. The data part copies itself.
        Parameters:
        in - the PRStream to translate
        Returns:
        the translated PRStream
        Throws:
        java.io.IOException - on error
        BadPdfFormatException - on error with the Pdf format
      • copyArray

        protected PdfArray copyArray​(PdfArray in)
                              throws java.io.IOException,
                                     BadPdfFormatException
        Translate a PRArray to a PdfArray. Also translate all of the objects contained in it
        Parameters:
        in - the PdfArray to copy
        Returns:
        the newly generate PdfArray
        Throws:
        java.io.IOException - on error
        BadPdfFormatException
      • copyObject

        protected PdfObject copyObject​(PdfObject in)
                                throws java.io.IOException,
                                       BadPdfFormatException
        Translate a PR-object to a Pdf-object
        Parameters:
        in - the PdfObject to translate
        Returns:
        the PdfObject
        Throws:
        java.io.IOException - on error
        BadPdfFormatException - on error with the Pdf format
      • setFromIPage

        protected int setFromIPage​(PdfImportedPage iPage)
        convenience method. Given an imported page, set our "globals"
        Parameters:
        iPage - the imported page
        Returns:
        the page number
      • setFromReader

        protected void setFromReader​(PdfReader reader)
        convenience method. Given a reader, set our "globals"
        Parameters:
        reader - the PdfReader
      • addPage

        public void addPage​(Rectangle rect,
                            int rotation)
        Adds a blank page.
        Parameters:
        rect - The page dimension
        rotation - The rotation angle in degrees
        Since:
        2.1.5
      • copyAcroForm

        public void copyAcroForm​(PdfReader reader)
                          throws java.io.IOException,
                                 BadPdfFormatException
        Copy the acroform for an input document. Note that you can only have one, we make no effort to merge them.
        Parameters:
        reader - The reader of the input file that is being copied
        Throws:
        java.io.IOException - on error
        BadPdfFormatException - on error
      • addFieldResources

        private void addFieldResources​(PdfDictionary catalog)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • close

        public void close()
        Signals that the Document was closed and that no other Elements will be added.

        The pages-tree is built and written to the outputstream. A Catalog is constructed, as well as an Info-object, the reference table is composed and everything is written to the outputstream embedded in a Trailer.

        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface DocListener
        Overrides:
        close in class PdfWriter
        See Also:
        DocWriter.close()
      • add

        PdfIndirectReference add​(PdfPage page,
                                 PdfContents contents)
                          throws PdfException
        Description copied from class: PdfWriter
        Adds some PdfContents to this Writer.

        The document has to be open before you can begin to add content to the body of the document.

        Overrides:
        add in class PdfWriter
        Parameters:
        page - the PdfPage to add
        contents - the PdfContents of the page
        Returns:
        a PdfIndirectReference
        Throws:
        PdfException - on error
      • freeReader

        public void freeReader​(PdfReader reader)
                        throws java.io.IOException
        Description copied from class: PdfWriter
        Use this method to writes the reader to the document and free the memory used by it. The main use is when concatenating multiple documents to keep the memory usage restricted to the current appending document.
        Overrides:
        freeReader in class PdfWriter
        Parameters:
        reader - the PdfReader to free
        Throws:
        java.io.IOException - on error
      • createPageStamp

        public PdfCopy.PageStamp createPageStamp​(PdfImportedPage iPage)
        Create a page stamp. New content and annotations, including new fields, are allowed. The fields added cannot have parents in another pages. This method modifies the PdfReader instance.

        The general usage to stamp something in a page is:

         PdfImportedPage page = copy.getImportedPage(reader, 1);
         PdfCopy.PageStamp ps = copy.createPageStamp(page);
         ps.addAnnotation(PdfAnnotation.createText(copy, new Rectangle(50, 180, 70, 200), "Hello", "No Thanks", true, "Comment"));
         PdfContentByte under = ps.getUnderContent();
         under.addImage(img);
         PdfContentByte over = ps.getOverContent();
         over.beginText();
         over.setFontAndSize(bf, 18);
         over.setTextMatrix(30, 30);
         over.showText("total page " + totalPage);
         over.endText();
         ps.alterContents();
         copy.addPage(page);
         
        Parameters:
        iPage - an imported page
        Returns:
        the PageStamp