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");
}
}
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);
}
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);
}
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;
}
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();
}
}
}
}
Aggregations