Français
Forum

RTF et Ausdrucken

 
- page 1 -



Thomas
Freier
trouvé J'ai eu de Andreas:
KompilierenMarqueSéparation
 $I Profalt.inc
'################################
'Drucken mit dem Richedit-Control
'################################
DEF StartDoc(2)      ! "gdi32","StartDocA"
DEF StartPage(1)     ! "gdi32","StartPage"
DEF EndPage(1)       ! "gdi32","EndPage"
DEF EndDoc(1)        ! "gdi32","EndDoc"
DEF CreateDC(4)      ! "gdi32","CreateDCA"
DEF DeleteDC(1)      ! "gdi32","DeleteDC"
DEF GetDeviceCaps(2) ! "gdi32","GetDeviceCaps"
DEF PrintDlg(1)      ! "comdlg32","PrintDlgA"
Declare Richedit&,RichDLL&,Ende&,Print&,Exit&,FileName$,Driver$,Printer$
Declare Horzres&,Vertres&,PixelsX&,PixelsY&,iWidthTwips&,iHeightTwips&
Declare iTextOut&,iTextLength&,DocName$
Declare PrinterDC&
Declare FormatRange#,PrintDLG#,cRect#
Declare DocInfo#
Dim FormatRange#,48
Dim DocInfo#,12
Clear DocInfo#
Dim PrintDLG#,66
Clear PrintDLG#
Dim cRect#,16
SetTrueColor 1
Window 0,0-640,480
CLS RGB(196,196,196)
Print& = CreateButton(%hwnd,"Drucken",500,40,80,24)
Exit& = CreateButton(%hwnd,"Ende",500,70,80,24)
RichEdit& = Create("RichEdit",%hwnd,"",0,2,460,430)
FileName$ = LoadFile$("Als RTF öffnen","*.RTF")

If FileName$ <> ""

    RTF("LoadRTF",Richedit&,Filename$)

EndIf

DocName$ = "Profan-RTFPrinter"

