Webservice Barcodes lesen und erstellen
Mindestanforderungen
- Java-Version: 7
- webPDF-Version: 7
- wsclient-Version: 1
Hier zeigen wir ein konkretes Code-Beispiel für den Barcode-Webservice und die Nutzung mit der webPDF-wsclient-Bibliothek.
Wichtiger Hinweis: Das folgende Coding-Beispiel basiert auf der Nutzung der webPDF-wsclient-Bibliothek.
Vorarbeiten für den Webservice-Aufruf
Für den Aufruf sollten Sie bereits eine REST- oder SOAP-Session erzeugt haben. Über die WebServiceFactory erstellen Sie dann entweder ein BarcodeWebService-Objekt (SOAP) oder ein BarcodeRestWebService-Objekt (REST).
SOAP:
BarcodeWebService barcodeWebService =
WebServiceFactory.createInstance(
session, WebServiceType.BARCODE
);
REST:
BarcodeRestWebService barcodeWebService =
WebServiceFactory.createInstance(
session, WebServiceType.BARCODE
);
Über setDocument() übergeben Sie ein RestDocument oder SoapDocument.
Webservice-Parameter
Für schreibende Zugriffe kann das aktuelle open- und/oder permission-Passwort erforderlich sein:
barcodeWebService.getPassword().setOpen("password");
barcodeWebService.getPassword().setPermission("password");
Wenn kein Passwortschutz vorliegt, kann dieser Schritt übersprungen werden.
Beschreibung des Barcode-Webservice
Der Barcode-Webservice ist ein Endpunkt des webPDF-Servers, mit dem Barcodes in PDF-Dokumenten erzeugt sowie erkannt und ausgelesen werden können.
Die Operation erhalten Sie so:
BarcodeType barcode = barcodeWebService.getOperation();
Das Objekt add
Zum Hinzufügen neuer Barcodes:
BarcodeType.Add add = new BarcodeType.Add();
barcode.setAdd(add);
Unterstützte Barcode-Typen:
- Aztec (
AztecBarcodeType) - Codabar (
CodabarBarcodeType) - Code128 (
Code128BarcodeType) - Code39 (
Code39BarcodeType) - Datamatrix (
DataMatrixBarcodeType) - EAN13 (
EAN13BarcodeType) - EAN8 (
EAN8BarcodeType) - ITF (
ItfBarcodeType) - PDF417 (
Pdf417BarcodeType) - QR-Code (
QrBarcodeType) - UPCA (
UpcaBarcodeType)
Beispiel für Aztec:
AztecBarcodeType aztec = new AztecBarcodeType();
add.getAztec().add(aztec);
Allgemeine Barcode-Parameter
Diese Parameter gelten für alle Barcode-Typen:
value (Standardwert: "")
Inhalt des Barcodes:
typedBarcode.setValue("http://www.softvision.de");
pages (Standardwert: "")
Seitenbereich (1, 1,3,5, 1-5, 1,3-5,6, *):
typedBarcode.setPages("1,3-5,6");
charset (Standardwert: "utf-8")
Zeichensatz:
typedBarcode.setCharset("utf-8");
rotation (Standardwert: 0)
Rotation in 90-Grad-Schritten:
typedBarcode.setRotation(90);
margin (Standardwert: 0)
Leerer Rand um den Barcode:
typedBarcode.setMargin(5);
Das Objekt position
Position und Dimensionen über RectangleType:
RectangleType position = new RectangleType();
typedBarcode.setPosition(position);
Parameter:
x(Standard:0):position.setX(15);y(Standard:0):position.setY(15);width(Standard:0):position.setWidth(200);height(Standard:0):position.setHeight(16);coordinates(Standard:user):position.setCoordinates(CoordinatesType.USER);metrics(Standard:mm):position.setMetrics(MetricsType.PX);
Koordinatensysteme:
user= Ursprung links obenpdf= Ursprung links unten
Maßeinheiten:
mm= Millimeterpx= Pixel
Typ-spezifische Parameter
Aztec
errorCorrection(0-100):aztec.setErrorCorrection(50);layers:aztec.setLayers(10);
Datamatrix
errorCorrection(1-8):dataMatrix.setErrorCorrection(7);shape:dm.setShape(DataMatrixShapeType.RECTANGLE);
QR-Code
errorCorrection(l,m,q,h):
qrBarcodeType.setErrorCorrection(QrCodeErrorCorrectionType.M);
PDF417
errorCorrection(1-8):pdf417.setErrorCorrection(7);compact:pdf417.setCompact(true);compactionMode:pdf417.setCompactionMode(Pdf417CompactionModeType.BYTE);shape:pdf417.setShape(DataMatrixShapeType.SQUARE);dataCodewordsMax:pdf417.setDataCodewordsMax(7);dataCodewordsMin:pdf417.setDataCodewordsMin(4);symbolsPerCodewordMax:pdf417.setSymbolsPerCodewordMax(8);symbolsPerCodewordMin:pdf417.setSymbolsPerCodewordMin(4);
Das Objekt detect
Zum Erkennen und Auslesen von Barcodes:
BarcodeType.Detect detect = new BarcodeType.Detect();
barcode.setDetect(detect);
inputFormat (Standardwert: "pdf")
detect.setInputFormat(BarcodeDetectInputFormatType.PDF);
outputFormat (Standardwert: "json")
detect.setOutputFormat(BarcodeDetectOutputFormatType.XML);
Das Objekt selection
Zur Konfiguration der Barcode-Erkennung:
BarcodeSelectionType selection = new BarcodeSelectionType();
detect.getSelection().add(selection);
Wichtige Parameter:
formats:selection.setFormats("qrcode,aztec,code39");charset:selection.setCharset("utf-8");pages:selection.setPages("1,3-5,6");allowedLengths:selection.setAllowedLengths("14");barcode39CheckDigit:selection.setBarcode39CheckDigit(true);codabarStartEndDigits:selection.setCodabarStartEndDigits(true);gs1:selection.setGs1(true);pureBarcode:selection.setPureBarcode(true);resolution:selection.setResolution(300);tryHarder:selection.setTryHarder(false);upcEanExtensions:selection.setUpcEanExtensions("8");
Das Objekt scanArea
Zur Eingrenzung des Scan-Bereichs:
RectangleType scanArea = new RectangleType();
selection.setScanArea(scanArea);
Für beste Ergebnisse sollte der Bereich möglichst exakt auf den jeweiligen Barcode begrenzt werden.
SOAP-Beispiel (gekürzt)
try (
// Aufbau einer Session mit dem webPDF-Server (hier SOAP):
SoapSession session = SessionFactory.createInstance(
WebServiceProtocol.SOAP,
new URL("https://localhost:8080/webPDF/")
);
// Bereitstellen von Quell- und Zieldokument:
SoapDocument soapDocument = new SoapDocument(
new File("Pfad des Quelldokuments").toURI(),
new File("Pfad des Zieldokuments")
)
) {
// Webservice-Aufruf und Verarbeitung
} catch (ResultException | MalformedURLException ex) {
// Fehlerbehandlung
}
Hintergrundinfos
- Die webPDF wsclient Bibliothek
- Nutzung der REST-Schnittstelle
- Nutzung der SOAP-Schnittstelle
- Barcode-Parameterstruktur im Nutzerhandbuch
Weitere Coding-Beispiele finden Sie hier.