Package com.itextpdf.text.pdf

Examples of com.itextpdf.text.pdf.PdfArray


                filterMethod = is.read();
                interlaceMethod = is.read();
            }
            else if (PLTE.equals(marker)) {
                if (colorType == 3) {
                    PdfArray colorspace = new PdfArray();
                    colorspace.add(PdfName.INDEXED);
                    colorspace.add(getColorspace());
                    colorspace.add(new PdfNumber(len / 3 - 1));
                    ByteBuffer colortable = new ByteBuffer();
                    while ((len--) > 0) {
                        colortable.append_i(is.read());
                    }
                    colorspace.add(new PdfString(colorTable = colortable.toByteArray()));
                    additional.put(PdfName.COLORSPACE, colorspace);
                }
                else {
                    Utilities.skip(is, len);
                }
View Full Code Here


                return PdfName.DEVICEGRAY;
            else
                return PdfName.DEVICERGB;
        }
        else {
            PdfArray array = new PdfArray();
            PdfDictionary dic = new PdfDictionary();
            if ((colorType & 2) == 0) {
                if (gamma == 1f)
                    return PdfName.DEVICEGRAY;
                array.add(PdfName.CALGRAY);
                dic.put(PdfName.GAMMA, new PdfNumber(gamma));
                dic.put(PdfName.WHITEPOINT, new PdfLiteral("[1 1 1]"));
                array.add(dic);
            }
            else {
                PdfObject wp = new PdfLiteral("[1 1 1]");
                array.add(PdfName.CALRGB);
                if (gamma != 1f) {
                    PdfArray gm = new PdfArray();
                    PdfNumber n = new PdfNumber(gamma);
                    gm.add(n);
                    gm.add(n);
                    gm.add(n);
                    dic.put(PdfName.GAMMA, gm);
                }
                if (hasCHRM) {
                    float z = yW*((xG-xB)*yR-(xR-xB)*yG+(xR-xG)*yB);
                    float YA = yR*((xG-xB)*yW-(xW-xB)*yG+(xW-xG)*yB)/z;
                    float XA = YA*xR/yR;
                    float ZA = YA*((1-xR)/yR-1);
                    float YB = -yG*((xR-xB)*yW-(xW-xB)*yR+(xW-xR)*yB)/z;
                    float XB = YB*xG/yG;
                    float ZB = YB*((1-xG)/yG-1);
                    float YC = yB*((xR-xG)*yW-(xW-xG)*yW+(xW-xR)*yG)/z;
                    float XC = YC*xB/yB;
                    float ZC = YC*((1-xB)/yB-1);
                    float XW = XA+XB+XC;
                    float YW = 1;//YA+YB+YC;
                    float ZW = ZA+ZB+ZC;
                    PdfArray wpa = new PdfArray();
                    wpa.add(new PdfNumber(XW));
                    wpa.add(new PdfNumber(YW));
                    wpa.add(new PdfNumber(ZW));
                    wp = wpa;
                    PdfArray matrix = new PdfArray();
                    matrix.add(new PdfNumber(XA));
                    matrix.add(new PdfNumber(YA));
                    matrix.add(new PdfNumber(ZA));
                    matrix.add(new PdfNumber(XB));
                    matrix.add(new PdfNumber(YB));
                    matrix.add(new PdfNumber(ZB));
                    matrix.add(new PdfNumber(XC));
                    matrix.add(new PdfNumber(YC));
                    matrix.add(new PdfNumber(ZC));
                    dic.put(PdfName.MATRIX, matrix);
                }
                dic.put(PdfName.WHITEPOINT, wp);
                array.add(dic);
            }
View Full Code Here

        annotations = delayedAnnotations;
        delayedAnnotations = new ArrayList<PdfAnnotation>();
    }

    public PdfArray rotateAnnotations(PdfWriter writer, Rectangle pageSize) {
        PdfArray array = new PdfArray();
        int rotation = pageSize.getRotation() % 360;
        int currentPage = writer.getCurrentPageNumber();
        for (int k = 0; k < annotations.size(); ++k) {
            PdfAnnotation dic = annotations.get(k);
            int page = dic.getPlaceInPage();
            if (page > currentPage) {
                delayedAnnotations.add(dic);
                continue;
            }
            if (dic.isForm()) {
                if (!dic.isUsed()) {
                    HashSet<PdfTemplate> templates = dic.getTemplates();
                    if (templates != null)
                        acroForm.addFieldTemplates(templates);
                }
                PdfFormField field = (PdfFormField)dic;
                if (field.getParent() == null)
                    acroForm.addDocumentField(field.getIndirectReference());
            }
            if (dic.isAnnotation()) {
                array.add(dic.getIndirectReference());
                if (!dic.isUsed()) {
                  PdfArray tmp = dic.getAsArray(PdfName.RECT);
                    PdfRectangle rect;
                    if (tmp.size() == 4) {
                      rect = new PdfRectangle(tmp.getAsNumber(0).floatValue(), tmp.getAsNumber(1).floatValue(), tmp.getAsNumber(2).floatValue(), tmp.getAsNumber(3).floatValue());
                    }
                    else {
                      rect = new PdfRectangle(tmp.getAsNumber(0).floatValue(), tmp.getAsNumber(1).floatValue());
                    }
                    if (rect != null) {
                      switch (rotation) {
                          case 90:
                            dic.put(PdfName.RECT, new PdfRectangle(
View Full Code Here

      LOGGER.info("StructTreeRoot refers to dictionary");
      processStructElems((PdfDictionary)object, structTreeRoot.getAsIndirectObject(PdfName.K));
      break;
    case PdfObject.ARRAY:
      LOGGER.info("StructTreeRoot refers to array");
      PdfArray array = (PdfArray) object;
      for (int i = 0; i < array.size(); i++) {
        processStructElems(array.getAsDict(i), array.getAsIndirectObject(i));
      }
      break;
    }
  }
View Full Code Here

   * @param ocgs  the removal list
   */
  private void removeOCGsFromArray(PdfDictionary dict, PdfName name, Set<String> ocgs) {
    if (dict == null)
      return;
    PdfArray array = dict.getAsArray(name);
    if (array == null)
      return;
    removeOCGsFromArray(array, ocgs);
  }
View Full Code Here

      item = new StructureMCID(structElem.getAsIndirectObject(PdfName.PG), (PdfNumber) object);
      add(item);
      LOGGER.info("Added " + item);
      break;
    case PdfObject.ARRAY:
      PdfArray array = (PdfArray)object;
      for (int i = 0; i < array.size(); i++) {
        processStructElemKids(structElem, array.getAsIndirectObject(i), array.getDirectObject(i));
      }
      break;
    case PdfObject.DICTIONARY:
      PdfDictionary dict = (PdfDictionary)object;
      if (dict.checkType(PdfName.MCR)) {
View Full Code Here

   * Removes annotations from a page dictionary
   * @param page  a page dictionary
   * @param ocgs  a set of names of OCG layers
   */
  private void removeAnnots(PdfDictionary page, Set<String> ocgs) {
    PdfArray annots = page.getAsArray(PdfName.ANNOTS);
    if (annots == null) return;
    PdfDictionary annot;
    List<Integer> remove = new ArrayList<Integer>();
    for (int i = annots.size(); i > 0; ) {
      annot = annots.getAsDict(--i);
      if (isToBeRemoved(annot.getAsDict(PdfName.OC), ocgs)) {
        remove.add(i);
      }
      else {
        removeOCGsFromArray(annot.getAsDict(PdfName.A), PdfName.STATE, ocgs);
      }
    }
    for (Integer i : remove) {
      annots.remove(i);
    }
  }
View Full Code Here

   * @param l
   * @param s
   * @param a
   */
  public void setDisplayUnits(Linear l, Square s, Angular a) {
    PdfArray arr = new PdfArray();
    arr.add(l.getPdfName());
    arr.add(s.getPdfName());
    arr.add(a.getPdfName());
    super.put(PdfName.PDU, arr);
  }
View Full Code Here

  public int processMCID(PdfNumber structParents, PdfIndirectReference ref)
      throws DocumentException {
    if (ref == null)
      throw new DocumentException(MessageLocalization.getComposedMessage("can.t.read.document.structure"));
    PdfObject object = parentTree.get(structParents.intValue());
    PdfArray array = (PdfArray)PdfReader.getPdfObject(object);
    for (int i = 0; i < array.size(); i++) {
      if (array.getAsIndirectObject(i) == null) {
        array.set(i, ref);
        return i;
      }
    }
    array.add(ref);
    return array.size() - 1;
  }
View Full Code Here

    this.writer = writer;
    annot = new PdfAnnotation(writer, rect);
        annot.put(PdfName.SUBTYPE, PdfName.RICHMEDIA);
        richMediaContent = new PdfDictionary(PdfName.RICHMEDIACONTENT);
    assetsmap = new HashMap<String, PdfIndirectReference>();
    configurations = new PdfArray();
    views = new PdfArray();
  }
View Full Code Here

TOP

Related Classes of com.itextpdf.text.pdf.PdfArray

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.