Whilenot Ende&

    Waitinput

    If GetFocus(Exit&)

        Ende& = 1

    ElseIf GetFocus(Print&)

        Long PrintDLG#,0  = 66
        Long PrintDLG#,4  = %hwnd
        Long PrintDLG#,20 = $0140'PD_RETURNDC,PD_PRINTSETUP
        PrintDlg(PrintDLG#)
        PrinterDC& = Long(PrintDLG#,16)

        If PrinterDC&

            HorzRes& = GetDeviceCaps(PrinterDC&,8)
            VertRes& = GetDeviceCaps(PrinterDC&,10)
            PixelsX& = GetDeviceCaps(PrinterDC&,88)
            PixelsY& = GetDeviceCaps(PrinterDC&,90)
            iWidthTwips& = Int((HorzRes&/PixelsX&))*1440
            iHeightTwips& = Int((VertRes&/PixelsY&))*1440
            Long cRect#,0 = 0
            Long cRect#,4 = 0
            Long cRect#,8 = iWidthTwips&
            Long cRect#,12 = iHeightTwips&
            Long DocInfo#,0 = 12
            Long DocInfo#,4 = ADDR(Docname$)
            Long FormatRange#,0 = PrinterDC&'HDC
            Long FormatRange#,4 = PrinterDC&'TargetHDC
            Long FormatRange#,8 = 0'linker Rand in Twips
            Long FormatRange#,12 = 0'oberer Rand in Twips
            Long FormatRange#,16 = iWidthTwips&'rechter Rand in Twips
            Long FormatRange#,20 = iHeightTwips&'unterer Rand in Twips
            Long FormatRange#,24 = 0'linker Rand in Twips
            Long FormatRange#,28 = 0'oberer Rand in Twips
            Long FormatRange#,32 = iWidthTwips&'rechter Rand in Twips
            Long FormatRange#,36 = iHeightTwips&'unterer Rand in Twips
            Long FormatRange#,40 = 0'CharRange-MIN
            Long FormatRange#,44 = -1'CharRange MAX ( -1 = alles )
            iTextOut& = 0
            iTextLength& = SendMessage(RichEdit&, 14, 0, 0)- SendMessage(RichEdit&,186,0,0)
            StartDoc(PrinterDC&,DocInfo#)

            Whilenot OR(iTextOut& >= iTextLength&,itextOut& = -1)

                StartPage(PrinterDC&)
                Long FormatRange#,44 = -1
                iTextOut& = SendMessage(RichEdit&, 1081, 1, FormatRange#)
                Long FormatRange#,40 = iTextOut&
                SendMessage(RichEdit&,1075,0,cRect#)
                EndPage(PrinterDC&)

            Wend

            EndDoc(PrinterDC&)
            SendMessage(RichEdit&, 1081, 1, 0)

        Endif

    Endif

EndWhile

Dispose FormatRange#
Dispose DocInfo#
Dispose PrintDLG#
DeleteDCà>PrinterDC&)
Fin

malheureusement endet qui Druck pour 3 Seiten. WordPad druckt alles. comment geht's avec XProfan?

2.867 kB
Hochgeladen:06.10.2010
Downloadcounter89
Download
 
Gruß Thomas
Windows XP SP2, XProfan X2
06.10.2010  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »


Uwe
''Pascal''
Niemeier
Hi Thomas!

Anscheinend wird aus qui FORMATRANGE-Struktur pas seulement qui trop bedruckende Bereich ausgelesen, mais pour dem Drucken aussi qui réellement genutzte Bereich hinterlegt (ou bien quelque chose comme dans qui Art). tout autor doit qui betroffene paragraphe qui Struktur chez chaque Schleifendurchlauf récente bestückt volonté.

SeeYou
Pascal

6 kB
Version:2
Kurzbeschreibung: RTF drucken
Hochgeladen:26.10.2010
Downloadcounter151
Download
 
26.10.2010  
 



et chez mir (win7) erscheinen qui Bilder seulement garnicht:



.

16 kB
Hochgeladen:06.10.2010
Downloadcounter82
Download
 
06.10.2010  
 




Thomas
Freier
Sorry! dans meinem Beispiel J'ai eu qui RTFHandling.pcu verwendet: [...] 
Hänge qui wichtigen Teile à et qui geänderte Script:
KompilierenMarqueSéparation
 $U RTFHandling.pcu = R_'TRF-PCU einbinden
 $U objects.pcu = R_
 $I Profalt.inc
'################################
'Drucken mit dem Richedit-Control
'################################
DEF StartDoc(2)      ! "gdi32","StartDocA"
DEF StartPage(1)     ! "gdi32","StartPage"
DEF EndPage(1)       ! "gdi32","EndPage"
DEF EndDoc(1)        ! "gdi32","EndDoc"
DEF CreateDC(4)      ! "gdi32","CreateDCA"
DEF DeleteDC(1)      ! "gdi32","DeleteDC"
DEF GetDeviceCaps(2) ! "gdi32","GetDeviceCaps"
DEF PrintDlg(1)      ! "comdlg32","PrintDlgA"
Declare Richedit&,RichDLL&,Ende&,Print&,Exit&,FileName$,Driver$,Printer$,Print_PCU&
Declare Horzres&,Vertres&,PixelsX&,PixelsY&,iWidthTwips&,iHeightTwips&
Declare iTextOut&,iTextLength&,DocName$
Declare PrinterDC&
Declare FormatRange#,PrintDLG#,cRect#
Declare DocInfo#
Dim FormatRange#,48
Dim DocInfo#,12
Clear DocInfo#
Dim PrintDLG#,66
Clear PrintDLG#
Dim cRect#,16
SetTrueColor 1
Window 0,0-1040,480
CLS RGB(196,196,196)
Print_PCU& = CreateButton(%hwnd,"Druck PCU",900,40,120,24)
Print& = CreateButton(%hwnd,"Druck direkt",900,80,120,24)
Exit& = CreateButton(%hwnd,"Ende",900,120,120,24)
Declare rtf_dll&,rtf_hdc&
rtf_dll& =  R_INTITFORCREATERTF()'DLL laden mit PCU
RichEdit& = R_CREATERICHEDIT(%hWnd,"",0,0,810,420)' Richedit erstellen mit PCU
rtf_hdc& = R_PREPAREFORLINEBREAK(RichEdit&)' Device Context erzeugen mit PCU
R_Init_object(RichEdit&)'Zum Bildempfang vorbereiten
FileName$ = R_RTFLOAD(RichEdit&)
DocName$ = "Profan-RTFPrinter"

Whilenot Ende&

    Waitinput

    If GetFocus(Exit&)

        Ende& = 1

    ElseIf GetFocus(Print_PCU&)

        R_RTFPrint(RichEdit&,0,0,0)' Print über die PCU

    ElseIf GetFocus(Print&)

        Long PrintDLG#,0  = 66
        Long PrintDLG#,4  = %hwnd
        Long PrintDLG#,20 = $0140'PD_RETURNDC,PD_PRINTSETUP
        PrintDlg(PrintDLG#)
        PrinterDC& = Long(PrintDLG#,16)

        If PrinterDC&

            HorzRes& = GetDeviceCaps(PrinterDC&,8)
            VertRes& = GetDeviceCaps(PrinterDC&,10)
            PixelsX& = GetDeviceCaps(PrinterDC&,88)
            PixelsY& = GetDeviceCaps(PrinterDC&,90)
            '     iWidthTwips& = Int((HorzRes&/PixelsX&))*1440 ' Original
            '     iHeightTwips& = Int((VertRes&/PixelsY&))*1440 ' Original
            iWidthTwips& = Int((HorzRes&/PixelsX&))*1450' geändert, nun ohne Umbruch in Zeile 1
            iHeightTwips& = Int((VertRes&/PixelsY&))*1240' geändert, nun alle Bilder gedruckt
            ' Bei weiteren Seiten werden dann allerdings nicht mehr alle gedruckt??
            Long cRect#,0 = 0
            Long cRect#,4 = 0
            Long cRect#,8 = iWidthTwips&
            Long cRect#,12 = iHeightTwips&
            Long DocInfo#,0 = 12
            Long DocInfo#,4 = ADDR(Docname$)
            Long FormatRange#,0 = PrinterDC&'HDC
            Long FormatRange#,4 = PrinterDC&'TargetHDC
            Long FormatRange#,8 = 0'linker Rand in Twips
            Long FormatRange#,12 = 0'oberer Rand in Twips
            Long FormatRange#,16 = iWidthTwips&'rechter Rand in Twips
            Long FormatRange#,20 = iHeightTwips&'unterer Rand in Twips
            Long FormatRange#,24 = 0'linker Rand in Twips
            Long FormatRange#,28 = 0'oberer Rand in Twips
            Long FormatRange#,32 = iWidthTwips&'rechter Rand in Twips
            Long FormatRange#,36 = iHeightTwips&'unterer Rand in Twips
            Long FormatRange#,40 = 0'CharRange-MIN
            Long FormatRange#,44 = -1'CharRange MAX ( -1 = alles )
            iTextOut& = 0
            iTextLength& = SendMessage(RichEdit&, 14, 0, 0)- SendMessage(RichEdit&,186,0,0)
            StartDoc(PrinterDC&,DocInfo#)

            Whilenot OR(iTextOut& >= iTextLength&,itextOut& = -1)

                StartPage(PrinterDC&)
                Long FormatRange#,44 = -1
                iTextOut& = SendMessage(RichEdit&, 1081, 1, FormatRange#)
                Long FormatRange#,40 = iTextOut&
                SendMessage(RichEdit&,1075,0,cRect#)
                EndPage(PrinterDC&)

            Wend

            EndDoc(PrinterDC&)
            SendMessage(RichEdit&, 1081, 1, 0)

        Endif

    Endif

EndWhile

R_DEINITRTF(RichEdit&,rtf_hdc&,rtf_dll&)'RTF-Aufräumen
R_DeInit_object()'RTF-Aufräumen
Dispose FormatRange#
Dispose DocInfo#
Dispose PrintDLG#
DeleteDC=s2>(PrinterDC&)
Fin

Beim Druck suis je quelque chose plus, mais pas wiklich glücklich.
3 Seiten Muster sans rebord dessus ok. Ab 5 Seiten alter faute.

63 kB
Hochgeladen:06.10.2010
Downloadcounter98
Download
6 kB
Hochgeladen:06.10.2010
Downloadcounter83
Download
54 kB
Hochgeladen:06.10.2010
Downloadcounter96
Download
234 kB
Hochgeladen:06.10.2010
Downloadcounter196
Download
 
Gruß Thomas
Windows XP SP2, XProfan X2
06.10.2010  
 



Pour qui rtfhandling.pcu konnte je qui .def-Dossier aus dem Originalpaket [...]  entnehmen, pour qui objects.pcu habe je mais aucun trouvé.

chez mir drucken beide Optionen jusqu'à T.Radke sur 3 Seiten mais pas cela mot "Ende.".

Vlt. sollte on cela alles erstmal sur une (überall-juste-) funktionierende la base réduire ou bien vlt. liegt cela Problem am Ende des Dokumentes. ^ ^

aussi wenns avec dem Problem "RTF-Ausdrucken" pas viel trop 1faire hat so ists am Ende vlt. einfacher simple selbst trop drucken bzw. selbst qui Seiten/ Bilder trop erzeugen. ^ ^

Lässt sich HTML einfacher drucken?

1.254 kB
Hochgeladen:06.10.2010
Downloadcounter138
Download
1.254 kB
Hochgeladen:06.10.2010
Downloadcounter118
Download
 
06.10.2010  
 




Thomas
Freier
Löst pas qui devoir, dass cela Dokument plus gegeben volonté soll, derjenige es plan avec Word ou bien WordPad ouvrir et Travailler peut soll. simple aus dem Programme drucken ist pas cela Problem et es devrait doch comment chez WordPad aussi sur XProfan possible son.
Dieter wird cet Zeilen oui aussi lesen et peut-être pour einer Solution chercher.

Nachtrag: une 26 seitige RTF avec reinem Text ist problemlos trop drucken.
 
Gruß Thomas
Windows XP SP2, XProfan X2
06.10.2010  
 



Irgendwas hab je Schonmal trouvé [...]  ^ ^
 
06.10.2010  
 




Thomas
Freier
Jo! qui page [...]  habe je déjà longtemps comme Lesezeichen im Browser liegen. peux mais seulement wenig mangels Programmier- et Englischkenntnissen verwerten.
chez reinen Textseiten fonctionne qui Druck gesteuert sur
KompilierenMarqueSéparation
While 1

    StartPage(PrinterDC&)
    Long FormatRange#,44 = -1
    iTextOut& = SendMessage(RichEdit&, 1081, 1, FormatRange#)
    Long FormatRange#,40 = iTextOut&
    SendMessage(RichEdit&,1075,0,cRect#)
    EndPage(PrinterDC&)
    case (iTextOut& >=iTextLength&) OR (itextOut& = -1): Break

E
e
réglé ab.
Hat qui RTF mais seulement Bilder, stimmt cela Dokumentenende pas plus. qui Druck endet déjà auparavant.
avec quelque chose Spielerei
KompilierenMarqueSéparation
var x%=1

Tandis que 1

    StartPage(PrinterDC&)
    Long FormatRange#,44 = -1
    iTextOut& = SendMessage(RichEdit&, 1081, 1, FormatRange#)
    Long FormatRange#,40 = iTextOut&
    SendMessage(RichEdit&,1075,0,cRect#)
    EndPage(PrinterDC&)
    cas (iTextOut& > (iTextLength&+x%)) OU (itextOut& = -1): Pause' OU ((itextOut&+1) = -1)
    x%=x%+2

Wend

konnte je es so steuern, dass qui trop erwarteten sept Seiten avec Bildern alle ausgedruckt wurden. Hatte mais aussi chez trop hohem x% jusque 12.000 zusätzliche Leerseiten.
 
Gruß Thomas
Windows XP SP2, XProfan X2
08.10.2010  
 



et si Du la fois PrinterDC aussi pro Schleifendurchgang récente erzeugst?

Nachtrag: plutôt Quatsch là PrinterDC& = Long(PrintDLG#,16)
 
08.10.2010  
 



je glaub je hab quoi, muss encore verifizzeln...
 
08.10.2010  
 



Trotz absolutem chaos-Müll tue je Dir cela à weil cela chez mir alle Seiten druckt jusqu'à zum Ende:

346 kB
Hochgeladen:08.10.2010
Downloadcounter76
Download
4 kB
Hochgeladen:08.10.2010
Downloadcounter75
Download
2.049 kB
Hochgeladen:08.10.2010
Downloadcounter152
Download
 
08.10.2010  
 




Thomas
Freier
Im Moment viens je avec cela pas plus. Erststart qui text99.exe avec Drucker freePDF wurde qui 1. page gedruckt. comme Drucker den Epson ausgewählt --> aucun réaction. comme Drucker den Destiller gewählt --> aucun réaction. Wieder freePDF gewählt --> eh bien aussi aucun réaction plus. Werde mir am soir qui text99.xprf vornehmen et versuchen trop Druckergebnissen trop venons.
 
Gruß Thomas
Windows XP SP2, XProfan X2
08.10.2010  
 



Ah une vois je tout de suite - habe beim Übersetzen
KompilierenMarqueSéparationhdc... devrait hdcc heissen.

4 kB
Hochgeladen:08.10.2010
Downloadcounter92
Download
346 kB
Hochgeladen:08.10.2010
Downloadcounter80
Download
 
08.10.2010  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

17.070 Views

Untitledvor 0 min.
Uwe Lang18.02.2024
H.Brill18.09.2020
boh111.09.2020
Alibre25.12.2019
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie