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 | 3.044 Betrachtungen |  
 ThemeninformationenDieses Thema hat 3 Teilnehmer:  |