Example usage for com.lowagie.text.pdf PdfName DEST

List of usage examples for com.lowagie.text.pdf PdfName DEST

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfName DEST.

Prototype

PdfName DEST

To view the source code for com.lowagie.text.pdf PdfName DEST.

Click Source Link

Document

A name

Usage

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

License:Open Source License

private Bookmark bookmarkFromDictionary(PdfDictionary outline) {
    if (outline == null) {
        return null;
    }/*from  ww w. j a va 2  s . c om*/
    Bookmark bookmark = new Bookmark();
    PdfString title = (PdfString) PdfReader.getPdfObjectRelease(outline.get(PdfName.TITLE));
    bookmark.setTitle(title.toUnicodeString());
    PdfArray color = (PdfArray) PdfReader.getPdfObjectRelease(outline.get(PdfName.C));
    if (color != null && color.size() == 3) {
        ByteBuffer out = new ByteBuffer();
        out.append(color.getAsNumber(0).floatValue()).append(' ');
        out.append(color.getAsNumber(1).floatValue()).append(' ');
        out.append(color.getAsNumber(2).floatValue());
        bookmark.setColor(new Color(color.getAsNumber(0).floatValue(), color.getAsNumber(1).floatValue(),
                color.getAsNumber(2).floatValue()));
    }
    PdfNumber style = (PdfNumber) PdfReader.getPdfObjectRelease(outline.get(PdfName.F));
    if (style != null) {
        int f = style.intValue();
        if ((f & 1) != 0) {
            bookmark.setItalic(true);
        }
        if ((f & 2) != 0) {
            bookmark.setBold(true);
        }
    }
    PdfNumber count = (PdfNumber) PdfReader.getPdfObjectRelease(outline.get(PdfName.COUNT));
    if (count != null && count.intValue() < 0) {
        bookmark.setOpened(false);
    } else {
        bookmark.setOpened(true);
    }
    try {
        PdfObject dest = PdfReader.getPdfObjectRelease(outline.get(PdfName.DEST));
        if (dest != null) {
            mapGotoBookmark(bookmark, dest);
        } else {
            PdfDictionary action = (PdfDictionary) PdfReader.getPdfObjectRelease(outline.get(PdfName.A));
            if (action != null) {
                setActionsRecursive(bookmark, action);
            } else {
                bookmark.setType(BookmarkType.Unknown);
            }
        }
    } catch (Exception e) {
        //empty on purpose
    }
    return bookmark;
}

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

License:Open Source License

public ArrayList<AnnotationRect> getLinks(int currentPage, boolean convertNamedDestinations) {

    ArrayList<AnnotationRect> bookmarkLinks = new ArrayList<AnnotationRect>();
    ArrayList links = null;//  ww w.j ava 2s  . c o m
    if (reader != null) {
        if (convertNamedDestinations) {
            reader.consolidateNamedDestinations();
        }
        links = reader.getAnnotations(currentPage);
        for (int i = 0; i < links.size(); i++) {
            AnnotationRect annoRect = new AnnotationRect();
            Bookmark bookmark = new Bookmark();
            PdfDictionary annot = (PdfDictionary) links.get(i);
            try {
                PdfObject dest = PdfReader.getPdfObjectRelease(annot.get(PdfName.DEST));
                if (dest != null) {
                    mapGotoBookmark(bookmark, dest);
                } else {
                    PdfDictionary action = (PdfDictionary) PdfReader.getPdfObjectRelease(annot.get(PdfName.A));
                    if (action != null) {
                        setActionsRecursive(bookmark, action);
                    } else {
                        bookmark.setType(BookmarkType.Unknown);
                    }
                }
            } catch (Exception e) {
                //empty on purpose
            }
            PdfObject obj = (PdfObject) annot.get(PdfName.RECT);
            if (obj instanceof PdfArray) {
                PdfArray rc = (PdfArray) obj;
                annoRect.llx = (int) rc.getAsNumber(0).floatValue();
                annoRect.lly = (int) rc.getAsNumber(1).floatValue();
                annoRect.urx = (int) rc.getAsNumber(2).floatValue();
                annoRect.ury = (int) rc.getAsNumber(3).floatValue();
            }
            annoRect.bookmark = bookmark;
            bookmarkLinks.add(annoRect);
        }
    }

    return bookmarkLinks;
}