Webservice Beispiel: XMP-Metadaten bearbeiten
Mindestanforderungen
- Java-Version: 7
- webPDF-Version: 7
- wsclient-Version: 1
Wie kann man die XMP-Metadaten bearbeiten mit Hilfe der webPDF wsclient Bibliothek?
Wichtiger Hinweis:
Das nun folgende Coding-Beispiel beruht auf der Nutzung der webPDF wsclient Bibliothek. Um das Beispiel zu verstehen und anzuwenden, sollte zunächst der folgende Blogbeitrag beachtet werden.
Um den Webservice aufzurufen, sollten Sie zunächst eine REST- oder SOAP-Session erzeugt haben. Über den Aufruf der WebServiceFactory wird dann entweder ein ToolboxWebService-Objekt für eine SOAP-Session erzeugt.
ToolboxWebService toolboxWebService =
WebServiceFactory.createInstance(
session, WebServiceType.TOOLBOX
);
Alternativ wird ein ToolboxRestWebService-Objekt für eine REST-Session erzeugt.
ToolboxRestWebService toolboxWebService =
WebServiceFactory.createInstance(
session, WebServiceType.TOOLBOX
);
Anschließend sollte diesem WebService-Objekt über den Aufruf der Methode setDocument() entweder ein RestDocument- oder ein SoapDocument-Objekt übergeben werden.
Näheres zu diesem Webservice Parameter
Um ändernden Zugriff auf ein Dokument zu erhalten, müssen Sie dem Webservice-Aufruf das aktuelle open- und/oder permission-Passwort des Dokuments mitgeben. Das können Sie direkt am erzeugten ToolboxWebService-Objekt tun. Verfügt das Dokument nicht über einen entsprechenden Passwortschutz, können Sie diesen Punkt überspringen.
toolboxWebService.getPassword().setOpen("password");
toolboxWebService.getPassword().setPermission("password");
XMP Operation des ToolboxWebService
Jetzt wollen wir die Xmp-Operation des webPDF ToolboxWebService vorstellen und zeigen, wie Sie diese mit der webPDF wsclient-Bibliothek nutzen können.
Der ToolboxWebService ist ein Endpunkt Ihres webPDF-Servers, der eine Reihe von Operationen zusammenfasst, mit denen Sie Ihr PDF-Dokument direkt manipulieren können. Eine dieser Operationen ist die Xmp-Operation. Mit der Xmp-Operation können Sie einem Dokument XMP-Metadaten hinzufügen.
So fügen Sie Ihrem WebService-Objekt eine Xmp-Operation hinzu:
XmpType xmp = new XmpType();
toolboxWebService.getOperation().add(xmp);
Am Objekt Xmp lassen sich folgende Parameter setzen:
dataFormat (Standardwert: "json")
Format der XMP-Metadaten, die hinzugefügt werden sollen. Folgende Werte können hier gesetzt werden:
- json = json
xmp.setDataFormat(XmpDataFormatType.JSON);
Das Objekt "data"
Um die XMP-Daten zu importieren und deren Import zu konfigurieren, fügen Sie dem Xmp-Objekt ein XmpFileDataType-Objekt hinzu.
XmpFileDataType data = new XmpFileDataType();
xmp.setData(data);
Zu Form und Struktur der XMP-Metadaten, können Sie sich diesen Abschnitt des Nutzerhandbuchs durchlesen.
Am Objekt data lassen sich folgende Parameter setzen:
source
Gibt an, aus welcher Quelle die XMP-Daten bezogen werden sollen. Folgende Werte können hier gesetzt werden
value= Die Daten werden direkt als Byte-Array übergeben.uri= Es wird eine URI-Referenz auf die Daten übergeben.
data.setSource(FileDataSourceType.VALUE);
value
Übergibt die XMP-Daten in Form eines Byte-Arrays. source sollte dabei auf value gesetzt sein.
data.setValue(FileUtils.readFileToByteArray(new File("…")));
uri
Übergibt eine URI-Referenz auf die zu nutzenden XMP-Daten. source sollte dabei auf uri gesetzt sein.
data.setUri(new File("...").toURI().toString());
Das Objekt "namespace"
Um den Namensraum der XMP-Daten einzuschränken, können Sie dem Xmp-Objekt ein XmpNamespaceType-Objekt hinzufügen.
XmpNamespaceType namespace = new XmpNamespaceType();
xmp.setNamespace(namespace);
Am Objekt namespace lassen sich folgende Parameter setzen:
namespaceName (Standardwert: "")
Setzt einen Namensraum für die XMP-Daten.
namespace.setNamespaceName("webPDF XMP Properties");
namespacePrefix (Standardwert: "")
Setzt ein Präfix für den Namensraum der XMP-Daten.
namespace.setNamespacePrefix("webPDF");
namespaceURI (Standardwert: "")
Setzt die URI für den Namensraum der XMP-Daten.
namespace.setNamespaceURI("http://ns.webpdf.de/webpdf/7.0/");
Detaillierteres Beispiel
Wir wollen jetzt ein etwas ausführlicheres Beispiel für unseren gesamten Webservice-Aufruf zur Ansprache der SOAP-Schnittstelle geben:
try (
// Aufbau einer Session mit dem webPDF Server(hier SOAP)
SoapSession session = SessionFactory.createInstance(
WebServiceProtocol.SOAP,
new URL("https://localhost:8080/webPDF/")
);
// Bereit stellen des Dokuments, das verarbeitet werden soll
// und der Datei, in die das Ergebnis geschrieben werden soll
SoapDocument soapDocument = new SoapDocument(
new File("Pfad des Quelldokuments").toURI(),
new File("Pfad des Zieldokuments")
)
) {
// ...
} catch (IOException ex) {
// ...
}
Weitere Link-Tipps
- Einen Beitrag zur Nutzung der REST-Schnittstelle finden Sie hier: Nutzung der REST Schnittstelle mittels webPDF wsclient
- Hier geht's zum Blog-Beitrag über die Verwendung der SOAP-Schnittstelle: Nutzung der SOAP Schnittstelle mittels webPDF wsclient