...
Codeblock | ||||
---|---|---|---|---|
| ||||
// Konfiguration des JadiceShaperNodes StreamInputNode inputNode = new StreamInputNode(); JadiceShaperNode shaperNode = new JadiceShaperNode(); shaperNode.setTargetMimeType("application/pdf"); // Konfiguration des beiliegenden PageDecorators PageDecorator simpleDecorator = new HeaderFooterPageDecorator(); simpleDecorator.setTemplate("DUPLIKAT"); simpleDecorator.setFont(new Font("Arial", Font.BOLD, 30)); simpleDecorator.setTextOrientation(-45.0f); simpleDecorator.setHorizontalAlignment(HorizontalAlignment.CENTER); simpleDecorator.setVerticalAlignment(VerticalAlignment.CENTER); shaperNode.getSettings(BaseShaperSettings.class).setPageDecorator(simpleDecorator); // Einbinden in einen Workflow und Aufruf eines Jobs siehe: jadice server Entwicklerhandbuch |
...
Im ersten Schritt dieses Szenario wird davon ausgegangen, dass das einzubrennende Wasserzeichen immer gleich bleibt Dieses liegt als (einseitiges) PDF-Dokument vor. Außerdem wird davon ausgegangen, dass das Dokument mit dem Inhalt ebenso bereits als PDF vorliegt.
Hinweis |
---|
Achten Sie beim Erstellen des Wasserzeichen-PDFs darauf, dass dieses einen transparenten Hintergrund hat. Andernfalls werden die restlichen Dokumentinhalte verdeckt. |
Mit Hilfe der PDFCompositeNode
können nun das PDF mit dem Inhalt und das PDF mit dem Wasserzeichen zusammengefügt werden:
Codeblock | ||||
---|---|---|---|---|
| ||||
// Konfiguration des Workflows StreamInputNode inputNode = new StreamInputNode(); PDFCompositeNode compositeNode = new PDFCompositeNode(); // Konfiguration des PDFCompositeNode compositeNode.setRepeat(true); // Wiederholen des Wasserzeichens compositeNode.setOrder(Order.BACK_TO_FRONT); // Wasserzeichen über Inhalt // Einbinden in einen Workflow und Aufruf eines Jobs siehe: jadice server Entwicklerhandbuch (...) // Senden der Datenströme an jadice server InputStream myDocumentStream = ...; InputStream myWatermarkPDFStream = ...; inputNode.addStream(myDocumentInputStreammyDocumentStream); inputNode.addStream(myWatermarkPDFInputStreammyWatermarkPDFStream); inputNode.complete(); |
Für den Anwendungsfall, dass das Dokument mit dem Inhalt noch durch jadice server zu konvertieren ist, muss der Workflow dahingehend angepasst werden, dass dieses Dokument und das Wasserzeichen über unterschiedliche Knoten zum PDFCompositeNode
gelangen.
Codeblock | ||||
---|---|---|---|---|
| ||||
// Konfiguration des Workflows StreamInputNode documentInputNode = new StreamInputNode(); Node myConversionNode = ...// entspr. Node zur Dokumentkonvertierung StreamInputNode watermarkInputNode = new StreamInputNode(); DemultiplexerNode demux = new DemultiplexerNode(); PDFCompositeNode compositeNode = new PDFCompositeNode(); // Konfiguration des PDFCompositeNode compositeNode.setRepeat(true); // Wiederholen des Wasserzeichens compositeNode.setOrder(Order.BACK_TO_FRONT); // Wasserzeichen über Inhalt // Einbinden in einen Workflow und Aufruf eines Jobs siehe: jadice server Entwicklerhandbuch documentInputNode.appendSuccessor(myConversionNode).appendSuccessor(demux); watermarkInputNode.appendSuccessor(demux); demux.appendSuccessor(compositeNode); // Senden der Datenströme an jadice server InputStream myDocumentStream = ...; documentInputNode.addStream(myDocumentInputStreammyDocumentStream); documentInputNode.complete(); InputStream myWatermarkPDFStream = ...; watermarkInputNode.addStream(myWatermarkPDFInputStreammyWatermarkPDFStream); watermarkInputNode.complete(); |
...