Deutsch
Forum

Allerlei Fragen rund ums Drucken mit XProfan

 
- Seite 1 -



Julian
Schmidt
Hallo Community,
ich würde gerne einige Fragen rund um Drucken mit XProfan klären.

Zum Thema: Ich bin gerade dabei mein Stundenplan-Tool (Vlt. erinnern sich einige an dieses) zu aktualisieren. Nun versuche ich gerade die Druckfunktion auf Vorderman zu bringen.
Ich stelle mir das Drucken so vor.
Wenn man auf Drucken klickt kommt ein Druckerauswahldialog, anschließend kann man Einstellungen treffen und drucken. Wenn im Druckerauswahldialog Querformat geklickt wurde soll etwas anderes gedruckt werden als im Hochformat.
Im Querformat wird der Stundenplan einmal über die Gesamte Länge des Blattes gedruckt.
Im Hochformat wird der Stundenplan mehrfach untereinander auf die Gesamte Breite des Blattes gedruckt, sodass auch so das gesamte Blatt ausgefüllt ist.

Nun müsste man zum einen ermitteln ob Quer-, oder Hochformat ausgewählt wurde.
Und zum zweiten müsste die Größe des Blattes ermittelt werden, sodass man den Stundenplan Zentrieren kann.

Ziel dieses Beitrags ist es erstmal ganz simple im Hoch-, Querformat eine Linie, und einen Text Zentriert, in der jeweiligen Format-Ausrichtung(Rand von ~50px) auszudrucken.
KompilierenMarkierenSeparieren
StartPrint "*Testausdruck"

if %Printing

    Line 50,50 - 200,50
    DrawText 50, 60, 200, 80, "TestText", 1
    EndPrint

Endif


LG

Julian57
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
19.08.2011  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »

- Seite 2 -



Thomas
Freier
Da ist Umrechnen angesagt. Du bekommst z.B. Blattbreite in mm. Dann sind das ~H&*3.425 Bildpx .
KompilierenMarkierenSeparieren
 $H Windows.ph
Declare H&,V&
cls
var  rand%=75
var pxmm!=3.425
var pymm!=3.35
StartPrint "*Test"

if %Printing

    H& = ~GetDeviceCaps(&PDC,~HORZSIZE)
    V& = ~GetDeviceCaps(&PDC,~VERTSIZE)
    UsePen 0,1,@RGB(0,0,31)

    If H& > V&'Querformat

        Line rand%,100 - ((H&*pxmm!)-rand%),100

    Else'Hochformat

        Line rand%,100 - ((H&*pxmm!)-rand%),100

    Endif

    EndPrint

Endif


Verwendest du Druckerpx (APX%) mußt du deine Bildschirmpx (rand%) umrechnen.
 
Gruß Thomas
Windows XP SP2, XProfan X2
20.08.2011  
 



 
- Seite 1 -



Rolf
Koch
und was mich hier wundert: Keiner geht auf Deinen geilen Spruch ein "ob der Drucker männlich oder weiblich" ist. Ich hab mich wieder gekringelt vor Lachen. Danke if, für diesen Spruch !!!!
 
20.08.2011  
 




Jörg
Sellmeyer
Was heißt denn "Leider nicht"? Bekommst Du keine Werte oder was? Bei mir kommen nämlich Werte in die Variablen. Und zwar ziemlich genau die, die ich bei einer Din A4-Seite erwaten würde.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
20.08.2011  
 




Thomas
Freier
Ist schon witzig, wie die Daten ermittelt werde.
Jörg erwatet sie [...] 
und Julian fischt im Trüben [...] 
 
Gruß Thomas
Windows XP SP2, XProfan X2
20.08.2011  
 



 
- Seite 2 -



Julian
Schmidt
Die Frage ist ja immer ob die richtigen Werte ermittelt werden, ob das der Wert ist den ich suche. Wie wird es den bei euch ausgedruckt?
KompilierenMarkierenSeparieren
 $H Windows.ph
Declare H&,V&, rand_px&, APX%, APY%
rand_px&=75
cls
StartPrint "*Test"

if %Printing

    H& = ~GetDeviceCaps(&PDC,~HORZSIZE)
    V& = ~GetDeviceCaps(&PDC,~VERTSIZE)
    APX%= ~GetDeviceCaps(&PDC,~HORZRES)
    APY%= ~GetDeviceCaps(&PDC,~VERTRES)
    'APX% und APY% evtl. vertauschen

    If H& > V&'Querformat

        Line rand_px&,rand_px& - (APY%-rand_px&),rand_px&

    Else'Hochformat

        Line rand_px&,rand_px& - (APX%-rand_px&),rand_px&

    Endif

    EndPrint

Endif

 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
20.08.2011  
 




Thomas
Freier
Da ist Umrechnen angesagt. Du bekommst z.B. Blattbreite in mm. Dann sind das ~H&*3.425 Bildpx .
KompilierenMarkierenSeparieren
 $H Windows.ph
Declare H&,V&
cls
var  rand%=75
var pxmm!=3.425
var pymm!=3.35
StartPrint "*Test"

if %Printing

    H& = ~GetDeviceCaps(&PDC,~HORZSIZE)
    V& = ~GetDeviceCaps(&PDC,~VERTSIZE)
    UsePen 0,1,@RGB(0,0,31)

    If H& > V&'Querformat

        Line rand%,100 - ((H&*pxmm!)-rand%),100

    Else'Hochformat

        Line rand%,100 - ((H&*pxmm!)-rand%),100

    Endif

    EndPrint

Endif


Verwendest du Druckerpx (APX%) mußt du deine Bildschirmpx (rand%) umrechnen.
 
Gruß Thomas
Windows XP SP2, XProfan X2
20.08.2011  
 




Julian
Schmidt
Super, es funktioniert ^^
Sehr cool! Muss ich jetzt nur noch in meinen Programm umsetzen!

Bei weiteren Fragen melde ich mich nochmal, erstmal Danke an Alle!
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
20.08.2011  
 



Bin ebenso interessiert!

Wenn Du da nen Minispeibiel parat hast dann bitte bei den Quelltexten einreihen.
 
20.08.2011  
 




Julian
Schmidt
hmmmmm.....werde schauen ob ich was zurecht schreibe, wenn nicht als Beispiel die Linie verwenden ^^
Morgen vlt, wenn ich nicht an meiner Page bastle, welche ich aktualisiere.
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
20.08.2011  
 



 
20.08.2011  
 




Thomas
Freier
Also, eine echte Lösung gibt es nicht. Hier nur ein simples Beispiel mit einer RTF und was verschiedene Software daraus machen. Alle Ränder waren auf 0 eingestellt. Man sollte aus Sicherheitsgünden nie das Blatt voll ausreizen.


4 kB
Hochgeladen:21.08.2011
Ladeanzahl156
Herunterladen
1 kB
Hochgeladen:21.08.2011
Ladeanzahl154
Herunterladen
4 kB
Hochgeladen:21.08.2011
Ladeanzahl148
Herunterladen
21 kB
Hochgeladen:21.08.2011
Ladeanzahl111
Herunterladen
4 kB
Hochgeladen:21.08.2011
Ladeanzahl152
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
21.08.2011  
 




Julian
Schmidt
iF (20.08.11)
Wenn Du da nen Minispeibiel parat hast dann bitte bei den Quelltexten einreihen.


Hier mal einen Ausschnitt aus meinen Prog. zum zeichnen einer Stundenplan-Tabelle. Bisher habe ich mich nur um das Querformat gekümmert. Hochformat kommt aber auch noch daran, und dann werde ich dieses Beispiel hier ergänzen, und einen Snippet erstellen!
KompilierenMarkierenSeparieren
 $H Windows.ph
declare zeile%, top% , wtag$
var rand%=70
var pxmm!=3.425
var pymm!=3.35
StartPrint "*Stundenplan"

if %Printing

    var H& = ~GetDeviceCaps(&PDC,~HORZSIZE)'Physikalische Breite in mm
    var V& = ~GetDeviceCaps(&PDC,~VERTSIZE)'Physikalische Höhe in mm
    var width&=H&*pxmm!'Physikalische Breite in Pixeln
    var height&=V&*pymm!'Physikalische Höhe in Pixeln
    var reihen_nummer%=width&/24'Breite der Spalte für die Stundennummer
    UsePen 0,1,RGB(0,0,31)

    If H& > V&'Wenn Querformat aufgewählt wurde

        top%=height&/4'Beginn der Stundenplan Tabelle
        zeile%=(height&-(top%+rand%))/13'Höhe einer Zeile der Tabelle
        UsePen 0,2,255

        Whileloop 13'Malen aller horizontalen Spalten

            Line rand%,top%+zeile%*&loop - (width&-rand%),top%+zeile%*&loop

        Endwhile

        Line rand% ,top% - rand%,top%+(zeile%*13)'Erste vertiakale Linie

        whileloop 0,6'Malen der restligen vertikalen Linien

            case &loop=0 : Line (rand%+reihen_nummer%)+(((width&-reihen_nummer%)-(rand%*2))/6*&loop),top%+zeile% - (rand%+reihen_nummer%)+(((width&-reihen_nummer%)-(rand%*2))/6*&loop),top%+(zeile%*13)
            case &loop<>0 : Line (rand%+reihen_nummer%)+(((width&-reihen_nummer%)-(rand%*2))/6*&loop),top% - (rand%+reihen_nummer%)+(((width&-reihen_nummer%)-(rand%*2))/6*&loop),top%+(zeile%*13)

        Endwhile

        TextColor 0,-1
        UseFont "Times New Roman",width&/35,0,1,0,0

        whileloop 12'Liniennummern zeichnen

            DrawText rand%-2, top%+(zeile%*&loop)+2, rand%+reihen_nummer%, (top%+zeile%)+(zeile%*&loop), Str$(&loop), 1

        Endwhile

        whileloop 0,5'Wochentage, 'Zeiten' aufmalen

            case &loop<>0 : wtag$=Substr$("Montag,Dienstag,Mittwoch,Donnerstag,Freitag",&loop,",")
            TextColor 0,-1
            UseFont "Times New Roman",width&/35,0,1,0,0

            if &loop=0

                DrawText rand%, top%+2, (rand%+reihen_nummer%)+(((width&-reihen_nummer%)-(rand%*2))/6*&loop)+(((width&-reihen_nummer%)-(rand%*2))/6) , top%+zeile%, "Zeiten", 1

            else

                DrawText rand%+reihen_nummer%+((((width&-reihen_nummer%)-(rand%*2))/6)*&loop), top%+2, rand%+reihen_nummer%+((((width&-reihen_nummer%)-(rand%*2))/6)*(&loop+1)) , top%+zeile%, wtag$, 1

            Endif

        Endwhile

    Else'Wenn Hochformat aufgewählt wurde

        Messagebox("Drucken des Hochformates bisher nicht möglich!","INFO",64)

    Endif

    EndPrint

Endif


Weiterhin habe ich einige Fragen zum Druckrändern!
Wie würdet ihr den Druckrand wählen. Wie viel Pixel Rand werden auf jedem Fall benötigt damit nichts abgeschnitten wird?

Ist Rand auf jeder Seite notwendig? Links-Rechts, Oben-Unten oder sogar nur auf einer Seite?
Ich male ein Hintergrund hinter den Stundenplan welcher möglichst mit wenig Rand ausgedruckt werden soll ^^.
Momentane Ränder: Tabelle=70px Bild=10px
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
23.08.2011  
 




Julian
Schmidt
Ich habe nun einen Kompromiss für mich gefunden. Ich ermittle den Rand des gewählten Druckers. Außerdem gebe ich eine Ober-, Untergrenze an.
So halte ich die Objekte auf jeden Drucker in der angegebenen Größenangaben, wenn nicht sogar bei gleicher Ober-, Untergrenze in exakt der genauen Größe(im Verhältnis zum Blattes(Prozentual))
KompilierenMarkierenSeparieren
 $H Windows.ph
cls
StartPrint "*Test"

if %Printing

    var H& = ~GetDeviceCaps(&PDC,~HORZSIZE)
    var V& = ~GetDeviceCaps(&PDC,~VERTSIZE)
    var pxmm!=3.425
    var pymm!=3.35
    var width&=H&*pxmm!
    var height&=V&*pymm!
    var rand%= ~GetDeviceCaps(&PDC,112)
    case rand%<(width&/100)*7 : rand%=(width&/100)*7'Untergrenze=7% von Physikalischer Blattergröße in Pixeln
    case rand%>(width&/100)*7 : rand%=(width&/100)*7'Obergrenze=7% von Physikalischer Blattergröße in Pixeln
    UsePen 0,1,RGB(0,0,31)

    If H& > V&'Querformat

        Line rand%,100 - (width&-rand%),100

    Else'Hochformat

        Line rand%,100 - (width&-rand%),100

    Endif

    EndPrint

Endif

 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
23.08.2011  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

14.497 Betrachtungen

Unbenanntvor 0 min.
Member 294243008.04.2024
Uwe Lang19.06.2023
Manfred Barei16.05.2021
rquindt17.05.2020
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie