Voraussetzungen
Sie benötigen pdf.js , die als externe Bibliothek auf Ihrer Simplifier-Instanz verfügbar sind:
Sie benötigen pdf.js , die als externe Bibliothek auf Ihrer Simplifier-Instanz verfügbar sind:
Legen Sie einen clientseitigen Business Object (BO)- Funktionsaufruf an, um die Logik der Volltextsuche zu implementieren:
// input: 'base64' (String), 'searchValue' (String)
// output: 'result' (Boolean)
var base64 = oPayload.base64;
base64 = base64.replace("data:application/pdf;base64,", "");
var pdfData = atob(base64);
function searchPage(doc, pageNumber) {
return doc.getPage(pageNumber).then(function(page){
return page.getTextContent();}).then(function(content) {
var text = content.items.map(function(i) {return i.str;}).join('');
var re = new RegExp(oPayload.searchValue);
return re.test(text);});
}
var loading = pdfjsLib.getDocument({data: pdfData});
loading.promise.then(async function(doc) {
var result = false;
for (var i = 1; i <= doc.numPages; i++) {
result = await searchPage(doc, i);
if (result) {
break;
}
}
return result;}).then(function(searchResult) {
fnSuccess({
result: searchResult
})
}).catch(console.error);
Hinzufügen pdf.js als
externe Bibliothek zu Ihrer Simplifier-App (
Knowledge Base-Artikel):
Verwenden Sie das Widget FileUploader (1), damit der Benutzer ein PDF-Dokument zur Analyse auswählen kann. Fügen Sie zusätzlich ein Eingabe-Widget (2) zur Eingabe des Suchwerts hinzu. Mit dem ‘Suchen’-Button (3) startet der Nutzer die Volltextsuche.
Erstellen Sie eine Story für den Workflow:
// replace "FileUploader" with the ID of your FileUploader widget
var uploaderInput = this.getView().byId("FileUploader");
if (uploaderInput.getValue() !== "") {
var files = uploaderInput.oFileUpload.files;
if (files.length === 1) {
var file = files[0];
}
}
// create a global variable "uploaderFile" (String) to store the file
this.getGlobals().setVar("uploaderFile", file);
Um das Ergebnis anzuzeigen, können Sie ein ObjectStatus-Widget verwenden und die Status- und Symboleigenschaft mit einer Bedingungsform im Prozessdesigner (1) angeben: