List of usage examples for com.lowagie.text.pdf ByteBuffer ByteBuffer
public ByteBuffer()
From source file:it.flavianopetrocchi.jpdfbookmarks.itextbookmarksconverter.iTextBookmarksConverter.java
License:Open Source License
private Bookmark bookmarkFromDictionary(PdfDictionary outline) { if (outline == null) { return null; }//ww w . ja v a 2s .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; }