List of usage examples for com.lowagie.text.pdf PdfName decodeName
public static String decodeName(String name)
From source file:it.flavianopetrocchi.jpdfbookmarks.itextbookmarksconverter.iTextBookmarksConverter.java
License:Open Source License
private void setActionInBookmark(Bookmark bookmark, PdfDictionary action) { PdfObject dest;// ww w . ja va 2 s. c o m if (PdfName.GOTO.equals(PdfReader.getPdfObjectRelease(action.get(PdfName.S)))) { dest = PdfReader.getPdfObjectRelease(action.get(PdfName.D)); if (dest != null) { mapGotoBookmark(bookmark, dest); } } else if (PdfName.URI.equals(PdfReader.getPdfObjectRelease(action.get(PdfName.S)))) { bookmark.setType(BookmarkType.Uri); bookmark.setUri(((PdfString) PdfReader.getPdfObjectRelease(action.get(PdfName.URI))).toUnicodeString()); } else if (PdfName.GOTOR.equals(PdfReader.getPdfObjectRelease(action.get(PdfName.S)))) { bookmark.setRemoteDestination(true); PdfObject file = PdfReader.getPdfObjectRelease(action.get(PdfName.F)); if (file != null) { if (file.isString()) { String path = Ut.onWindowsReplaceBackslashWithSlash(((PdfString) file).toUnicodeString()); bookmark.setRemoteFilePath(path); } else if (file.isDictionary()) { file = PdfReader.getPdfObject(((PdfDictionary) file).get(PdfName.F)); if (file.isString()) { bookmark.setRemoteFilePath(((PdfString) file).toUnicodeString()); } } } dest = PdfReader.getPdfObjectRelease(action.get(PdfName.D)); if (dest != null) { if (dest.isString()) { bookmark.setNamedDestination(dest.toString()); } else if (dest.isName()) { bookmark.setNamedDestination(PdfName.decodeName(dest.toString())); bookmark.setNamedAsName(true); } else if (dest.isArray()) { PdfArray arr = (PdfArray) dest; PdfReader remoteReader; try { // File remoteFile = new File(bookmark.getRemoteFilePath()); // if (!remoteFile.isAbsolute()) { // File openedFile = new File(filePath); // String containingFolder = openedFile.getParent(); // String remotePath = containingFolder + File.separator + bookmark.getRemoteFilePath(); // remoteFile = new File(remotePath); // } File remoteFile = Ut.createAbsolutePath(new File(filePath), new File(bookmark.getRemoteFilePath())); remoteReader = new PdfReader(remoteFile.getCanonicalPath()); makeBookmarkParam(remoteReader, bookmark, arr, null); remoteReader.close(); } catch (IOException ex) { //System.out.println(ex.getMessage()); } finally { } } } PdfObject newWindow = PdfReader.getPdfObjectRelease(action.get(PdfName.NEWWINDOW)); if (newWindow != null) { bookmark.setNewWindow(((PdfBoolean) newWindow).booleanValue()); } } else if (PdfName.LAUNCH.equals(PdfReader.getPdfObjectRelease(action.get(PdfName.S)))) { bookmark.setType(BookmarkType.Launch); PdfObject file = PdfReader.getPdfObjectRelease(action.get(PdfName.F)); if (file == null) { file = PdfReader.getPdfObjectRelease(action.get(PdfName.WIN)); } if (file != null) { if (file.isString()) { bookmark.setFileToLaunch(((PdfString) file).toUnicodeString()); } else if (file.isDictionary()) { file = PdfReader.getPdfObjectRelease(((PdfDictionary) file).get(PdfName.F)); if (file.isString()) { bookmark.setFileToLaunch(((PdfString) file).toUnicodeString()); } } } } else if (PdfName.HIDE.equals(PdfReader.getPdfObjectRelease(action.get(PdfName.S)))) { bookmark.setType(BookmarkType.Hide); PdfObject annotation = PdfReader.getPdfObjectRelease(action.get(PdfName.T)); if (annotation != null) { if (annotation.isDictionary()) { } else if (annotation.isArray()) { } else if (annotation.isString()) { bookmark.setFieldNameToHide(((PdfString) annotation).toUnicodeString()); } } PdfBoolean hide = (PdfBoolean) PdfReader.getPdfObjectRelease(action.get(PdfName.H)); if (hide != null) { bookmark.setHide(hide.booleanValue()); } } else { bookmark.setType(BookmarkType.Unknown); } }
From source file:it.flavianopetrocchi.jpdfbookmarks.itextbookmarksconverter.iTextBookmarksConverter.java
License:Open Source License
private void mapGotoBookmark(Bookmark bookmark, PdfObject dest) { if (dest.isString()) { if (namesAsString == null) { namesAsString = reader.getNamedDestinationFromStrings(); }//from ww w .j a va2 s. c o m bookmark.setType(BookmarkType.Named); bookmark.setNamedDestination(dest.toString()); PdfArray namedDest = getNamedDestination(reader, dest.toString(), false); Bookmark namedTarget = new Bookmark(); namedTarget.setTitle(dest.toString()); makeBookmarkParam(reader, namedTarget, (PdfArray) namedDest, pages); bookmark.setNamedTarget(namedTarget); } else if (dest.isName()) { if (namesAsName == null) { namesAsName = reader.getNamedDestinationFromNames(); } bookmark.setType(BookmarkType.Named); String name = PdfName.decodeName(dest.toString()); bookmark.setNamedDestination(name); bookmark.setNamedAsName(true); PdfArray namedDest = getNamedDestination(reader, name, true); Bookmark namedTarget = new Bookmark(); namedTarget.setTitle(name); makeBookmarkParam(reader, namedTarget, (PdfArray) namedDest, pages); bookmark.setNamedTarget(namedTarget); } else if (dest.isArray()) { makeBookmarkParam(reader, bookmark, (PdfArray) dest, pages); } }
From source file:net.mitnet.tools.pdf.book.pdf.itext.PdfReaderHelper.java
License:Open Source License
/** * @see PdfReader#getInfo()/*from ww w . j a v a2 s . c o m*/ */ public String getPdfStringValue(Map<String, String> pdfInfo, PdfName pdfName, String defaultValue) { String result = defaultValue; if ((pdfInfo != null) && (pdfName != null)) { String pdfObjectKey = PdfName.decodeName(pdfName.toString()); String pdfStringValue = (String) pdfInfo.get(pdfObjectKey); if (pdfStringValue != null) { result = pdfStringValue; } } return result; }