PDF in bestimmter Seitenreihenfolge drucken

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

PDF in bestimmter Seitenreihenfolge drucken

Beitrag von axelh » 24.08.2015, 09:27

Guten Morgen liebes Forum!

Ich habe leider 2 weitere Problemfälle:

1. Einfärben eines Textfeldes über mehrere Seiten hinweg
Über die Schaltfläche "Ausfertigungen drucken" wird das PDF in 4 verschiedenen Ausfertigungen gedruckt. Hier wird für jede Ausfertigung u.a. die Hintergrundfarbe eines Textfeldes verändert. Das funktioniert auch, aber leider nur für die Seite, auf der die Schaltfläche angeklickt wurde. Auf allen anderen Seiten verändert sich die Farbe nicht. Die Bezeichnung der jeweiligen Ausfertigung ("Original", "Rot", "Grün", "Vorgang") verändert sich hingegen auf jeder Seite korrekt. Ich kann den Fehler nicht finden. Muss ich die einzelnen Seiten mit einer weiteren Schleife durchlaufen?

Vielen Dank @armine:

Code: Alles auswählen

for (var i = 0; i < 4; i++) {
        txtAusfertigung.rawValue = ["Original","Grün","Rot","Vorgang"][i] ;
        txtAusfertigung.fillColor = ["220,221,222","0,255,0","255,0,0","220,221,222"][i] ;
        txtAusfertigung.fontColor = ["0,0,0","255,255,255","255,255,255","0,0,0"][i] ;
        xfa.host.print(0, "0", (xfa.host.numPages -1).toString(), 1, 1, 0, 0, 0);
    }
2. Druck in bestimmter Seitenreihenfolge
Ich möchte das Dokument bzw. die Ausfertigungen in einer bestimmten Reihenfolge drucken:

1. Ausfertigung (Original) - Seite 1
2. Ausfertigung (Grün) - Seite 1
3. Ausfertigung (Rot) - Seite 1
4. Ausfertigung (Vorgang) - Seite 1
1. Ausfertigung (Original) - Seite 2
2. Ausfertigung (Grün) - Seite 2
3. Ausfertigung (Rot) - Seite 2
4. Ausfertigung (Vorgang) - Seite 2
usw.

@armine: Ich habe das Dokument jetzt auf 1 Masterseite reduziert. Seitdem tritt das Problem auf. Kannst Du bitte mal schauen?

Viele Grüße,
Axel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

PDF in bestimmter Seitenreihenfolge drucken

Beitrag von axelh » 25.08.2015, 07:21



armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

PDF in bestimmter Seitenreihenfolge drucken

Beitrag von armine » 26.08.2015, 09:38

Hallo Axel,

wieviel Diskussionen hast du mit deinem Formular schon losgetreten?

Zur 1. Frage findest du den entscheidenden Hinweis in http://www.acronaut.de/forum34/2055.html . Da muss nur noch das Ändern von fillColor und fontColor nachgetragen werden, weil sich da die Änderung trotz „globaler“ Bindung nicht vererbt.

Die 2. Frage darf gar nicht gestellt werden. Da ist die Welt glücklich, dass Ausdrucke nicht mehr zusammengetragen werden müssen und da kommst du mir so einer Idee? Ist dir klar, dass da für jede Seite ein Fenster aufgeht, in dem du zum herumklicken aufgefordert wird?

vg armine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

PDF in bestimmter Seitenreihenfolge drucken

Beitrag von axelh » 26.08.2015, 09:54

Hallo armine,

erstmal danke für die Rückmeldung.

Ist es nicht besser für jedes Problem unter einem Aussagekräftigen Titel einen eigenen Thread zu starten? Wenn das nicht gewünscht ist lasse ich es.

Zu 1.: Ich habe irgendwas auf den Augen. Den Thread habe ich schon mal gelesen. Ich war aus unerfindlichen Gründen der festen Überzeugung, dass der Parameter bei mir auf 0 steht. Oh mann...

Zu 2.: Ich weiß das klingt bescheuert aber das Formular ist die digitale Version eines Blockes. Auf diesem gibt es halt die 4 Ausfertigungen (Durchschläge) in genau der Reihenfolge wie im PDF. Und die Anwender wollen die Ausdrucke genau in der Reihenfolge haben wie sie auf dem Block sind.

Vielen Dank für die Hilfe.

Gruß,
Axel

Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

PDF in bestimmter Seitenreihenfolge drucken

Beitrag von axelh » 26.08.2015, 11:08

Hallo armine,

Du hast mir einen riesen Gefallen getan, jetzt weiß ich endlich wie man die Seiten mit einer Schleife durchläuft! Danke! Das Drucken funktioniert jetzt wunderbar.

Eine Frage hätte ich noch:

Wenn die Checkbox "Fixtermin" angeklickt wird, wird die Hintergrundfarbe vom Feld "Termin-KW" auf allen Seiten in rot und die Textfarbe in weiß geändert. Sobald ich aber in der Tabelle eine Instanz hinzufüge oder lösche (über die "+" und "-" Buttons), werden diese Formatierungen komplett zurückgenommen und ich weiß nicht wieso.

Könntest Du Dir das bitte auch nochmal ansehen? Ich bin soweit, dass ich einige Sachen umsetzen kann aber bei solchen Fehler sehe ich den Zusammenhang nicht.

Gruß,
Axel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

armine
Beiträge: 2690
Registriert: 16.05.2009, 10:24

PDF in bestimmter Seitenreihenfolge drucken

Beitrag von armine » 31.08.2015, 09:13

Hallo Axel,

mit dem Befüllen der DDLs warst du schon mal weiter.
Wenn der LCD sich nicht so verhält, wie du es erwartest, dann hat immer der LCD recht und du musst dir überlegen, wie du ihn zum gewünschten Verhalten anhältst. Das Färben des Termins scheint mir eine gelöste Aufgabe. Weil es sich gerade anbot, habe ich die Umsetzung in KW an die Datumswahl angeknüpft und du kannst nun zwischen Tagesdatum und der KW hin und her schalten.

vg armine
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

PDF in bestimmter Seitenreihenfolge drucken

Beitrag von axelh » 31.08.2015, 09:44

Hallo armine,

vielen Dank, das kann ich so direkt übernehmen!

Das Befüllen der DDLs musste ich nochmal ändern da sich die Anforderungen der Anwender geändert hat. Ich hab aber versucht auf Deinem Code aufzubauen. Das sieht aber auch schon wieder ganz anders aus.

Grüße,
Axel



Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

PDF in bestimmter Seitenreihenfolge drucken

Beitrag von axelh » 08.09.2015, 10:36



Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

PDF in bestimmter Seitenreihenfolge drucken

Beitrag von axelh » 08.09.2015, 10:54

Hallo armine,

das Problem mit dem Ausdruck der verschiedenen Ausfertigungen ist leider noch nicht behoben.

Nochmal zur Erklärung:
In deinem Code wird ja die Hintergrundfarbe, die Textfarbe und die rawValue des Feldes "txtAusfertigung" für jede Ausfertigung verändert. Wenn aber der "Ausfertigungen Drucken"-Button auf einer anderen als der 1. Seite angeklickt wird, funktioniert das nur für die Hintergrund- und die Textfarbe der Seite, auf der der Button angeklickt wurde. Lediglich die rawValue wird für jede Seite geändert (wegen der globalen Bindung?).

Beispiel:
- Es gibt 2 Seiten
- "Ausfertigungen Drucken"-Button wird auf Seite 2 angeklickt
-> Auf Seite 2 werden alle Formatierungen korrekt durchgeführt
-> Auf Seite 1 ändert sich nur die rawValue von txtAusfertigung, Hintergrund- und Textfarbe bleiben unverändert.

Ich zeige momentan gem. Deiner Anleitung (http://acronaut.de/forum45/5876.html den "Ausfertigungen Drucken"-Button nur auf der ersten Seite an, allerdings wäre es schöner, ihn von jeder Seite betätigen zu können.

Der betreffende Code:

Code: Alles auswählen

Formular.#pageSet[0].Seite1.cmdDrucken::click - (JavaScript, client)
if (xfa.host.messageBox("Es werden 4 Ausfertigungen des " +   xfa.layout.pageCount() + "-seitigen Formulars gedruckt.nnSind Sie   sicher?", "Drucken", 2, 2) == 4) {
    for (var i = 0; i < 4; i++) {
        for (var j = 0; j < xfa.layout.pageCount(); j++) {
            xfa.resolveNode("Formular.#pageSet.Seite1[" + j +   "].txtAusfertigung").fillColor =   ["220,221,222","0,255,0","255,0,0","220,221,222"] ;
            xfa.resolveNode("Formular.#pageSet.Seite1[" + j +   "].txtAusfertigung").fontColor =   ["0,0,0","255,255,255","255,255,255","0,0,0"] ;
            xfa.resolveNode("Formular.#pageSet.Seite1[" + j +   "].txtAusfertigung").rawValue  = ["Original","Grün","Rot","Vorgang"] ;
        }
        bolPrintAllowed.value = "1" ;
        xfa.host.print(0, "0", (xfa.host.numPages -1).toString(), 1, 1, 0, 0, 0) ;
    }
}
bolPrintAllowed.value = "0" ;
Oder habe ich was in Deinen Antworten übersehen? Die Print-Parameter habe ich in verschiedenen Varianten ausprobiert, funktioniert alles nicht.

Kannst Du bitte nochmal schauen? Danke!

Gruß,
Axel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
axelh
Beiträge: 73
Registriert: 10.08.2015, 13:10

PDF in bestimmter Seitenreihenfolge drucken

Beitrag von axelh » 10.09.2015, 10:58

Hallo armine,

ich habe es jetzt mal auf eine andere Art versucht und zwar mit einem Textfeld für jede Ausfertigung die dann jeweils ein-/ausgeblendet werden.

Code: Alles auswählen

for (var j = 0; j < xfa.layout.pageCount(); j++) {

        xfa.resolveNode("Formular.#pageSet.Seite1[" + j + "].txtAusfertigung_Original").presence = "visible" ;
        xfa.resolveNode("Formular.#pageSet.Seite1[" + j + "].txtAusfertigung_Grün").presence = "invisible" ;
        xfa.host.print(0, j.toString(), j.toString(), 0, 0, 0, 0, 0) ;

        xfa.resolveNode("Formular.#pageSet.Seite1[" + j + "].txtAusfertigung_Original").presence = "invisible" ;
        xfa.resolveNode("Formular.#pageSet.Seite1[" + j + "].txtAusfertigung_Grün").presence = "visible" ;
        xfa.host.print(0, j.toString(), j.toString(), 0, 0, 0, 0, 0) ;        
    }
Aber auch das funktioniert nur für die Seite, auf der der Button angeklickt wurde. Das Ein-/Ausblenden auf allen anderen Seiten funktioniert nicht.

Gruß,
Axel

Antworten