Example usage for com.lowagie.text.pdf PdfArray getPdfObject

List of usage examples for com.lowagie.text.pdf PdfArray getPdfObject

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfArray getPdfObject.

Prototype

public PdfObject getPdfObject(int idx) 

Source Link

Document

Returns the PdfObject with the specified index.

Usage

From source file:es.gob.afirma.signers.pades.ltv.PdfDocumentSecurityStore.java

License:Open Source License

/** Constructor para inicializar la clase con una estructura DSS ya creada.
 * @param dss Diccionario DSS// w  ww  .j  ava  2 s . c om
 * @throws IOException En caso de errores de entrada / salida */
PdfDocumentSecurityStore(final PdfDictionary dss) throws IOException {
    int i = 0;
    PdfArray arrayCerts = dss.getAsArray(new PdfName(PDF_NAME_CERTS));
    if (arrayCerts != null) {
        for (final Iterator<PdfObject> iterator = arrayCerts.listIterator(); iterator.hasNext();) {
            final PdfIndirectReference reference = (PdfIndirectReference) iterator.next();
            this.certificates.put(Integer.valueOf(i),
                    getContentBytesFromContentObject(PdfReader.getPdfObject(reference)));
            i++;
        }

    }
    PdfArray arrayOcsps = dss.getAsArray(new PdfName(PDF_NAME_OCSPS));
    if (arrayOcsps != null) {
        i = 0;
        for (final Iterator<PdfObject> iterator = arrayOcsps.listIterator(); iterator.hasNext();) {
            final PdfIndirectReference reference = (PdfIndirectReference) iterator.next();
            this.ocsps.put(Integer.valueOf(i),
                    getContentBytesFromContentObject(PdfReader.getPdfObject(reference)));
            i++;
        }

    }
    PdfArray arrayCrls = dss.getAsArray(new PdfName(PDF_NAME_CRLS));
    if (arrayCrls != null) {
        i = 0;
        for (final Iterator<PdfObject> iterator = arrayCrls.listIterator(); iterator.hasNext();) {
            final PdfIndirectReference reference = (PdfIndirectReference) iterator.next();
            this.crls.put(Integer.valueOf(i),
                    getContentBytesFromContentObject(PdfReader.getPdfObject(reference)));
            i++;
        }

    }
    final PdfDictionary vri = dss.getAsDict(new PdfName(PDF_NAME_VRI));
    if (vri != null) {
        PdfName key;
        ValidationInformation val;
        for (final Iterator<PdfName> iterator = vri.getKeys().iterator(); iterator.hasNext(); this.signatures
                .put(key.toString().substring(1), val)) {
            key = iterator.next();
            final PdfDictionary vriEntry = vri.getAsDict(key);
            arrayCerts = vriEntry.getAsArray(new PdfName(PDF_NAME_CERT));
            int certId[];
            if (arrayCerts != null) {
                certId = new int[arrayCerts.size()];
                for (i = 0; i < arrayCerts.size(); i++) {
                    final PdfIndirectReference reference = (PdfIndirectReference) arrayCerts.getPdfObject(i);
                    final byte referenceBytes[] = getContentBytesFromContentObject(
                            PdfReader.getPdfObject(reference));
                    final Iterator<Integer> iteratorKeys = this.certificates.keySet().iterator();
                    do {
                        if (!iteratorKeys.hasNext()) {
                            break;
                        }
                        final int index = iteratorKeys.next().intValue();
                        if (Arrays.equals(referenceBytes, this.certificates.get(Integer.valueOf(index)))) {
                            certId[i] = index;
                        }
                    } while (true);
                }

            } else {
                certId = new int[0];
            }
            arrayOcsps = vriEntry.getAsArray(new PdfName(PDF_NAME_OCSP));
            int ocspId[];
            if (arrayOcsps != null) {
                ocspId = new int[arrayOcsps.size()];
                i = 0;
                for (final Iterator<PdfObject> iteratorOcsps = arrayOcsps.listIterator(); iteratorOcsps
                        .hasNext();) {
                    final PdfIndirectReference reference = (PdfIndirectReference) iteratorOcsps.next();
                    final byte referenceBytes[] = getContentBytesFromContentObject(
                            PdfReader.getPdfObject(reference));
                    final Iterator<Integer> iteratorKeys = this.ocsps.keySet().iterator();
                    do {
                        if (!iteratorKeys.hasNext()) {
                            break;
                        }
                        final int index = iteratorKeys.next().intValue();
                        if (Arrays.equals(referenceBytes, this.ocsps.get(Integer.valueOf(index)))) {
                            ocspId[i] = index;
                        }
                    } while (true);
                    i++;
                }

            } else {
                ocspId = new int[0];
            }
            arrayCrls = vriEntry.getAsArray(new PdfName(PDF_NAME_CRL));
            int crlId[];
            if (arrayCrls != null) {
                crlId = new int[arrayCrls.size()];
                i = 0;
                for (final Iterator<PdfObject> iteratorCRLs = arrayCrls.listIterator(); iteratorCRLs
                        .hasNext();) {
                    final PdfIndirectReference reference = (PdfIndirectReference) iteratorCRLs.next();
                    final byte referenceBytes[] = getContentBytesFromContentObject(
                            PdfReader.getPdfObject(reference));
                    final Iterator<Integer> iteratorKeys = this.crls.keySet().iterator();
                    do {
                        if (!iteratorKeys.hasNext()) {
                            break;
                        }
                        final int index = iteratorKeys.next().intValue();
                        if (Arrays.equals(referenceBytes, this.crls.get(Integer.valueOf(index)))) {
                            crlId[i] = index;
                        }
                    } while (true);
                    i++;
                }

            } else {
                crlId = new int[0];
            }
            Calendar date = null;
            if (vriEntry.get(PdfName.TU) != null) {
                if (vriEntry.get(PdfName.TU) instanceof PdfDate) {
                    date = PdfDate.decode(((PdfDate) vriEntry.get(PdfName.TU)).getEncoding());
                }
                if (vriEntry.get(PdfName.TU) instanceof PdfString) {
                    date = PdfDate.decode(vriEntry.getAsString(PdfName.TU).getEncoding());
                }
            }
            val = new ValidationInformation(key, certId, ocspId, crlId, date);
        }
    }
}

From source file:it.flavianopetrocchi.jpdfbookmarks.itextbookmarksconverter.iTextBookmarksConverter.java

License:Open Source License

private String makeBookmarkParam(PdfReader reader, Bookmark bookmark, PdfArray dest, IntHashtable pages) {
    StringBuilder s = new StringBuilder();
    PdfObject obj = dest.getPdfObject(0);
    if (obj.isNumber()) {
        s.append(((PdfNumber) obj).intValue() + 1);
        bookmark.setPageNumber(((PdfNumber) obj).intValue() + 1);
    } else {/*w ww  .  ja v  a2s.c  o m*/
        if (pages == null) {
            initPages();
        }
        if (pages != null) {
            s.append(pages.get(getNumber((PdfIndirectReference) obj))); //changed by ujihara 2004-06-13
            bookmark.setPageNumber(pages.get(getNumber((PdfIndirectReference) obj)));
        }
    }

    Rectangle pageSize = null;
    //if (bookmark.getType().equals(BookmarkType.GoToFile) == false) {
    //if (!bookmark.isRemoteDestination()) {
    pageSize = reader.getPageSize(bookmark.getPageNumber());
    //}

    if (pageSize != null) {
        bookmark.setPageWidth(pageSize.getWidth());
        bookmark.setPageHeight(pageSize.getHeight());
    }

    String destType = dest.getPdfObject(1).toString();
    PdfObject[] params = new PdfObject[dest.size()];
    for (int k = 2; k < dest.size(); ++k) {
        params[k - 2] = dest.getPdfObject(k);
    }
    if (destType.equals("/XYZ")) {
        bookmark.setType(BookmarkType.TopLeftZoom);
        if (!params[0].isNull()) {
            bookmark.setLeft(((PdfNumber) params[0]).intValue());
        }
        if (!params[1].isNull()) {
            bookmark.setTop(((PdfNumber) params[1]).intValue());
        }
        if (pageSize != null) {
            bookmark.setThousandthsLeft(thousandthsHorizontal(bookmark.getLeft(), pageSize));
            bookmark.setThousandthsTop(thousandthsVertical(bookmark.getTop(), pageSize));
        }
        if (!params[2].isNull()) {
            bookmark.setZoom(((PdfNumber) params[2]).floatValue());
        }
    } else if (destType.equals("/FitH")) {
        bookmark.setType(BookmarkType.FitWidth);
        if (!params[0].isNull()) {
            bookmark.setTop(((PdfNumber) params[0]).intValue());
        }
        if (pageSize != null) {
            bookmark.setThousandthsTop(thousandthsVertical(bookmark.getTop(), pageSize));
        }
    } else if (destType.equals("/FitV")) {
        bookmark.setType(BookmarkType.FitHeight);
        if (!params[0].isNull()) {
            bookmark.setLeft(((PdfNumber) params[0]).intValue());
        }
        if (pageSize != null) {
            bookmark.setThousandthsLeft(thousandthsHorizontal(bookmark.getLeft(), pageSize));
        }
    } else if (destType.equals("/FitBH")) {
        bookmark.setType(BookmarkType.FitContentWidth);
        if (!params[0].isNull()) {
            bookmark.setTop(((PdfNumber) params[0]).intValue());
        }
        if (pageSize != null) {
            bookmark.setThousandthsTop(thousandthsVertical(bookmark.getTop(), pageSize));
        }
    } else if (destType.equals("/FitBV")) {
        bookmark.setType(BookmarkType.FitContentHeight);
        if (!params[0].isNull()) {
            bookmark.setLeft(((PdfNumber) params[0]).intValue());
        }
        if (pageSize != null) {
            bookmark.setThousandthsLeft(thousandthsHorizontal(bookmark.getLeft(), pageSize));
        }
    } else if (destType.equals("/Fit")) {
        bookmark.setType(BookmarkType.FitPage);
    } else if (destType.equals("/FitB")) {
        bookmark.setType(BookmarkType.FitContent);
    } else if (destType.equals("/FitR")) {
        bookmark.setType(BookmarkType.FitRect);
        if (!params[0].isNull()) {
            bookmark.setLeft(((PdfNumber) params[0]).intValue());
        }
        if (!params[1].isNull()) {
            bookmark.setBottom(((PdfNumber) params[1]).intValue());
        }
        if (!params[2].isNull()) {
            bookmark.setRight(((PdfNumber) params[2]).intValue());
        }
        if (!params[3].isNull()) {
            bookmark.setTop(((PdfNumber) params[3]).intValue());
        }
        if (pageSize != null) {
            bookmark.setThousandthsLeft(thousandthsHorizontal(bookmark.getLeft(), pageSize));
            bookmark.setThousandthsTop(thousandthsVertical(bookmark.getTop(), pageSize));
            bookmark.setThousandthsRight(thousandthsHorizontal(bookmark.getRight(), pageSize));
            bookmark.setThousandthsBottom(thousandthsVertical(bookmark.getBottom(), pageSize));
        }
    }

    s.append(' ').append(dest.getPdfObject(1).toString().substring(1));
    for (int k = 2; k < dest.size(); ++k) {
        s.append(' ').append(dest.getPdfObject(k).toString());
    }
    return s.toString();
}

From source file:it.flavianopetrocchi.jpdfbookmarks.itextbookmarksconverter.iTextBookmarksConverter.java

License:Open Source License

private static int getNumber(PdfIndirectReference indirect) {
    PdfDictionary pdfObj = (PdfDictionary) PdfReader.getPdfObjectRelease(indirect);
    if (pdfObj.contains(PdfName.TYPE) && pdfObj.get(PdfName.TYPE).equals(PdfName.PAGES)
            && pdfObj.contains(PdfName.KIDS)) {
        PdfArray kids = (PdfArray) pdfObj.get(PdfName.KIDS);
        indirect = (PdfIndirectReference) kids.getPdfObject(0);
    }/*from  www .  java2  s.co m*/
    return indirect.getNumber();
}