Example #1
0
 /**
  * Adds a blank page.
  *
  * @param rect The page dimension
  * @param rotation The rotation angle in degrees
  * @since 2.1.5
  */
 public void addPage(Rectangle rect, int rotation) {
   PdfRectangle mediabox = new PdfRectangle(rect, rotation);
   PageResources resources = new PageResources();
   PdfPage page = new PdfPage(mediabox, new HashMap(), resources.getResources(), 0);
   page.put(PdfName.TABS, getTabs());
   root.addPage(page);
   ++currentPageNumber;
 }
Example #2
0
 public PdfContentByte getOverContent() {
   if (over == null) {
     if (pageResources == null) {
       pageResources = new PageResources();
       PdfDictionary resources = pageN.getAsDict(PdfName.RESOURCES);
       pageResources.setOriginalResources(resources, cstp.namePtr);
     }
     over = new PdfCopy.StampContent(cstp, pageResources);
   }
   return over;
 }
Example #3
0
 public void alterContents() throws IOException {
   if (over == null && under == null) return;
   PdfArray ar = null;
   PdfObject content = PdfReader.getPdfObject(pageN.get(PdfName.CONTENTS), pageN);
   if (content == null) {
     ar = new PdfArray();
     pageN.put(PdfName.CONTENTS, ar);
   } else if (content.isArray()) {
     ar = (PdfArray) content;
   } else if (content.isStream()) {
     ar = new PdfArray();
     ar.add(pageN.get(PdfName.CONTENTS));
     pageN.put(PdfName.CONTENTS, ar);
   } else {
     ar = new PdfArray();
     pageN.put(PdfName.CONTENTS, ar);
   }
   ByteBuffer out = new ByteBuffer();
   if (under != null) {
     out.append(PdfContents.SAVESTATE);
     applyRotation(pageN, out);
     out.append(under.getInternalBuffer());
     out.append(PdfContents.RESTORESTATE);
   }
   if (over != null) out.append(PdfContents.SAVESTATE);
   PdfStream stream = new PdfStream(out.toByteArray());
   stream.flateCompress(cstp.getCompressionLevel());
   PdfIndirectReference ref1 = cstp.addToBody(stream).getIndirectReference();
   ar.addFirst(ref1);
   out.reset();
   if (over != null) {
     out.append(' ');
     out.append(PdfContents.RESTORESTATE);
     out.append(PdfContents.SAVESTATE);
     applyRotation(pageN, out);
     out.append(over.getInternalBuffer());
     out.append(PdfContents.RESTORESTATE);
     stream = new PdfStream(out.toByteArray());
     stream.flateCompress(cstp.getCompressionLevel());
     ar.add(cstp.addToBody(stream).getIndirectReference());
   }
   pageN.put(PdfName.RESOURCES, pageResources.getResources());
 }