Seite 1 von 1

Ausdrucken mit der RichEdit.pbi

Verfasst: 26.03.2013 18:21
von dysti
@TS-Soft hat eine RichEdit.pbi zur Verfügung gestellt.
http://forums.purebasic.com/german/view ... f43b5d9b1f
Allerdings, wenn man im Editorgadget die Seitenränder (SetLeftMargin) gesetzt hat
und den Text ausdruckt, ist die Formatierung weg.

Wie kann man einen Ausdruck mit Berücksichtigung der Seitenränder erstellen?

Re: Ausdrucken mit der RichEdit.pbi

Verfasst: 27.03.2013 19:05
von dysti
Ich habe hier mal ein Testcode, der das Problem verdeutlicht.
Wenn man auf den Button "Setze linken Seitenrand" klickt, wird der gesamte Text nach rechts verschoben.
Klickt man auf den Button "Drucken", wird der Text zwar ausgedruckt, aber nicht mit Seitenrand.

Wichtig für mich wäre auch, ob dieser Effekt bei euch auch auftritt?

Code: Alles auswählen

EnableExplicit

XIncludeFile "..\RichEdit.pbi"

Define.RichEdit Edit; Objectvariable für unser RTF-Control
Define.i a

Enumeration
  #lseitenrand
  #drucken
EndEnumeration


If OpenWindow(0,0,0,500,250,"RichEdit-Example - Drucktest",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  
  Edit = New_RichEdit(10,10,480,200)
  
  ButtonGadget(#lseitenrand, 10,220,150,20,"Setze linken Seitenrand")
  ButtonGadget(#drucken,390,220,100,20,"Drucken")
  
  For a=1 To 10
    AddGadgetItem(Edit\GetID(),-1,"Probetext zum Ausdrucken",0,0)
  Next
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        Break
      Case #PB_Event_Gadget
        Select EventGadget()
          Case #lseitenrand
            
              Edit\SetLeftMargin(100) ;Linken Seitenrand setzen
              
          Case #drucken
            
              Edit\Print()           ;und Text ausdrucken
            
        EndSelect
    EndSelect
  ForEver
Else  
  Debug "Kann Fenster nicht öffnen!"
EndIf

End

Re: Ausdrucken mit der RichEdit.pbi

Verfasst: 27.03.2013 20:41
von bobobo
das ist so ..der zugefügte Seitenrand fehlt im Druck


Du kannst den Text aber mit Indent(...) einrücken, musst Du nur vorher alles markieren
und danach wieder entmarkieren

Code: Alles auswählen

..
..
Case #lseitenrand
    Edit\SelectAll()
    Edit\Indent(5) ;Linken Seitenrand setzen durch indentieren, oder wie das Verb auch immer heissen mag
    Edit\Unselect()
..
..

Re: Ausdrucken mit der RichEdit.pbi

Verfasst: 27.03.2013 20:49
von bobobo
oder du tunst die Print Routine

Code: Alles auswählen

..
OffsetX = GetDeviceCaps_(DC, #PHYSICALOFFSETX) +200 ;willkürlich um 200 nach rechts verschoben macht auch einen Rand
..

Re: Ausdrucken mit der RichEdit.pbi

Verfasst: 28.03.2013 08:04
von dysti
Hallo @bobobo,
oder du tunst die Print Routine
Das scheint mir die Lösung zu sein.
Werde es ausprobieren.
Danke