Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core compare document
Hinweis: Diese Dokumentation bezieht sich auf die aktuellste Version des Plug-ins. Aktualisieren Sie das hier beschriebene Plug-in, um die Dokumentation verwenden zu können.
Diese Dokumentation beschreibt, wie Sie als Entwickler etwa weitere Programme zum Vergleichen von Dokumenten per JavaScript konfigurieren.
Das Skript, auf das Sie im Property-Entry Script verweisen, hat folgenden Aufbau:
/* global sc */ let compdocUtils = require('/agorum/roi/customers/accompdoc/js/compdoc-utils'); // // Zwei <extension>-Dateien werden miteinander durch das Programm <Programmname> verglichen // object1 : Die erste <extension>-Datei // object2 : die zweite <extension>-Datei // callback: eine Callback-Methode kann hier übergeben werden // function compare(object1, object2, callbackUrl) { var wscriptFile = compdocUtils.getWScriptFile(); var strWScript = []; // --------------------- start Implementation --------------------- // // ToDo: Hier muss ihre Implementierung rein. // // --------------------- end Implementation --------------------- compdocUtils.writeWscript(wscriptFile, strWScript, callbackUrl); return wscriptFile; } // -- interface module.exports = { compare: compare };
Wenn Sie die Unterschiede etwa per aguila-Widget anzeigen, hat das Skript folgenden Aufbau:
/* global sc */ let aguila = require('common/aguila'); // // Zwei <extension>-Dateien werden miteinander durch das Programm <Programmname> verglichen // object1 : Die erste <extension>-Datei // object2 : die zweite <extension>-Datei // callback: eine Callback-methode kann hier übergeben werden // function compare(object1, object2, callbackUrl) { // --------------------- start Implementation --------------------- // // ToDo: Hier muss ihre Implementierung rein. // // --------------------- end Implementation --------------------- return true; // hier muss immer true stehen. Fehler müssen in diesem Skript behandelt werden } // -- interface module.exports = { compare: compare };
Mit den nachfolgenden Beispielen können Sie Programme registrieren, die das System per Aufruf startet und steuert. Sie finden diese Beispiele in der MetaDB folgendermaßen:
MAIN_MODULE_MANAGEMENT/customers/accompdoc/control/register/[ samples customer ]
Hinweis: Wollen Sie diese Beispiele verwenden, kopieren Sie sie in den Pfad MAIN_MODULE_MANAGEMENT/customers/accompdoc/control/register/. Andernfalls überschreibt das System Ihre Anpassungen an den Beispielen beim nächsten Update des Plug-ins.
Diese beispielhafte Konfiguration wird mitgeliefert und verwendet folgende Einstellungen in der MetaDB.
Einstellung | Wert |
---|---|
Script | /agorum/roi/customers/accompdoc/js/sample/comdocPSPad.js |
Selector | [nameextension=/(txt)/i] |
SupportedNameExtensions | txt |
Skript
/* global sc */ let compdocUtils = require('/agorum/roi/customers/accompdoc/js/compdoc-utils'); // // Zwei txt-Dateien werden miteinander durch das Programm "PSPad.exe" verglichen // object1 : Die erste Word-Datei // object2 : die zweite Word-Datei // callback: eine Callbak-methode kann hier übergeben werden // function compare(object1, object2, callbackUrl) { var wscriptFile = compdocUtils.getWScriptFile(); var strWScript = []; // --------------------- start Implementation --------------------- var programm = '"PSPad.exe"'; //var programm = '"C:\\\\Program Files (x86)\\\\PSPad editor\\\\PSPad.exe"'; // Der Path ist dann notwendig, // wenn das Programm nur von dort gestartet werden kann var parameter = ' -D "' + compdocUtils.getAttachmentsFullPath([object1])[0] + '" "' + compdocUtils.getAttachmentsFullPath([object2])[0] +'"'; strWScript.push('var shell = WScript.CreateObject("WScript.shell");'); strWScript.push('try {'); strWScript.push(' shell.run(\'' + programm + ' ' + parameter + '\' , 1, true);'); strWScript.push('} catch(ex) {'); strWScript.push(' // Fehler abfangen, damit PSPad im Fehlerfalle nicht stehen bleibt und auf jeden Fall die Dateien schließen'); strWScript.push('}'); // --------------------- end Implementation --------------------- compdocUtils.writeWscript(wscriptFile, strWScript, callbackUrl); return wscriptFile; } // -- interface module.exports = { compare: compare };
Diese beispielhafte Konfiguration wird mitgeliefert und verwendet folgende Einstellungen in der MetaDB.
Einstellung | Wert |
---|---|
Script | /agorum/roi/customers/accompdoc/js/sample/comdocN++.js |
Selector | [nameextension=/(txt)/i] |
SupportedNameExtensions | txt |
Skript
// callback: eine Callbak-methode kann hier übergeben werden // function compare(object1, object2, callbackUrl) { var wscriptFile = compdocUtils.getWScriptFile(); var strWScript = []; // --------------------- start Implementation --------------------- var programm = 'notepad++.exe'; var parameter = '"' + compdocUtils.getAttachmentsFullPath([object1])[0] + '" "' + compdocUtils.getAttachmentsFullPath([object2])[0] +'"'; strWScript.push('var shell = WScript.CreateObject("WScript.shell");'); strWScript.push('try {'); strWScript.push(' shell.run(\'' + programm + ' ' + parameter + '\' , 1, true);'); strWScript.push('} catch(ex) {'); strWScript.push(' // Fehler abfangen, damit das Programm im Fehlerfall nicht stehen bleibt und auf jeden Fall die Dateien schließen'); strWScript.push(' shell.Quit();'); strWScript.push('} finally {'); strWScript.push(' // Hier kann noch was eingebaut werden, das auf jeden Fall gemacht wird'); // // Hier muss dem Programm was gesendet werden, sobald es läuft, das wird dann im finaly gemacht // strWScript.push(' var WshShell = WScript.CreateObject("WScript.Shell");'); strWScript.push(' for (var i = 0;i < 20;i ++) {'); strWScript.push(' WScript.Sleep(200);'); strWScript.push(' var found = WshShell.AppActivate(\'' + compdocUtils.getAttachmentsFullPath([object2])[0] + ' - notepad++\');'); strWScript.push(' if (found) {'); strWScript.push(' WScript.Sleep(200);'); // https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/sendkeys-statement strWScript.push(' WshShell.SendKeys("^%c"); // Ctrl-ALT-A'); strWScript.push(' break;'); strWScript.push(' }'); strWScript.push(' } '); strWScript.push('}'); // --------------------- end Implementation --------------------- compdocUtils.writeWscript(wscriptFile, strWScript, callbackUrl); return wscriptFile; } // -- interface module.exports = { compare: compare };
Klickt ein Benutzer bei diesem Vergleich auf Vergleichen, kann er vorher die Reihenfolge der Dateien ändern. Danach klickt er nochmals auf Vergleichen, um den Vergleich zu starten.
Diese beispielhafte Konfiguration wird mitgeliefert und verwendet folgende Einstellungen in der MetaDB.
Einstellung | Wert |
---|---|
Script | /agorum/roi/customers/accompdoc/js/sample/comdocAdobeAcrobatDC.js |
Selector | [nameextension=/(pdf)/i] |
SupportedNameExtensions |
Skript
/* global sc */ let compdocUtils = require('/agorum/roi/customers/accompdoc/js/compdoc-utils'); // // Zwei txt-Dateien werden miteinander durch das Programm "notepad++.exe" verglichen // object1 : Die erste Word-Datei // object2 : Die zweite Word-Datei // callback: eine Callbak-mMthode kann hier übergeben werden // function compare(object1, object2, callbackUrl) { var wscriptFile = compdocUtils.getWScriptFile(); var strWScript = []; // --------------------- start Implementation --------------------- strWScript.push('var shell = WScript.CreateObject("WScript.shell");'); strWScript.push('try {'); strWScript.push(' var acroApp1 = WScript.CreateObject("AcroExch.App");'); strWScript.push(' acroApp1.Hide();'); strWScript.push(' var acroDoc1 = WScript.CreateObject("AcroExch.AVDoc");'); strWScript.push(' acroDoc1.Open(\'' + compdocUtils.getAttachmentsFullPath([object1])[0] + '\',\'' + '1-' + object2.name + '\');'); strWScript.push(' var acroApp2 = WScript.CreateObject("AcroExch.App");'); strWScript.push(' acroApp2.Hide();'); strWScript.push(' var acroDoc2 = WScript.CreateObject("AcroExch.AVDoc");'); strWScript.push(' acroDoc2.Open(\'' + compdocUtils.getAttachmentsFullPath([object2])[0] + '\',\'' + '2-' + object1.name + '\');'); strWScript.push(' var acroApp3 = WScript.CreateObject("AcroExch.App");'); strWScript.push(' acroApp3.Show();'); strWScript.push(' WScript.Sleep(300);'); strWScript.push(' var WshShell = WScript.CreateObject("WScript.Shell");'); strWScript.push(' acroApp3.MenuItemExecute("DIGSIG:CompareDocuments");'); strWScript.push(' var acroDoc3 = acroApp3.GetActiveDoc();'); strWScript.push(' acroDoc1.Close(1);'); strWScript.push(' acroApp3.Minimize(1);'); strWScript.push(' acroApp3.Maximize(1);'); strWScript.push('} catch(ex) {'); strWScript.push(' // Fehler abfangen, damit das Programm im Fehlerfall nicht stehen bleibt und auf jeden Fall die Dateien schließen'); strWScript.push(' shell.Quit();'); strWScript.push('} finally {'); strWScript.push(' // Hier kann noch was eingebaut werden, das auf jeden Fall gemacht wird'); strWScript.push('}'); // --------------------- end Implementation --------------------- compdocUtils.writeWscript(wscriptFile, strWScript, callbackUrl); return wscriptFile; } // -- interface module.exports = { compare: compare };
Bei diesem Vergleich vergleicht das System den Textindex-Inhalt von 2 Dokumenten. Den Vergleich können Sie für Dokumente verwenden, für die Sie kein Programm für den Vergleich haben, oder wenn gescannte PDFs vorliegen, in der kein Text zum Vergleichen enthalten ist.
Um diesen Vergleich zu verwenden, entfernen Sie die # vor dem Konfigurationskey.
Diese beispielhafte Konfiguration wird mitgeliefert und verwendet folgende Einstellungen in der MetaDB.
Einstellung | Wert |
---|---|
Script | /agorum/roi/customers/accompdoc/js/comdocTextIndex.js |
Selector | [nameextension=/(pdf|xls|xlsx|ppt|pptx)/i] |
SupportedNameExtensions | pdf||xls||xlsx||ppt||pptx |