Wie schafft man das, dass ein Ausdruck auf jeden Drucker gleich aussieht?



  • 😕 Was willst du mit dem Druckdialog?

    Ich drucke auf dem Standarddrucker. Ich könnte auch den Dialog nutzen, will ich aber nicht - jedenfalls nicht anzeigen. 🙂

    Schau, so kriege ich meinen CDC:

    void CBasisDoc::DruckBeginnen(CDC& dc)
    {
    	// Druckjob anlegen
    	DOCINFO docInfo;
    	docInfo.cbSize = sizeof(DOCINFO);
    	docInfo.lpszDocName = _T("AD3");
    	docInfo.lpszOutput = (LPTSTR)NULL;
    	docInfo.fwType = 0;
    
    	// Druckdialog anlegen aber nicht aufrufen
    	CPrintDialog dlg(FALSE); 
    	dlg.GetDefaults();
    
    	// DC anlegen
    	dc.Attach(dlg.GetPrinterDC()); 
    
    	// MapMode ändern (Each logical unit is 0.1 millimeter. Positive x is to the right; positive y is up.)
    	dc.SetMapMode(MM_LOMETRIC);
    
    	// Drucken beginnen
    	dc.StartDoc(&docInfo);
    	dc.StartPage();
    }
    

    Es geht mir um das, was auf dem Papier ist.
    Der bedruckbare Bereich eines Druckers ist immer unterschiedlich von Modell zu Modell - und das ist mein Problem. Besonders in der Höhe.



  • Ich habe mal ein Bild gemacht: http://www.larsaf-iii.de/forum/druck.jpg

    So wie es links ist, soll es etwa aussehen.
    So wie es rechts ist, sieht es bei hoher DPI-Zahl aus. 😞



  • Ich glaub man muss bei allem noch die DPI mit einberechnen.

    guck doch bei codeproject.com die haben doch ne Printing-Abteilung. 🤡



  • Sowas "mal eben" selbst zu machen, ist praktisch unmöglich. Es müssen nicht nur die DPI's in die Berechnung einbezogen werden, sondern auch die Druckbereiche der einzelnen Drucker. DIN-A4 ist nur auf dem Papier gleich DIN-A4.

    Da bleibt nur ein Koordinatensystem und die permanente Prüfung, ob die Zeichen überhaupt noch in die Zeile oder auf die Seite reinpassen, insbesondere, wenn mann nicht genau weiß, was im Einzelnen auszugeben ist.

    Wir haben sowas mal gemacht (mit 3 Mannjahren Entwicklungsaufwand), da für die Anforderungen kein entsprechendes Tool verfügbar war (1995/96 also etwa zur Kupferzeit).

    Drucktools gibts es schon für ein paar Hundert Euro. Die Selbstentwicklung ist praktisch unbezahlbar.



  • lol



  • Also, ich habs jetzt raus.

    Ich hole mir für meinen "Normalfont" einmal die Höhe und berechne den Rest damit.
    Vorher hatte ich das anders gemacht und das ging schief.

    @Manfred: Was ist ein Drucktool? Sowas wie Crystal Reports?
    Und: Wenige 100 Euro pro WAS? Platz? Firma?
    Bei sowas geht mein Chef aber sowieso gnadenlos die Wand hoch und ist auch kaum mit Argumenten zugänglich. 😞



  • Solche Chefs kenne ich, bin selbst so Einer 😃 Schließlich habe ich die 3 Mannjahre finanzieren dürfen. 😡

    Crystal-Reports ist ein Report-Generator der Oberliga. Für Datenbank-Reports solls ganz gut sein. Für Reports reicht mir der QReport von BC völlig aus.

    List und Label ist eine Alternative. Was geeignet ist, kommt auf die Anwendung und den Compiler an.

    Was die Lizenz-Gebühren betrifft, so beziehen die sich auf den Entwickler-Arbeitsplatz. In Deinem Falle reicht also wahrscheinlich eine.



  • Na, du bist wenigstens ehrlich. 😉

    Hey, das klingt doch gut mit dem "Entwicklerarbeitsplatz".
    Ein paar Suchansätze hast du mir ja schon gegeben - hast du sonst noch Suchempfehlungen? 🙂
    Anwendung ist ein Programm zur Kundendatenverwaltung und Compiler ist VC6 bzw. VC2003. (Ich arbeite unter VC6 und zum Ausliefern wird mit VC2003 kompiliert.)

    Auf mich kommt nämlich noch deutlich mehr Druckkram zu, und davor graut mir auch... 😞
    Am besten wäre halt etwas, was man verändern kann ("Den Kundennamen etwas weiter nach oben und grün bitte..."), ohne die Exe anzufassen. 🙂

    Was ist der Unterschied zwischen einem Datenbankreport und einem Report?
    Ich habe eine Datenbank im Hintergrund, falls das schon den Unterschied macht...



  • Wie schon gesagt, haben wir unser eigenes Drucktool, was aber für Datenbankreports (gibt keinen Unterschied zu Reports, so wie ich es gemeint habe) eher ungeeignet ist.

    Wenn der Ausdruck ggf. ohne Änderung der EXE angepaßt werden soll, wurde mir immer List und Label nahe gelegt. Da kann der Ausdruck auch vom Anwender angepaßt werden. Siehe unter http://www.combit.net/

    Vielleicht weiß hier noch jemand eine Alternative?



  • Danke!

    Von List und Label hatte ich schon mal gelesen und ziehe mir gerade die Demo runter. 🙂


Anmelden zum Antworten