gbv / SignaturenDruck

An electron application to print shelfmarks onto labels
https://verbundwiki.gbv.de/display/VZG/SignaturenDruck+der+ThULB+Jena
Creative Commons Zero v1.0 Universal
3 stars 2 forks source link

Drucklayout nicht wie benötigt einstellbar #95

Closed bielzdet closed 1 year ago

bielzdet commented 1 year ago

Hallo Herr Dehler, zunächst vielen Dank für das schnelle Zurverfügungstellen der von mir erbetenen Systemweiten Installation mit Systemweiter Konfiguration, das hat uns schon einen großen Sprung weitergebracht. Allerdings ringe ich noch mit zwei Phänomenen, die ich immer nur scheinbar in den Griff bekomme, und dann beim nächsten Ausdruck wieder nicht mehr: Im Prinzip hat alles ganz gut geklappt, beim Übernehmen der Einstellungen von der Version 1.3.5-dev, aber unser Ziel war ja einen reproduzierbaren Workflow finden, um SignaturenDruck auf einem davon unberührten System zu installieren. Dabei bin ich auf einige Probleme gestossen.

Voraussetzungen

Die Etiketten, die wir verwenden haben die Ausmaße:

3,5cm x 2,7cm und befinden sich auf einem Trägerpapier, das 6cm breit ist. Der Abstand von Oberkante zu Oberkante beträgt 3,1cm. grafik

Der Drucker ist entsprechend eingestellt: grafik

Problem 1

In SignaturenDruck wiederum muss ich die Maße etwas anders einstellen, damit das obere Etikett im Bild entsteht. Stelle ich die Maße korrekt auf eine Höhe von 60000µm ein, wird das Etikett wie das auf dem Foto untere gedruckt. Ein Korrekturabstand bis 10mm wirkt sich dann gar nicht aus, erst ein Korrekturabstand von 15mm sorgt für halbwegs passenden Sitz. Im Prinzip ist das noch kein Problem, es lässt sich ja durch Ausprobieren in den Griff kriegen. Das einzige, was ein etwas mulmiges Gefühl zurücklässt, ist die Tatsache, daß die Einstellungen sich scheinbar nicht deterministisch verhalten. Ebenso die Breite: erst wenn ich eine Breite von 30000µm statt 31000µm einstelle, sitzt die Zentrierung auch Mittig. grafik

Problem 2

Wie schon auf dem Foto ersichtlich, wird die Signatur zwar horizontal zentriert, aber rechts und unten beschnitten. In der Vorschau sieht alles noch gut aus: grafik (So sollte die Signatur auch auf dem Papier aussehen ...)

Es wird aber auch kein weiteres Etikett ausgedruckt mit dem Rest der Signatur. Einfach weg. Bei einem Blick in die zugehörige CSS hat dann dieser Parameter meine Aufmerksamkeit erregt:

.format_ubModeDefault {
text-align: center;
white-space: nowrap;
overflow: hidden;
}

Setze ich den overflow hier auf visible, wird zwar die fragliche Zeile C282 vollständig gedruckt, die letzte Zeile mit +2 auch, aber 1. wird die Schrift kleiner und zweitens wird das ganze Layout wieder nach oben verschoben (Etikett 1). Regele ich hier über Korrekturabstand ober Papiergröße nach, (und setze anschließend den overflow wieder auf visible ...), verschwindet die letzte Zeile wieder, aber die kleinere Schriftgröße bleibt (Etikett 2): grafik Etikett 3 war noch mit Version 1.3.5-dev entstanden und zeigt, wie es eigentlich aussehen sollte, und dass es prinzipiell von den Platzverhältnissen her geht.

Ich muss zugeben, ich bin ratlos.

EliDeh commented 1 year ago

Hallo @bielzdet,

vielen Dank für den ausführlichen Bericht. Können Sie mir bitte die Konfigurationsdateien zusenden?

bielzdet commented 1 year ago

Hallo @EliDeh, SignaturenDruck.zip

sehr gerne. Anmerkung: ich habe nur am Format ubModeDefault herumgeschraubt, die anderen Formate sind noch aus der Übernahme (1.2? 1.3.5-dev? kann ich leider nicht mehr sagen) geblieben, wie sie waren.

bielzdet commented 1 year ago

Fällt mir grade ein: Könnte es mit Sumatra PDF zusammenhängen? Auf dem Desktop verwende ich auch am allerliebsten Sumatra-PDF als Viewer, aber zum Ausdrucken musste ich bisher immer auf andere Produkte ausweichen, weil Sumatra da so gut wie immer etwas anders gedruckt hat, als es auf dem Bildschirm zu sehen war.

EliDeh commented 1 year ago

@bielzdet SumatraPDF bringt so seine Vor- und Nachteile mit sich, allerdings sollten diese mit diesem Problem nichts zu tun haben.

Zu Problem 1: Wenn der Drucker mit der Etikettengröße konfiguriert ist so können auch diese Werte in der Anwendung eingetragen werden. Allerdings sollten dann die Werte des Labels mindestens 1mm geringer gewählt werden als die der Papierwerte.

Zu Problem 2: Hier habe ich einen kleinen Bug im Code entdeckt und bereits behoben. Eine neue Version werde ich später veröffentlichen.

bielzdet commented 1 year ago

Vielen Dank für Ihre Mühe, ich werde die neue Version gleich testen, sobald ich davon Wind bekomme ... ;-)

bielzdet commented 1 year ago

Hmmm, tut mir leid, aber das Ergebnis ist noch karger als vorher ... ubModeDefault1679321271378.pdf Hier mal auf den Microsoft Drucker gedruckt. Die 'signaturen.json', die dazu entsteht, habe ich zwar noch nie bewusst wahrgenommen, aber ihr Inhalt lässt irgendwie befürchten, daß irgenwas anderes nicht stimmt:

{
        "PPN": "797212000",
        "id": 1,
        "txtOneLine": "690/QC 300 C282 M1+2",
        "date": "22-08-22",
        "exNr": "03",
        "location": "UB 690",
        "loanIndication": "u",
        "error": "",
        "defaultSubMode": 0,
        "modes": [
            {
                "format": "ubModeDefault",
                "lines": [
                    "QC",
                    "300",
                    "C282",
                    "M1",
                    "+2"
                ]
            },
            {
                "format": "ubModeMag",
                "lines": null
            },
            {
                "format": "ubModeDis",
                "lines": null
            }
        ]
    }
]
EliDeh commented 1 year ago

ok, können Sie mir bitte nochmals die Konfigurationsdateien senden, welche beim obigen PDF verwendet wurden?

Der Inhalt der signaturen.json sieht für mich normal aus.

EliDeh commented 1 year ago

@bielzdet bitte mit v1.3.15 testen @bielzdet bitte testen ob das Problem mit v1.3.16 weiterhin besteht

bielzdet commented 1 year ago

So, bin wieder unter den Lebenden und habe gesehen, daß sich schon einiges getan hat. Hab jetzt eine ganze Weile mit 1.3.17 getestet, alles probiert, aber leider kein sinnvolles Ergebnis hinbekommen. Irgendwie scheint das jetzt ein Skalierungsproblem zu sein. Also: alle Vorversionen deinstalliert, 1.3.17 installiert, alle verwendeten Vorlagen geöffnet und neu abgespeichert, dabei auch Papiergröße und Labelgröße variiert. Das einzige, was sich geändert hat, waren Platzierung und Orientierung des Ausdrucks; die Größe blieb in allen Fällen gleich. Also zu klein, siehe beigefügtes PDF.

Anbei auch die Konfig-Dateien inkl. signaturen.json. SignaturenDruck.zip

EliDeh commented 1 year ago

@bielzdet, vielen Dank fürs testen.

Können Sie in der config.json bitte den print.scale Wert von noscale auf fit setzen und Prüfen ob die Platzierung im PDF sich verändert?

Ich werden der Ursache weiter auf der Spur bleiben, vielen Dank für Ihre Hilfe.

bielzdet commented 1 year ago

Hallo,

sehr gerne. Leider zeigt das keine Änderung im Ergebnis. (P.S. ich habe devmode = true gesetzt, das dürfte aber am Ergebnis nichts ändern, oder?)

Detlev

EliDeh commented 1 year ago

Hallo,

nein, der devMode hat keinen Einfluss auf das erzeugen der PDF. Es werden lediglich die Fenster dargestellt welche zum erzeugen der PDFs genutzt werden und die erzeugten Dateien werden nicht automatisch gelöscht.

Ich bin dem Problem auf die Spur gekommen. Es gibt 2 "Probleme".

  1. Die Labelgröße entspricht der Papiergröße. Die Labelgröße muss weiterhin in der Länge wie auch Breite um mindestens 1mm kleiner ausfallen als die Papiergröße. Ich werde im Programm Anpassungen vornehmen welche auf Papiergröße == Labelgröße prüft.

  2. die config.json ist Fehlerhaft. Wurde sie automatisch auf version 1.1 aktualisiert oder wurde dies händisch vorgenommen? Sofern es automatisch passiert ist, von welcher Programmversion stammte die ursprüngliche config.json?

Es fehlen in der config.json die folgenden Einträge:

"print": {
...
  "margin": {
    "top": 0,
    "bottom": 0,
    "left": 0,
    "right": 0
  },

Wenn die Labelgröße angepasst (Höhe = 34mm, Breite = 26mm) und die config.json neu erzeugt oder um die fehlenden Einträge ergänzt wurde erhalte ich im devMode folgendes PDF: ubModeDefault1680590109002.pdf

bielzdet commented 1 year ago

Hallo, vielen Dank für die Hinweise.

Die fehlende Passage habe ich ersetzt, jetzt ist die PDF wie erwartet. Nur unser Drucker spielt noch nicht ganz mit; was in der PDF gut zentriert ist, druckt er leicht nach links (Textorientierung, bzw. oben in Druckvorschuborientierung) versetzt aus. Ich nehme an, das kann ich mit diesen "margin":-Angaben korrigieren. Das versuche ich gleich auch.

Forensik: zu 1.: Habe ich umgesetzt. zu 2.: die config.json hatte ich aus einer alten Version kopiert, sie ist in der Form noch mit Version 1.2 und 1.3.5-dev im Einsatz. Ob dazwischen Anpassungen stattgefunden haben kann ich leider nicht mehr sagen, genauso wenig wie mit welcher Version sie ursprünglich erstellt wurde, das war vor meiner Zeit. Die Angabe version 1.1 habe ich händisch vorgenommen, nachdem ich die alten, ursprünglichen Configdateien (also ganz C:\SignaturenDruck) nach einem frischen Start der frisch installierten 1.3.17 ausgetauscht habe. Zwar hatte ich jedes Druckformat nochmal geöffnet und gespeichert, aber das hat offensichtlich nicht den Kern meines selbstgeschaffenen Problems gestreift. Tja, da kann sich der Programmierer noch so viel Mühe geben, alles abzufangen, der User findet immer noch einen Weg daran vorbei ...

EliDeh commented 1 year ago

Gerne. Ja, die margin Einträge dienen zur Anpassung beim Druck. Wenn in der config.json der Wert print.scale von noscale auf fit gestellt wird, sollte die das PDF ebenfalls beim Druck zentriert werden, hierbei kann aber ggfs. eine automatische Anpassung der Größe erfolgen.

Gut, dann hat das manuelle anpassen der version leider die automatische Aktualisierung der config.json verhindert.

bielzdet commented 1 year ago

So, die Experimente waren erfolgreich; das erzeugte PDF ist perfekt, vielen Dank. Nur die Korrektur unseres eigenwilligen Druckers mittels

        "margin": {
            "top": 0,
            "bottom": 0,
            "left": 0,
            "right": 0
        },

gelingt mir nicht ganz: 20230404_093045

In Druckreihenfolge, also auf dem Bild von Rechts nach Links habe ich die Einstellungen wie folgt verändert: ganz rechts: "left": 5, 2.v. rechts: alles auf: 0 3.v. rechts: "right": 5 ganz links:"left": 20, , um eine sichtbare Reaktion zu provozieren.

Verstehe ich da was falsch oder ist da was kaputt?

Anbei die enstsprechenden PDFs ubModeDis-margin-right-5.pdf ubModeDis-margin-left-20.pdf

Nachtrag nachdem ich Ihren Kommentar gelesen habe: auch die Änderung von "scale": auf fit ändert daran leider nichts.

EliDeh commented 1 year ago

Das verhalten des Druckers kann ich gerade leider nicht ganz nachvollziehen. Das Resultat entspricht nicht dem was ich erwarten würde. Allerdings würde mich folgendes interessieren.

Wie ist das Druckresultat wenn in der config.json der Wert print.orientation von landscape auf portrait verändert wird? *edit: mit allen margin-Werten auf 0

bielzdet commented 1 year ago

Das verhalten des Druckers kann ich gerade leider nicht ganz nachvollziehen. Das Resultat entspricht nicht dem was ich erwarten würde. Allerdings würde mich folgendes interessieren.

Was ich meinte, spiegelt sich schon in den obigen PDFs: der margin-right von 5 wirkt sich im PDF sichtbar aus, der vonmargin-left nicht, noch nicht einmal, wenn man ihn auf 20 setzt.

Wie ist das Druckresultat wenn in der config.json der Wert print.orientation von landscape auf portrait verändert wird? *edit: mit allen margin-Werten auf 0

Das hab ich mal ausprobiert ( nur die linken 3 Etiketten, rechts hab ich noch im Druckertreiber probiert): 20230404_104726 Das 3.-letzte Etikett mit Default-Einstellungen, das 2.letzte nur mit "orientation":"portrait" und das ganz linke zusätzlich mit angepasster Druckertreiber-Einstellung auf Querformat.

EliDeh commented 1 year ago

Super, vielen Dank fürs ausprobieren.

Aus der Ferne mach ich nun folgende Beobachtungen:

Daher meine Fragen:

Es tut mir leid, das der Umstieg auf die neue Version nicht Reibungslos verläuft. Vielen Dank für die vielen Tests und ausführlichen Berichte 👍

bielzdet commented 1 year ago

Hey, gerne, gar kein Problem. Vielen Dank für die Software!

Daher meine Fragen:

  • gibt es im Druckertreiber die Option eines Abstands zur oberen Kante?
  • kann im Druckertreiber die Größenverwaltung der Anwendung überlassen werden, welche den Druckauftrag übergibt?

Hier die Möglichkeiten unserer Drucker: 2023-04-04 11_33_33-Druckeinstellungen für ZDesigner ZD220-203dpi ZPL 2023-04-04 11_33_51-Druckeinstellungen für ZDesigner ZD220-203dpi ZPL

Nachdem ich eine Weile im ersten Dialog mit dem Nichtdruckbaren Bereich erfolglos gespielt hab, hat mich Dein Hinweis auf die richtige Option gebracht: im zweiten Dialog unten: Oben :-) Das hat unseren Drucker voll in die Spur gebracht, alles wird jetzt so ausgedruckt, wie es soll!

Im Prinzip scheint einiges durch die Software bestimmt zu werden, also Veränderungen der Papiergröße z.B. wirkt sich eher in der Anwendung aus, als in diesem Dialog. Die Positionskorrektur in den Erweiterten Einstellungen wiederum scheint dahinter zu greifen. So genau lässt sich das also leider nicht sagen. Aber egal, Hauptsache, ich habe die richtigen Einstellungen gefunden, um den Ausdruck wie gefordert hinzubekommen, und das Dank Deiner Hilfe!

Danke für Deine Geduld und Deine Aufmerksamkeit. Wie gesagt, wir User haben letztlich zu danken für eine kostenlose und letztendlich doch hervorragend funktionierende Software. 👍 👍 👍

Meinerseits ist dieses Thema damit abgeschlossen. Herzliche Grüße Detlev

EliDeh commented 1 year ago

Wunderbar.

Das freut mich, wenn es weitere Anliegen oder Probleme gibt gerne einfach wieder melden. Beste Grüße Elias