This is a Electron application to print shelfmarks read from a .dnl
-file. It displays shelfmarks from the file in a table like structure. You can then select and print the shelfmarks you like.
The printing process creates .pdf
-files (each per selectet format) and proceeds to print them.
To clone and run this repository you'll need Git and Node.js (which comes with npm), python 2.7, an c/c++ compiler and the WiX Toolset v3 installed on your computer. From your command line:
# Clone this repository
git clone https://github.com/gbv/SignaturenDruck
# Go into the repository
cd SignaturenDruck/signaturenDruck
# Install dependencies
npm install
# Run the app
npm start
The app creates either the directory C:\SignaturenDruck
or C:\Users\USER\SignaturenDruck
and stores the config files in it.
In the config.json
you can change the various switches, like defaultMode
or defaultDownloadPath
.
The devMode disables the actual printing. It will show the otherwise hidden label-windows. The pdf-files can be found at: C:\SignaturenDruck
/C:\Users\USER\SignaturenDruck
.
Clone and run for a quick way to see Electron in action.
To build the app for win7/10:
npm run make
This will create an unpacked version, a user installer as well as an msi-installer (machine).
You can find these files in the out
-directory.
(out\make\wix
will contain the user-installer, out\make\squirrel.windows
will contain the msi-installer)
Der SignaturenDruck kann Signaturen aus einer Datei auslesen, sie via SRU laden oder auch manuell erstellen. Das Programm bietet eine Vielzahl an Einstellungsmöglichkeiten. So lassen sich sowohl er Aufbau der Signaturen als auch das Layout der Etiketten aus dem Programm heraus bearbeiten oder neu anlegen. Zum Druck werden PDF-Dateien erstellt, welche dann an die konfigurierten Drucker gesendet werden.
Das Programm kann einfach mit der entsprechenden Installer (.exe
oder .msi
) installiert werden.
Das Programm wird dann unter C:\Users\USER\AppData\Local\SignaturenDruck
(mittels .exe
) oder unter C:\Program Files (x86)\SignaturenDruck
(mittels .msi
) installiert.
Auf dem Desktop des Nutzers wird eine Verknüpfung zum starten des SignaturenDrucks erzeugt.
Es wird bei jedem Start des Programms geprüft ob die notwendigen Konfigurationsdateien und Ordner vorhanden sind, ist dies nicht der Fall so werden diese neu erstellt.
Hierbei handelt es sich um:
C:\Export\
C:\Users\USER\SignaturenDruck
oderC:\SignaturenDruck
./config.json
- die primäre Konfigurationsdatei (nicht aus der Oberfläche heraus editierbar, nach Veränderungen muss das Programm neugestartet werden)../Formate\
- enhält die Konfigurationsdateien der eingerichteten Formate../FormateCSS\
- enthält die CSS-Dateien der eingerichteten Formate../Modi\
- enhält die Konfigurationsdateien der eingerichteten Modi.
Sind diese Ordner/Dateien vorhanden so wird die geprüft ob die Datei die in der config.json
unter defaultDownloadPath
angegeben ist existiert.
Ist dies der Fall dann werden die enthaltenen Signaturen ausgelesen und angezeigt.
Sollte die angegebene Datei nicht vorhanden sein, so wird eine entsprechende Meldung in der Oberfläche angezeigt.
Mit einem Klick auf Dateiauswahl
kann man eine andere Datei auswählen, aus der dann die Signaturen ausgelesen werden.
Jede Signatur kann in ihrer Zeile mit einem Klick auf die Checkbox in der Spalte Drucken
zum Druck ausgewählt werden. Die Auswahl kann einzeln erfolgen oder durch einen Klick auf den Splatenkopf Drucken
. Dies kehrt die bisher getroffene Auswahl um, sollte also noch keine Signatur zum Druck ausgewählt worden sein, so werden durch alle Signaturen der Tabelle zum Druck ausgewählt.
In der Spalte Anzahl
kann festegelegt werden wie oft die jeweilige Signatur gedruckt werden soll. Der Standardwert ist 1
.
In der Spalte Format
kann, wie der Name schon sagt, das Format ausgewählt werden mit dem die Signatur gedruckt werden soll. Vom gewählten Format ist abhängig wie die Signatur dargestellt wird, wie groß das Etikett ist und an welchem Drucker gedruckt werden soll.
Der Druck der ausgewählten Signaturen erfolgt dann mit einem Klick auf die Schaltfläche Drucken
. Anschließend wird eine Meldung über den erfolgreichen Druck ausgegeben.
Der SignaturenDruck ermöglicht nicht nur den Druck von Signaturen aus einer Datei oder via SRU, sondern auch das erstellen von manuellen Signaturen. Mit einem Klick auf die Schaltfläche Manuelles Anlegen
öffnet sich folgendes Fenster zur Eingabe:
Auf der linken Seite befinden sich die Eingabefelder der jeweiligen Zeilen und die Schaltflächen.
Rechts befinden sich die Übersicht um welche manuelle Signatur es sich handelt, die Vorschau der Signatur, die Auswahl des Formats und die Option den Einzug zu entfernen.
Nachdem eine Signatur eingetragen wurde, kann mit der Schaltfläche Nächste
eine weitere Signatur eingetragen werden. Die Schaltfläche Übernehmen und Beenden
speichert alle eingegebenen Signaturen ab, fügt sie im Hauptfenster der Tabelle hinzu und kehrt zu diesem Fenster zurück.
Es besteht aber auch die Möglichkeit alle bisher eingetragenen manuellen Signaturen mit der Schaltfläche Verwerfen und Beenden
gesammelt zu löschen.
Das löschen einer einzelnen Signatur ist mit der Schaltfläche löschen
möglich. Diese löscht immer die aktuell angezeigte Signatur.
Mit den Schaltflächen Vorherige
und Nächste
kann zwischen den bereits eingetragenen Signaturen navigiert werden. Ist man bei der ersten Signatur angelangt so ist die Schaltfläche Vorherige
deaktiviert.
Seit Version v1.1.0-a wird mit Modi/Untermodi der Aufbau der Signaturen festgelegt, wobei jedem Untermodus ein eigenes Format zugeordnet ist, welches den Aufbau des Etiketts festlegt.
Mit der Tastenkombination
strg + alt + C
kann das Fenster zum erstellen / bearbeiten eines Modus geöffnet werden.
Im Dropdown kann entweder ein bereits bestehender Modus oder ein "--neuer Modus--" ausgewählt werden.
Der Name des Modus kann dann Namensfeld eingetragen werden. Wurde ein bereits bestehender Modus gewählt so wird dessen Name in das Feld geladen
Im Dropdown werden alle Untermodi des bereits gewählten Modus angezeigt. Analog zum Modus kann ein neuer Untermodus angelegt werden oder der ausgewählte Untermodus bearbeitet werden. Der Name des Untermodus legt auch den Namen des zugehörigen Formats fest.
In diesem Feld wird die Beispielsignatur aus der config.json
geladen. Die Signatur kann verändert werden.
In diesem Feld wird der BeispielregEx aus der config.json
geladen. Der RegEx dient zum zerlegen der Signatur.
Der Delimiter wird ebenfalls aus der config.json
geladen. Er dient dazu die Signatur zu zerlegen.
Die eingetragene Signatur kann entweder mit dem RegEx
oder mit dem Delimiter
zerlegt werden. Dies geschieht nach einem Klick auf Testen
. Das Resultat wird in der Vorschau
ersichtlich. Die einzelnen Gruppen werden oben rechts unter Hinweise
aufgeschlüsselt.
Hier kann die Anzahl der Zeilen und die Anordnung der Signaturenteile angepasst werden. Wurden Anpassungen vorgenommen, so werden diese nach einem Klick auf Aktualisieren
in der Vorschau
sichtbar.
Die Signaturenteile werden mit Platzhaltern dargestellt. So entspricht der Signaturenteil 5 dem Platzhalter $5
. Alle Platzhalter und ihr aktueller Inhalt sind unter Hinweise
aufgeschlüsselt.
Es ist auch möglich, einen festen Text einzutragen der dann immer mit diesem Format, in der entsprechenden Zeile, Anwendung findet.
Sobald Sie mit der Anordnung der Signaturenteile zufrieden sind und auf Weiter
geklickt haben, öffnet sich das Formatfenster. Dort können Sie die Gestaltung des Etiketts vornehmen.
Nach dem erfolgreichen Anlegen muss das Programm neu gestartet werden. Soll ein anderer Modus verwendet werden, so muss in der config.json
der defaultMode
geändert werden.
Mit der Tastenkombination
strg + alt + E
kann das Fenster zum anpassen von Formaten geöffnet werden.
Mit der Auswahl Format
ist es möglich die Einstellungen eines bereits erstellen Formats in die Oberfläche zu laden.
Im Feld Formatname
wird der Formatname angezeigt, dieser ist nicht editierbar. Beim speichern wird ein Dialog angezeigt, der das anpassen bzw. ein abbrechen ermöglicht.
Mit der Auswahl Druckername
kann der Drucker ausgewählt werden, an dem Signaturen mit dem Format gedruckt werden sollen. Es sind nur Drucker aufgeführt die gerade auf dem jeweiligen Rechner installiert sind bzw. zur Verfügung stehen.
Im Feld Beispiel
wird die Signatur angezeigt die beim anlegen dieses Formates bzw. beim anlegen des Untermodus festgelegt wurde. Der Feldinhalt kann nicht verändert werden.
Es müssen die Maße des verwendeten Papiers angegeben werden, damit das erstellte PDF passgenau erstellt werden kann. Somit können Unschärfen und ähnliche Effekte die durch Skalierung entstehen verhindert werden.
Das Label (Etikett) wird auf dem Papier zentriert
Eigenschaft | Beschreibung |
---|---|
Höhe |
die Höhe des Papiers in μm |
Breite |
die Breite des Papiers in μm |
Es werden unterschiedliche Eigenschaften des Labels erfasst.
HINWEIS - die Höhe sowie Breite des Labels sollte um mindestens 1mm kleiner sein als die entsprechenden Papierwerte
Eigenschaft | Beschreibung |
---|---|
Höhe |
ist die Höhe des Labels in mm |
Breite |
ist die Breite des Labels in mm |
Zeilen |
erfasst die Anzahl der Zeilen des Labels |
Zeilenstand |
erfasst den Abstand zwischen den Zeilen des Labels |
Horizontal zentrieren |
ermöglicht das horizontale zentrieren aller Zeilen |
Vertikal zentrieren |
ermöglicht das vertikale zentrieren aller Zeilen |
Korrekturabstand oben |
ermöglicht eine Veränderung des Abstands beim Drucken von der jeweils ersten Zeile eines Labels zum Rand. Positive Werte vergrößern den Abstand, negative Werte verringern den Abstand. |
In der Tabelle werden für jede Zeile einige Einstellungsmöglichkeiten angezeigt.
Spalte | Beschreibung |
---|---|
Zeile |
gibt die Nummder der jeweiligen Zeile des Labels an |
Schriftart |
enthält eine Auswahlmöglichkeit der Schrift welche für die betreffende Zeile verwendet werden soll. Es stehen alle auf dem Rechner installierten Schriften zur Verfügung. |
Schriftgröße |
hier kann die Schriftgröße der jeweiligen Zeile eingetragen werden |
Fett |
mit einem Klick auf die jeweilige Checkbox kann die Zeile als fett dargestellt werden |
Kursiv |
mit einem Klick auf die jeweilige Checkbox kann die Zeile als kursiv dargestellt werden |
Einzug |
hier kann der Einzug der jeweiligen Zeile in Prozent eingetragen werden |
Mit einem Klick auf Speichern
kann das Format abgespeichert bzw. können die Änderungen übernommen werden.
Mit einem Klick auf Schließen
wird das Fenster geschlossen. Wurde das Format davor nicht abgespeichert so werden die Veränderungen verworfen.
Die config.json
unter C:\Users\USER\SignaturenDruck
oder C:\SignaturenDruck\
bietet folgende Optionen.
key | Beschreibung | Standardwert |
---|---|---|
defaultDownloadPath |
damit kann der Pfad zur Datei verändert werden, welche beim starten des Programms automatisch ausgelesen werden soll. | "C:/Export/download.dnl" |
sortByPPN |
ermöglicht die ausgelesenen Daten per PPN sortiert darzustellen. | false |
useK10plus |
ermöglicht die Verwendung des Datenformates der WinIBW mit K10plus | true |
hideDeleteBtn |
ermöglicht das ausblenden des 'Lösche Download Datei'-Buttons | false |
showMenu |
ermöglicht das einblenden einer Menüleiste | false |
filterByLoc |
ermöglicht eine Unterscheidung der Formate mittels Standort | false |
example.shelfmark |
legt eine Signatur fest, die beim anlegen eines neuen Modus/Untermodus angezeigt wird | "PÄD:TG:1420:Dan::2017" |
example.location |
legt einen Standort fest, der als Beispielstandort beim anlegen eines neuen Modus/Untermodus angezeigt wird | "MAG" |
example.regex |
legt einen regulären Ausdruck fest, der beim anlegen eines neuen Modus/Untermodus angezeigt wird | "^(.*):(.*):(.*):(.*):(.*):(.*)$" |
example.delimiter |
legt einen Delimiter fest, der beim anlegen eines neuen Modus/Untermodus angezeigt wird | |
modal.showModal |
legt fest ob die Nachricht der erfolgreichen Drucks angezeigt werden soll | true |
modal.modalTxt |
bietet die Möglichkeit den Text der Druckerfolgsmeldung anzupassen. | "Die ausgewählten Signaturen wurden gedruckt." |
SRU.useSRU |
ermöglicht die Daten per SRU zu laden | false |
SRU.printImmediately |
ermöglicht den Sofortdruck | false |
SRU.SRUAddress |
enthält die URL des SRU-Servers über den die Daten geladen werden, sofern useSRU: true |
"http://sru.k10plus.de/opac-de-27" |
SRU.QueryPart1 |
der erste Teil des SRU-Query | "?version=1.1&operation=searchRetrieve&query=pica.bar=" |
SRU.QueryPart1EPN |
der erste Teil des SRU-EPN-Query | "?version=1.1&operation=searchRetrieve&query=pica.bar=" |
SRU.QueryPart2 |
der zweite Teil des SRU-Query | "&maximumRecords=1&recordSchema=picaxml" |
print.printCoverLabel |
ermöglicht den Druck des CoverLabels (Username + Datum) | true |
print.reverseOrder |
ermöglicht die Signaturen in umgedrehter Reihenfolge zu drucken | false |
print.printerList |
wird beim ersten Start automatisch erzeugt, enthält alle verfügbaren Druckernamen, kann nicht verändert werden | - |
print.showPrintDialog |
ermöglicht ein ausblenden der Druckbestätigung | true |
print.orientation |
legt die Ausrichtung des Drucks fest, Optionen: landscape ,portrait |
landscape |
print.scale |
legt die Skalierung des Drucks fest, Optionen: noscale , shrink , fit |
noscale |
print.margin (.top ; .bottom ; .left ; .right ;) |
legen eine entsprechende Margin beim Druck fest | 0 |
mode.defaultMode |
legt den zu verwendenden Modus fest | "thulbMode" |
devMode |
dient zur Fehlersuche, zeigt die Fenster der jeweiligen Formate an, die im Formalfall nicht zu sehen sind. Die PDFs werden erstellt aber weder gelöscht noch gedruckt. | false |
username |
der Nutzername des letzten Benutzers, wird automatisch geschrieben, kann nicht verändert werden | - |
defaultProgrammPath |
enthält den Pfad des SignaturenDrucks, wird automatisch geschrieben, kann nicht verändert werden | - |
sigJSONFile |
enthält den Namen der temporären Signaturendatei, wird automatisch geschrieben | - |
configVersion |
enthält die Versionsnummer der Konfigurationsdatei, sollte nicht manuell verändert werden | - |
Dies kann zwei Ursachen haben.
-
Ursache: Das Format gehört zu einem Untermodus der nicht dem derzeitigen Modus zugeordnet ist. Lösung: Tragen Sie in der
config.json
den Modus zu dem der Untermodus gehört alsdefaultMode
ein und starten das Programm neu. -
Ursache: Die Signaturen entsprechen nicht der im Untermodus festgelegten Aufteilung.
Erklärung: Beim auslesen der Signaturen aus einer Datei oder via SRU wird geprüft welche Untermodi/Formate diese Signatur entsprechend Festlegung darstellen können.
Lösung: Wenn eine Signatur eigentlich einem Format entsprechen sollte, aber dieses nicht auswählbar ist, so sollten Sie den Untermodus kontrollieren.
Mit strg + alt + C öffen Sie die "Modus erstellen / anpassen"-Oberfläche. Nun wählen Sie den Modus und endsprechenden Untermodus aus und können die Konfiguration prüfen.
Nein, der SignaturenDruck ist seit version v1.3.12
nichtmehr vom Adobe Acrobat Reader DC abhängig.
- Dokumentation angepasst
- Adobe Acrobat Reader DC wird nicht mehr benötigt (intern wird SumatraPDF verwendet)
- Aktualisierung auf electron
v22.3.2
- Portable Version entfällt (der Performance geschuldet)
- 4-Installer
...user-conf_system-install
->systemweite Installation mit Konfigurationsdateien im NutzerverzeichnisC:\Users\USER\SignaturenDruck
...user-conf_user-install
-> Nutzerinstallation mit Konfigurationsdateien im NutzerverzeichnisC:\Users\USER\SignaturenDruck
...system-conf_system-install
-> systemweite Installation mit Konfigurationsdateien unterC:\SignaturenDruck
...system-conf_user-install
-> Nutzerinstallation mit Konfigurationdateien unterC:\SignaturenDruck
- optimierung des Manuellen Erstellens
- Manuelle Signaturen können via Doppelklick auf die Signatur editiert werden
- Installer werden nun mit electron-forge erzeugt
- Interne Optimierungen
- die
configVersion
inconfig.js
wird geprüft, ggfs. wird dieconfig.js
automatisch aktualisiert - in config.js
defaultPath
wurde indefaultDownloadPath
umbenanntprint.reverseOrder
hinzugefügt, ermöglicht die Signaturen in umgedrehter Reihenfolge zu druckenprint.printerList
hinzugefügt, wird vom Programm erzeugt und kann nicht verändert werdenprint.showPrintDialog
hinzugefügt, ermöglicht ein ausblenden der Druckbestätigungprint.orientation
hinzugefügt, legt die Ausrichtung des Drucks festprint.scale
hinzugefügt, legt die Skalierung des Drucks festprint.margin
(.top
;.bottom
;.left
;.right
;) hinzugefüt, ermöglicht das festlegen einer Margin beim Druckusername
hinzugefügt, enthält den Nutzernamen des letzten BenutzersdefaultProgrammPath
hinzugefügt, enthält den Pfad des SignaturenDrucks, wird automatisch geschrieben und kann nicht verändert werdensigJSONFile
hinzugefügt, enthält den Namen der temporären Signaturendatei, wird automatisch geschrieben, kann nicht verändert werdenconfigVersion
hinzugefügt, enthält die Versionsnummer der Konfigurationsdatei, sollte nicht manuell verändert werden
configVersion
inconfig.js
auf den Wert1.1
gesetzt
- alle Änderungen aus den Versionen v1.1.1-g, v1.1.1-f und v1.1.1-e-dev übernommen.
- Dokumentation angepasst
- Die Standortwerte aus 'config.json' werden beim editieren von Untermodi nurnoch als Platzhalter eingetragen, wenn die Werte nicht direkt gesetzt wurden (issue #67)
- Verbesserte Fehlerbehandlung von Konfigurationsdateien (issue #17, #36)
- Menü Label korrigiert (issue #32)
- SRU-Dropdown 'PPN' durch 'Barcode' ersetzt (issue #41)
- Fehlerhafte Datumsanzeige bei mehreren Exemplaren behoben (issue #65)
- Konfigeintrag 'hideDeleteBtn' eingeführt, ermöglicht das ausblenden der 'Lösche Download Datei' Option. Standadwert ist 'false' (issue #66)
- Version wird nun im Titel des Hauptfensters mit angezeigt (issue #59)
- Im Ordner Formate & FormateCSS werden Dateien mit falschem Dateiformat ignoriert (issue #17)
- Eine fehlerhafte Konfigurationsdatei wird nun nichtmehr kommentarlos ersetzt. (issue #36)
Sie wird als 'config_invalid.json' abgespeichert und es wird eine valide Standardkonfig angelegt. - Es wurden einige Verbesserungen beim erstellen/bearbeiten von Modi/Untermodi umgesetzt (issue #56, #50)
- Es ist nun möglich den Sofortdruck via Konfigeintrag automatisch auszuwählen (issue #58)
- .json Konfigurationsdateien werden nun formatiert angelegt (issue #37)
- Ein Menü mit den Optionen 'Schließen', 'Format', 'Modus wurde hinzugefügt. Der entsprechende Konfigeintrag ist 'showMenu', Standardwert ist 'false' (issue #32)
- Der Konfigeintrag 'filterByLoc' ermöglicht das festlegen von Formaten für gewisse Standorte. Standardwert ist 'false' (issue #60)
- Das SRU-Fenster wurde die Auswahl zwischen PPN/EPN ergänzt. Dafür ist der Konfigeintrag 'SRU.QueryPart1EPN' nötig, der Standardwert ist '?version=1.1&operation=searchRetrieve&query=pica.epn=' (issue #41)
- Optimierungen:
- main.js: Funktion 'checkConfig' überarbeitet
- npm update ausgeführt
- Horizontale Zentrierung der Label auf dem Papier korrigiert
- Option für Sofortdruck umgesetzt (issue #15, nur wenn Daten via SRU geladen werden)
- Hinweis für den Fall hinzugefügt, dass die erzeugten PDFs nicht automatisch gelöscht werden konnten (Reader war bereits geöffnet)
- Ausgelesene Signaturen (SRU/Datei) sind nun mittels Doppelklick auf den Signaturentext editierbar
- weitere interne Optimierungen
Die Problematik mit Feld 209A/7100 $B hat keinerlei Auswirkung auf die Funktionsweise des Programms
- Bei der Eingabe von manuellen Signaturen bleibt die Eingabe der vorherigen Signatur erhalten
- Problem mit SRU-Abfragen gelöst (issue #51)
- SRU liefert jetzt die Daten des eingegebenen Barcodes (nicht des ersten Exemplars)
- Manuelle Signaturen werden nun bei einem Klick auf 'Liste löschen' ebenfalls gelöscht
- Manuelle Signaturen bleiben sichtbar nach dem hinzufügen einer Signatur via SRU
- Pdf-erzeugung optimiert
- Problem mit einzeiligen Signaturen behoben
- fehler beim erzeugen eines neuen Modus/Untermodus behoben
- Platzhalter für das aktuelle Datum hinzugefügt ($DATE)
- Warnung für fehlende Drucker angepasst
- einige Meldungstexte angepasst
- PDFs werden erst nach 10 Sekunden gelöscht
- es kann nun eine portable exe erstellt werden (npm run build:portable)
- Dokumentation angepasst
- die ausgelesene Datei kann nun wieder gelöscht werden