Last active
September 21, 2015 16:25
-
-
Save geissebn/c43f156e197a75a8da81 to your computer and use it in GitHub Desktop.
demo code for the jadice knowledge base article at https://levigo.de/info/x/kYHHAQ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.Calendar; | |
import org.apache.activemq.ActiveMQConnectionFactory; | |
import org.apache.jempbox.xmp.XMPMetadata; | |
import org.apache.jempbox.xmp.XMPSchemaBasic; | |
import org.apache.jempbox.xmp.XMPSchemaDublinCore; | |
import org.apache.jempbox.xmp.XMPSchemaPDF; | |
import org.w3c.dom.Document; | |
import com.levigo.jadice.server.Job; | |
import com.levigo.jadice.server.client.JobFactory; | |
import com.levigo.jadice.server.client.jms.JMSJobFactory; | |
import com.levigo.jadice.server.nodes.StreamInputNode; | |
import com.levigo.jadice.server.nodes.StreamOutputNode; | |
import com.levigo.jadice.server.pdf.PDFMetadataNode; | |
public class ModifyPDFMetadata { | |
public void clearMetadata() throws Exception { | |
final JobFactory jf = new JMSJobFactory(new ActiveMQConnectionFactory("tcp://localhost:61616"), JMSJobFactory.DEFAULT_QUEUE_NAME); | |
final Job job = jf.createJob(); | |
job.setType("Clear PDF Metadata"); | |
final PDFMetadataNode pdfMetadata = new PDFMetadataNode(); | |
// Clear any metadata: | |
pdfMetadata.setAuthor(null); | |
pdfMetadata.setCreator(null); | |
pdfMetadata.setCreationDate(null); | |
pdfMetadata.setKeywords(null); | |
pdfMetadata.setModificationDate(null); | |
pdfMetadata.setProducer(null); | |
pdfMetadata.setSubject(null); | |
pdfMetadata.setTitle(null); | |
pdfMetadata.setXmpMetaData(null); | |
job.attach(new StreamInputNode() | |
.appendSuccessor(pdfMetadata) | |
.appendSuccessor(new StreamOutputNode())); | |
} | |
public void writeXMP() throws Exception { | |
final JobFactory jf = new JMSJobFactory(new ActiveMQConnectionFactory("tcp://localhost:61616"), JMSJobFactory.DEFAULT_QUEUE_NAME); | |
final Job job = jf.createJob(); | |
job.setType("Write XMP to PDF"); | |
XMPMetadata xmlMeta = new XMPMetadata(); | |
XMPSchemaPDF pdfScheme = xmlMeta.addPDFSchema(); | |
pdfScheme.setProducer("ACME PDF Producer"); | |
pdfScheme.setKeywords("XMP, demo, jadice server"); | |
XMPSchemaBasic basicScheme = xmlMeta.addBasicSchema(); | |
Calendar createDate = Calendar.getInstance(); | |
createDate.set(2015, 0, 1, 12, 0, 0); // 1st of January 2015, 12:00 | |
basicScheme.setCreateDate(createDate); | |
Calendar modifyDate = Calendar.getInstance(); | |
modifyDate.set(2015, 1, 28, 12, 0, 0); // 28th of February 2015, 12:00 | |
basicScheme.setModifyDate(modifyDate); | |
XMPSchemaDublinCore dc = xmlMeta.addDublinCoreSchema(); | |
dc.setTitle("XMP demonstration document"); | |
dc.setDescription("This document is the result of the PDFMetadataNode of jadice server"); | |
dc.addCreator("John Doe"); | |
// Provide metadata as DOM document | |
Document dom = xmlMeta.getXMPDocument(); | |
final PDFMetadataNode pdfMetadata = new PDFMetadataNode(); | |
pdfMetadata.setXmpMetaData(dom); | |
job.attach(new StreamInputNode() | |
.appendSuccessor(pdfMetadata) | |
.appendSuccessor(new StreamOutputNode())); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment