Forum | | | | Manfred Barei | Hallo,
Habe ein Problem mit dem Druckerrand. Ich bräuchte den nicht zu Bedruckenden Bereich eines Druckers, Wie kann man diesen Wert ermitteln?, Profan oder API. :?:
Grus Manfred [WIN XP Prof.NTME98] [Xprofan 8/9] |
| | | Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 14.03.2005 ▲ |
| |
| | | Ich bin mir nicht sicher ob ein Druckertreiber diese Informationen parat hat.
Generell würde ich aber sagen:
Links & Rechts & Oben 1cm Unten 2cm
um auf Nummer sicher zu gehen.
Salve, iF |
| | | | |
| | Andreas Miethe
| Es geht auch etwas genauer.
Sieh Dir mal diesen etwas aelteren Code an.
Gruss Andreas KompilierenMarkierenSeparierenDef @AGetDeviceCaps(2) ! GDI32,GetDeviceCaps
Def @ACreateDC(4) ! GDI32,CreateDCA
Def @DeleteDC(1) ! GDI32,DeleteDC
Declare PDC&,APX!,APY!,PB!,PH!,POX!,POY!,DPIX!,DPIY!,PBMM!,PHMM!,RMM!
Declare PMAX!,PMAY!
Declare drv#,name#,port#
Declare device$,driv$,port$
Declare POR!,PUR!
Declare PLR!,PRR!
Proc GetPrinterDC
Printer-DC ermitteln
DIM drv#,200
DIM name#,200
DIM port#,200
LET device$=@readini$(win.ini,windows,device)
LET device$=@substr$(@readini$(win.ini,windows,device),1,,)
LET driv$= @ADD$(@substr$(@readini$(win.ini,devices,device$),1,,),.drv)
LET port$=@substr$(@readini$(win.ini,devices,device$),2,,)
String name#,0=device$
String drv#,0=driv$
String port#,0=port$
Let PDC&=@ACreateDC(drv#,name#,0,0)
dispose drv#
dispose name#
dispose port#
EndProc
Proc Werte_Ermitteln
Werte ermitteln
Let APX!=@AGetDeviceCaps(PDC&,8)Ausgabebreite in Pixel
Let APY!=@AGetDeviceCaps(PDC&,10)AusgabeHoehe in Pixel
Let PB!=@AGetDeviceCaps(PDC&,110)Physikalische Breite
Let PH!=@AGetDeviceCaps(PDC&,111)Physikalische Hoehe
Let POX!=@AGetDeviceCaps(PDC&,112)Offset X
Let POY!=@AGetDeviceCaps(PDC&,113)Offset Y
Let DPIX!=@AGetDeviceCaps(PDC&,88)DPI X
Let DPIY!=@AGetDeviceCaps(PDC&,90)DPI Y
Let PBMM!=@AGetDeviceCaps(PDC&,4)Ausgabebreite in mm
Let PHMM!=@AGetDeviceCaps(PDC&,6)Ausgabehoehe in mm
EndProc
Proc Ausgabe
Werte ausgeben
UseFont Arial,18,0,1,0,0
Drawtext 10,0,add$(Standard-Drucker : ,Device$)
UseFont Courier New,15,0,0,0,0
if @equ(@AGetDeviceCaps(PDC&,2),2) then
Drawtext 10,20,Rasterdrucker
endif
Decimals 0
Drawtext 10,60,Add$(Ausgabebreite in Pixel : ,str$(APX!))
Drawtext 340,60,Add$(Ausgabehöhe in Pixel : ,str$(APY!))
Drawtext 10,80,Add$(Physikalische Breite in Pixel : ,str$(PB!))
Drawtext 340,80,Add$(Physikalische Höhe in Pixel : ,str$(PH!))
Drawtext 10,100,Add$(Physikalische Offset X : ,str$(POX!))
Drawtext 340,100,Add$(Physikalische Offset Y : ,str$(POY!))
Drawtext 10,120,Add$(Aufloesung Breite (DPI) : ,str$(DPIX!))
Drawtext 340,120,Add$(Aufloesung Höhe (DPI) : ,str$(DPIY!))
Drawtext 10,140,Add$(Ausgabebreite in mm : ,str$(PBMM!))
Drawtext 340,140,Add$(Ausgabebreite in mm : ,str$(PHMM!))
UseFont Arial,18,0,1,0,1
DrawText 10,180,Aus diesen ermittelten Werten lassen sich die Druckränder
DrawText 10,200,für den Standard-Drucker errechnen
UseFont Courier New,15,0,0,0,0
DrawText 10,240,ADD$(Linker Rand in Pixel : ,STR$(POX!))
DrawText 340,240,ADD$(Rechter Rand in Pixel : ,STR$(SUB(SUB(PB!,APX!),POX!)))
DrawText 10,260,ADD$(Oberer Rand in Pixel : ,STR$(POY!))
DrawText 340,260,ADD$(Unterer Rand in Pixel : ,STR$(SUB(SUB(PH!,APY!),POY!)))
Decimals 1
Let PLR!=ROUND(MUL(DIV(PBMM!,APX!),POX!),1)
Let PRR!=ROUND(MUL(DIV(PBMM!,APX!),SUB(SUB(PB!,APX!),POX!)),1)
Let POR!=ROUND(MUL(DIV(PHMM!,APY!),POY!),1)
Let PUR!=ROUND(MUL(DIV(PHMM!,APY!),SUB(SUB(PH!,APY!),POY!)),1)
DrawText 10,280,ADD$(Linker Rand in mm : ,STR$(PLR!))
DrawText 340,280,ADD$(Rechter Rand in mm : ,STR$(PRR!))
DrawText 10,300,ADD$(Oberer Rand in mm : ,STR$(POR!))
DrawText 340,300,ADD$(Unterer Rand in mm : ,STR$(PUR!))
Decimals 0
DrawText 10,340,ADD$(Blattgrösse X in mm : ,STR$(ADD(ADD(PBMM!,PLR!),PRR!)))
DrawText 340,340,ADD$(Blattgrösse Y in mm : ,STR$(ADD(ADD(PHMM!,POR!),PUR!)))
Textcolor rgb(255,0,0),rgb(192,192,192)
UseFont Courier New,16,0,1,0,0
If GT(APX!,APY!)
Drawtext 10,40,Querformat
else
Drawtext 10,40,Hochformat
endif
Textcolor rgb(255,255,0),rgb(192,192,192)
UseFont Arial,14,0,1,0,0
Drawtext 10,360,BEACHTE : Die errechneten Werte hängen von der Auflösung und der Papiersorte bzw. Papiergrösse ab,
Drawtext 10,380,die in der Druckereinstellung vorgenommen wurde !
EndProc
SetTruecolor 1
cls rgb(192,192,192)
Textcolor rgb(0,0,0),rgb(192,192,192)
UseFont Arial,18,0,1,0,1
UseCursor 2
Drawtext 10,410,Ermittle Werte für den Standard-Drucker
GetPrinterDC
Werte_ermitteln
Rectangle 0,8-630,356
Ausgabe
UseFont Arial,18,0,1,0,1
Textcolor rgb(255,0,0),rgb(192,192,192)
Drawtext 10,410,Werte für den Standard-Drucker ermittelt
UseCursor 0
waitinput
@DeleteDC(PDC&)Printer-DC freigeben
end
|
| | | Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 14.03.2005 ▲ |
| |
| | | Ja unser ApiMeister hat mal wieder zugeschlagen. Respekt!
Salve, iF |
| | | | |
| | Manfred Barei | Hallo,
Was würden wir bloß ohne unsere API-Gurus machen? :?:
Jo, Danke Andreas genau das habe ich gesucht.
Grus aus der Heide von Manfred |
| | | Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 17.03.2005 ▲ |
| |
|
AntwortenThemenoptionen | 2.591 Betrachtungen |
ThemeninformationenDieses Thema hat 3 Teilnehmer: |