Search in sources :

Example 1 with PDFileSpecification

use of org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification in project pdfbox by apache.

the class FDFDictionary method writeXML.

/**
 * This will write this element as an XML document.
 *
 * @param output The stream to write the xml to.
 *
 * @throws IOException If there is an error writing the XML.
 */
public void writeXML(Writer output) throws IOException {
    PDFileSpecification fs = this.getFile();
    if (fs != null) {
        output.write("<f href=\"" + fs.getFile() + "\" />\n");
    }
    COSArray ids = this.getID();
    if (ids != null) {
        COSString original = (COSString) ids.getObject(0);
        COSString modified = (COSString) ids.getObject(1);
        output.write("<ids original=\"" + original.toHexString() + "\" ");
        output.write("modified=\"" + modified.toHexString() + "\" />\n");
    }
    List<FDFField> fields = getFields();
    if (fields != null && fields.size() > 0) {
        output.write("<fields>\n");
        for (FDFField field : fields) {
            field.writeXML(output);
        }
        output.write("</fields>\n");
    }
}
Also used : PDFileSpecification(org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification) COSArray(org.apache.pdfbox.cos.COSArray) COSString(org.apache.pdfbox.cos.COSString)

Example 2 with PDFileSpecification

use of org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification in project pdfbox by apache.

the class TestGotoRemoteAction method testGoto_KO_InvalidContent.

@Test
public void testGoto_KO_InvalidContent() throws Exception {
    PDActionRemoteGoTo gotoAction = new PDActionRemoteGoTo();
    gotoAction.setD(new COSDictionary());
    gotoAction.setFile(new PDFileSpecification() {

        public COSBase getCOSObject() {
            return COSName.getPDFName("ADest");
        }

        @Override
        public void setFile(String file) {
        }

        @Override
        public String getFile() {
            return "pouey";
        }
    });
    valid(gotoAction, false, PreflightConstants.ERROR_ACTION_INVALID_TYPE);
}
Also used : PDFileSpecification(org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification) COSDictionary(org.apache.pdfbox.cos.COSDictionary) COSBase(org.apache.pdfbox.cos.COSBase) PDActionRemoteGoTo(org.apache.pdfbox.pdmodel.interactive.action.PDActionRemoteGoTo) Test(org.junit.Test)

Example 3 with PDFileSpecification

use of org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification in project pdfbox by apache.

the class TestGotoRemoteAction method testGoto_OK.

@Test
public void testGoto_OK() throws Exception {
    PDActionRemoteGoTo gotoAction = new PDActionRemoteGoTo();
    gotoAction.setD(COSName.getPDFName("ADest"));
    gotoAction.setFile(new PDFileSpecification() {

        public COSBase getCOSObject() {
            return COSName.getPDFName("ADest");
        }

        @Override
        public void setFile(String file) {
        }

        @Override
        public String getFile() {
            return "pouey";
        }
    });
    valid(gotoAction, true);
}
Also used : PDFileSpecification(org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification) COSBase(org.apache.pdfbox.cos.COSBase) PDActionRemoteGoTo(org.apache.pdfbox.pdmodel.interactive.action.PDActionRemoteGoTo) Test(org.junit.Test)

Example 4 with PDFileSpecification

use of org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification in project pdfbox by apache.

the class TestSubmitAction method createSubmitAction.

protected COSDictionary createSubmitAction() {
    COSDictionary action = new COSDictionary();
    action.setItem(COSName.TYPE, COSName.getPDFName("Action"));
    action.setItem(COSName.S, COSName.getPDFName("SubmitForm"));
    action.setItem(COSName.F, new PDFileSpecification() {

        public COSBase getCOSObject() {
            return COSName.getPDFName("value");
        }

        @Override
        public void setFile(String file) {
        }

        @Override
        public String getFile() {
            return null;
        }
    });
    return action;
}
Also used : PDFileSpecification(org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification) COSDictionary(org.apache.pdfbox.cos.COSDictionary) COSBase(org.apache.pdfbox.cos.COSBase)

Example 5 with PDFileSpecification

use of org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification in project pdfbox by apache.

the class ExtractEmbeddedFiles method main.

/**
 * This is the main method.
 *
 * @param args The command line arguments.
 *
 * @throws IOException If there is an error parsing the document.
 */
public static void main(String[] args) throws IOException {
    if (args.length != 1) {
        usage();
        System.exit(1);
    } else {
        PDDocument document = null;
        try {
            File pdfFile = new File(args[0]);
            String filePath = pdfFile.getParent() + System.getProperty("file.separator");
            document = PDDocument.load(pdfFile);
            PDDocumentNameDictionary namesDictionary = new PDDocumentNameDictionary(document.getDocumentCatalog());
            PDEmbeddedFilesNameTreeNode efTree = namesDictionary.getEmbeddedFiles();
            if (efTree != null) {
                Map<String, PDComplexFileSpecification> names = efTree.getNames();
                if (names != null) {
                    extractFiles(names, filePath);
                } else {
                    List<PDNameTreeNode<PDComplexFileSpecification>> kids = efTree.getKids();
                    for (PDNameTreeNode<PDComplexFileSpecification> node : kids) {
                        names = node.getNames();
                        extractFiles(names, filePath);
                    }
                }
            }
            // extract files from annotations
            for (PDPage page : document.getPages()) {
                for (PDAnnotation annotation : page.getAnnotations()) {
                    if (annotation instanceof PDAnnotationFileAttachment) {
                        PDAnnotationFileAttachment annotationFileAttachment = (PDAnnotationFileAttachment) annotation;
                        PDFileSpecification fileSpec = annotationFileAttachment.getFile();
                        if (fileSpec instanceof PDComplexFileSpecification) {
                            PDComplexFileSpecification complexFileSpec = (PDComplexFileSpecification) fileSpec;
                            PDEmbeddedFile embeddedFile = getEmbeddedFile(complexFileSpec);
                            extractFile(filePath, complexFileSpec.getFilename(), embeddedFile);
                        }
                    }
                }
            }
        } finally {
            if (document != null) {
                document.close();
            }
        }
    }
}
Also used : PDPage(org.apache.pdfbox.pdmodel.PDPage) PDAnnotationFileAttachment(org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationFileAttachment) PDEmbeddedFilesNameTreeNode(org.apache.pdfbox.pdmodel.PDEmbeddedFilesNameTreeNode) PDEmbeddedFile(org.apache.pdfbox.pdmodel.common.filespecification.PDEmbeddedFile) PDAnnotation(org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation) PDComplexFileSpecification(org.apache.pdfbox.pdmodel.common.filespecification.PDComplexFileSpecification) PDDocumentNameDictionary(org.apache.pdfbox.pdmodel.PDDocumentNameDictionary) PDFileSpecification(org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification) PDDocument(org.apache.pdfbox.pdmodel.PDDocument) PDEmbeddedFile(org.apache.pdfbox.pdmodel.common.filespecification.PDEmbeddedFile) File(java.io.File) PDNameTreeNode(org.apache.pdfbox.pdmodel.common.PDNameTreeNode)

Aggregations

PDFileSpecification (org.apache.pdfbox.pdmodel.common.filespecification.PDFileSpecification)7 COSBase (org.apache.pdfbox.cos.COSBase)4 PDActionRemoteGoTo (org.apache.pdfbox.pdmodel.interactive.action.PDActionRemoteGoTo)3 Test (org.junit.Test)3 COSArray (org.apache.pdfbox.cos.COSArray)2 COSDictionary (org.apache.pdfbox.cos.COSDictionary)2 File (java.io.File)1 ArrayList (java.util.ArrayList)1 COSString (org.apache.pdfbox.cos.COSString)1 PDDocument (org.apache.pdfbox.pdmodel.PDDocument)1 PDDocumentNameDictionary (org.apache.pdfbox.pdmodel.PDDocumentNameDictionary)1 PDEmbeddedFilesNameTreeNode (org.apache.pdfbox.pdmodel.PDEmbeddedFilesNameTreeNode)1 PDPage (org.apache.pdfbox.pdmodel.PDPage)1 COSArrayList (org.apache.pdfbox.pdmodel.common.COSArrayList)1 PDNameTreeNode (org.apache.pdfbox.pdmodel.common.PDNameTreeNode)1 PDComplexFileSpecification (org.apache.pdfbox.pdmodel.common.filespecification.PDComplexFileSpecification)1 PDEmbeddedFile (org.apache.pdfbox.pdmodel.common.filespecification.PDEmbeddedFile)1 PDAnnotation (org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation)1 PDAnnotationFileAttachment (org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotationFileAttachment)1