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

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

Introduction

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

Prototype

public static String decodeName(String name) 

Source Link

Document

Decodes an escaped name given in the form "/AB#20CD" into "AB CD".

Usage

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;
}