Drucken Querformat/Hochformat

  • Hallo Experten,


    ich weiß das das Thema hier im Forum schon mehrfach besprochen wurde. Die Lösungen laufen letztlich immer auf das Anlegen und Nutzen von 2 Windows-Druckern hinaus, die dann einmal auf Hochformat und einmal auf Querformat eingestellt sind.


    Jetzt stelle ich aber fest dass die "Seitenformat"-Einstellungen offenbar die Druckereinstellungen übersteuern. Die Seitenformat-Einstellungen existieren aber imho nur 1x pro Datenbank (werden sie auch dort gesichert??).


    Demnach würde mir die 2-Drucker Lösung gar nicht weiterhelfen, da ohnehin immer mit der Ausrichtung gedruckt wird, die bei "Seitenformat" eingestellt ist.


    Habe ich da einen Denkfehler? Oder gibt es dann tatsächlich keine Lösung mehr für die Anforderung "Ausdruck soll programmatisch quer/hoch erfolgen"?

  • Hallo,


    also wie in den anderen Threads schon beschrieben gibt es Lösung, doch meist sind sie abhängig vom Betriebssystem und von der Art der Treiber (Netzwerk oder Lokal).


    Du musst also schauen welches OS und welchen Treiber.
    Ist dann möglich per API, welche du auch über Google findest.


    MfG Stefan

  • Hi Stefan,


    dank dir für deine Antwort.
    Die Antworten beziehen sich in der Regel auf Windows (XP) - und würden mir von daher auch vollkommen ausreichen. Es geht in meinem Fall um einen lokalen Drucker der 2x in Windows eingerichtet ist (einmal Hochformat, einmal Querformat).


    Nur bringt mir das selektieren des Druckers (per API, WSH, etc.) nicht wirklich etwas, wenn die Einstellungen von dort gar nicht gezogen werden.
    Gedruckt wird unschönerweise immer so, wie es in den Seitenformat-Einstellungen steht (vgl. SPR KUMA5W3MVB).
    Und diese Einstellungen scheinen wiederum nicht pro Formular, sondern nur auf DB-Ebene gepflegt werden zu können.


    Vielleicht ist mir auch der Zusammenhang zwischen den Seitenformat-Einstellungen und den Druckertreiber-Einstellungen noch nicht ganz klar - gibt es dort einen?


    Die anderen Beiträge im Forum gehen auf dieses Problem mit den Seitenformat-Einstellungen (=Menü --> Datei --> Seitenformat) auch offenbar gar nicht ein. Oder hast Du einen Beitrag gefunden, der diese mit behandelt?

  • Hallo,


    wenn du die Einstellungen am Treiber temporär änderst und dann aber die Funktionen von Notes nutzt, d.h uidoc.Print das Dokument druckst, dann werden die vorgenommenen Einstellungen wieder von den Notes Seitenformat Einstellungen überschrieben.
    (Ich meine das das nicht auf DB-Ebene sodern auf Client-Ebene geregelt wird)


    Du kannst aber auch die Daten per API direkt an den Drucker senden. Ist dann aber ein großer Aufwand.
    Wenn es eine Möglchkeit gibt die Seiteneinstellungen von Notes zu ändern bin ich auch sehr interessiert wie es geht.


    Ansonsten ist es leider nur mit der WIN-API möglich.


    Ich schau mal ob ich meine Scripte noch finde.


    MfG

  • Hallo taurec,


    da ich mir nicht sicher war, wie die Drucker damals angelegt wurden, habe ich sie nochmal neu anlegen lassen - ausdrücklich ohne Kopie.


    Das Problem bleibt unverändert - die Einstellungen unter "Seitenformat" überschreiben die Druckereinstellungen.
    Seitenformat kann nicht pro Drucker gepflegt werden (obwohl die Überschrift des Dialogfensters dies suggeriert).


    hurtz:
    Das würde aber ja tatsächlich bedeuten, dass man innerhalb einer Datenbank (mindestens) per Script immer nur in der gleichen Ausrichtung drucken kann, bzw. die Ausrichtung gar nicht gezielt kontrollieren kann. Wenn Du die Scripten zum Workaround noch findest, würde ich mir das gern mal anschauen.

    • Offizieller Beitrag

    die Scripte, die per Win-Api die Seiteneinstellung ändern, funktionieren nicht mehr ab Win XP. Aber Du kannst den Drucker 2 Mal im BS hinterlegen und diese beiden Drucker auf die gleiche Schnittstelle (LPT1 oder Netzwerk) drucken lassen.


    Per Script kannst Du dann den Drucker wechseln.


    Beide Scripte findest Du hier im Form.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hey MacMac,


    leider habe ich die Scripte nicht mehr.
    Doch kann ich es gut verstehen, dass du es auf dem Wege machen möchtest, da ich es auch unheimlich umständlich finde noch einen zwieten Drucker bei jedem einrichten zu müssen obwhl man die Einstellungen ja am Client vornehmen kann.


    Schau mal hier.. angeben ist der code für alle win32 Platformen
    http://www-10.lotus.com/ldd/nd…71380061c261?OpenDocument


    Leider nur der Zugriff auf die Drucker, aber vielleicht kannst dann weiter machen.


    MfG Stefan

  • Siehst doch was gefunden .... wenn der zufall es will :)


    Anbei eine version die unter XP läuft


    Sub Click(Source As Button)
    Dim printer As String
    Call getDefaultPrinterName(printer)

    If printer <> "" Then
    Call setPrinterOrientation(printer, 2)
    Print "set to landscape"

    Dim ws As New NotesUIWorkspace
    Call ws.CurrentDocument.Print(1,1,1,0,printer)
    Else
    Msgbox "No Printer found"
    End If
    End Sub

  • Guten Morgen zusammen,
    und erstmal danke für die Postings!


    @Dali:

    Zitat

    Aber Du kannst den Drucker 2 Mal im BS hinterlegen


    Ich hatte gehofft das ginge aus meiner Problembeschreibung hervor... - ich HABE 2 Drucker eingerichtet - mit unterschiedlichen Ausrichtungen. Die Ausrichtungs-Einstellung der Drucker wird aber von der Einstellung in "Seitenformat" im Client überlagert.
    Die 2 Drucker sind also nicht weiterführend.



    hurtz:
    Vielen Dank für das Script!!
    Leider löst es mein Problem (nach erstem schnellen Testen) aber offenbar auch nicht. Ich habe die Zeile


    Code
    Call setPrinterOrientation(printer, 2)


    mit den Parametern 0 - 4 versucht - und immer wird genau so gedruckt, wie es in den Seitenformat-Einstellungen des Clients angegeben ist. - also kurz: :-|

  • Guten Morgen,


    also ich habe es bei mir 7.03 versucht.


    Es klappt wunderbar, er schreibt es auch nicht in die Druckereinstellungen sondern in die Seitenformat-Einstellungen von Notes.


    2 ist Landscape und er hat es auch wunderbar gemacht. Welche Client-Version hast du?

  • Hi hurtz,


    dank dir für die Mühe.
    Ich benutze 7.04.


    2 ist Landscape - 1 ist Portrait.


    Folgende Zeilen

    Code
    val1 = getPrinterOrientation(printer)
    		val2 = setPrinterOrientation(printer, 2) 
    		val3 = getPrinterOrientation(printer)


    liefern folgende Return-Werte:
    val1 = 1
    val2 = 1
    val3 = 2


    Sieht prima aus - genau das was ich will - die Ausrichtung wäre demnach von Hoch- auf Querformat geändert worden.
    Schaue ich danach aber in Datei-->Seitenformat, so ist dort weiterhin "Hochformat" eingetragen.


    Schicke ich hinter obigen Zeilen einen ws.curDoc.print hinterher, wird Hochformat gedruckt... - unschön.


    ---> Ich vermute übrigen, dass dieses Verhalten erst auftritt, wenn man Menü-Seitenformat für diese Datenbank mindestens einmal genutzt und mit OK bestätigt hat. <---

    • Offizieller Beitrag

    das liegt an dem Aufrufenden Script.


    Nimm mal 2 Scripte.
    Das erste setzt die Eigenschaft und das 2 liest diese wieder aus. Was bringt dann das 2. Script?


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hallo Diali,


    das 2. Skript zeigt das gleiche Ergebnis wie wenn ich es in einem einzelnen Skript ausführe.
    --> Der Setter-Script setzt die Eigenschaft offensichtlich erfolgreich.
    --> Das Getter-Script kann den geänderten Wert später wieder auslesen.


    Mir ist allerdings nicht klar, wo sich diese Einstellung niederschlägt.
    Seitenformat-Einstellung und Durcker-Format-Einstellungen bleiben unverändert. Ein ws.curdoc.print ist davon weiterhin unberührt.

  • Also bei mir ändert er die Einstellungen in den Seitenformat Einstellungen, diese gelten nur für den definierten Standarddrucker.
    Nimmst du diesen auch? und wenn ja dann auch zum drucken?

  • taurec:
    Ja, das war das Szenario aus diesem Posting


    hurtz:
    Ich hab das ganze jetzt an verschiedenen Arbeitsplätzen - u.A. mit lokalen Admin-Rechten ausprobiert. Seitenformat-Einstellungen bleiben leider unberührt.


    Der Drucker auf den ich Drucke ist als Standarddrucker gesetzt.


    Aber:

    Zitat

    Seitenformat Einstellungen, diese gelten nur für den definierten Standarddrucker


    Wenn dem so wäre, dann wäre ja alles gut!
    Dann könnte ich den 2. Drucker (=nicht Standard-Drucker) ja andersweitig einstellen und wäre dort unabhängig von den Seitenformat-Einstellungen.


    Genau dies stelle ich aber in der Praxis nicht fest. Egal auf welchen Drucker ich drucke, es wird immer die Ausrichtung aus den Seitenformat-Einstellungen gezogen.


    Wenn ich die Seitenformat-Einstellungen öffne steht in der Titelleiste des Dialogfensters übrigens auch nicht der Standard-Drucker, sondern der Drucker den ich in Datei-->Drucken zuletzt ausgewählt hatte - selbst dann, wenn ich diesen Dialog mit Abbrechen verlassen habe!

  • hurtz, posting #9


    Ich habe den Code von Hurtz #9 übernommen. Bei mir funktioniert das Umstellen auf Querformat - Dank an Hurtz. Allerdings musste ich mir erst mal den Vollzugriff für die Druckerverwaltung-Berechtigung verschaffen. Das ist nicht so schön, wenn man bedenkt, dass man dann für alle User den Vollzugriff zulassen muss. Gibt es dafür vielleicht noch eine elegante Lösung?