Español
Foro

RTF y Ausdrucken

 
- Página 1 -



Thomas
Freier
Gefunden Tuve de Andreas:
KompilierenMarcaSeparación
 $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#
DeleteDCa>PrinterDC&)
End

Leider endet el Druck después de 3 Páginas. WordPad druckt alles. Como geht's con XProfan?

2.867 kB
Hochgeladen:06.10.2010
Ladeanzahl89
Descargar
 
Gruß Thomas
Windows XP SP2, XProfan X2
06.10.2010  
 



« Dieser Contribución wurde como Solución gekennzeichnet. »


Uwe
''Pascal''
Niemeier
Hi Thomas!

Anscheinend se de el FORMATRANGE-Struktur no sólo el a bedruckende Zona ausgelesen, pero después de el Drucken auch el tatsächlich genutzte Zona hinterlegt (oder algo como en el Art). Darum muß el betroffene Abschnitt el Struktur cada Schleifendurchlauf neu bestückt voluntad.

SeeYou
Pascal

6 kB
Versión:2
Kurzbeschreibung: RTF drucken
Hochgeladen:26.10.2010
Ladeanzahl151
Descargar
 
26.10.2010  
 



Und en me (win7) erscheinen el Bilder sólo garnicht:



.

16 kB
Hochgeladen:06.10.2010
Ladeanzahl82
Descargar
 
06.10.2010  
 




Thomas
Freier
Sorry! In mi Ejemplo Tuve el RTFHandling.pcu verwendet: [...] 
Hänge el wichtigen Teile a y geänderte Script:
KompilierenMarcaSeparación
 $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&)
End

Beim Druck bin Yo algo más, pero no wiklich glücklich.
3 Páginas Muster sin Rand oben ok. Ab 5 Páginas alter Fehler.

63 kB
Hochgeladen:06.10.2010
Ladeanzahl98
Descargar
6 kB
Hochgeladen:06.10.2010
Ladeanzahl83
Descargar
54 kB
Hochgeladen:06.10.2010
Ladeanzahl96
Descargar
234 kB
Hochgeladen:06.10.2010
Ladeanzahl196
Descargar
 
Gruß Thomas
Windows XP SP2, XProfan X2
06.10.2010  
 



Für el rtfhandling.pcu podría Yo el .def-Expediente de el Originalpaket [...]  entnehmen, para el objects.pcu Yo pero no gefunden.

En me drucken beide Optionen a T.Radke en 3 Páginas pero no el Wort "Ende.".

Vlt. debería al alles primero en una (überall-igual-) funktionierende Base reduzieren oder vlt. liegt el problema al Ende des Dokumentes. ^ ^

Auch wenns con el Problema "RTF-Ausdrucken" no viel a tun ha así ists al Ende vlt. einfacher simplemente incluso a drucken o. incluso el Páginas/ Bilder a erzeugen. ^ ^

Lässt se HTML einfacher drucken?

1.254 kB
Hochgeladen:06.10.2010
Ladeanzahl138
Descargar
1.254 kB
Hochgeladen:06.10.2010
Ladeanzahl118
Descargar
 
06.10.2010  
 




Thomas
Freier
Löst no el Tarea, dass el Dokument más gegeben voluntad se, derjenige lo eben con Word oder WordPad abierto y bearbeiten puede se. Einfach de el Programa drucken es no el problema y lo müßte doch como en WordPad auch encima XProfan posible ser.
Dieter se esta Zeilen en efecto lesen y tal vez después de uno Solución suchen.

Apéndice: una 26 seitige RTF con reinem Texto es problemlos a drucken.
 
Gruß Thomas
Windows XP SP2, XProfan X2
06.10.2010  
 



Irgendwas tener Yo schonmal gefunden [...]  ^ ^
 
06.10.2010  
 




Thomas
Freier
Jo! El Página [...]  Yo ya largo como Lesezeichen en el Navegador mentira. Kann aber sólo wenig mangels Programmier- y Englischkenntnissen verwerten.
En reinen Textseiten se ejecuta el Druck gesteuert encima
KompilierenMarcaSeparación
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
ordentlich de.
Sombrero el RTF aber sólo Bilder, stimmt el Dokumentenende no mehr. Der Druck endet ya vorher.
Mit algo Spielerei
KompilierenMarcaSeparación
var x%=1

Mientras que 1

    StartPage(PrinterDC&)
    Largo FormatRange#,44 = -1
    iTextOut& = SendMessage(RichEdit&, 1081, 1, FormatRange#)
    Largo FormatRange#,40 = iTextOut&
    SendMessage(RichEdit&,1075,0,cRect#)
    EndPage(PrinterDC&)
    caso (iTextOut& > (iTextLength&+x%)) O (itextOut& = -1): Romper' O ((itextOut&+1) = -1)
    x%=x%+2

Wend

podría Yo así steuern, dass el a erwarteten sieben Páginas con Bildern todos ausgedruckt fueron. Hatte aber auch en a hohem x% a a 12.000 zusätzliche Leerseiten.
 
Gruß Thomas
Windows XP SP2, XProfan X2
08.10.2010  
 



Und si veces PrinterDC auch pro Schleifendurchgang neu erzeugst?

Apéndice: Eher Quatsch como PrinterDC& = Largo(PrintDLG#,16)
 
08.10.2010  
 



Yo glaub Yo tener qué, muss todavía verifizzeln...
 
08.10.2010  
 



Trotz absolutem Chaos-Müll tue Yo Usted el a porque en el me todas las páginas druckt a para Ende:

346 kB
Hochgeladen:08.10.2010
Ladeanzahl76
Descargar
4 kB
Hochgeladen:08.10.2010
Ladeanzahl75
Descargar
2.049 kB
Hochgeladen:08.10.2010
Ladeanzahl152
Descargar
 
08.10.2010  
 




Thomas
Freier
Im Moment komme Yo así no más. Erststart el texto99.exe con Drucker freePDF wurde el 1. Página gedruckt. Als Drucker el Epson ausgewählt --> no Reacción. Als Drucker el Destiller gewählt --> no Reacción. Wieder freePDF gewählt --> nun auch no Reacción mehr. Werde me al Abend el texto99.xprf vornehmen y versuchen a Druckergebnissen a kommen.
 
Gruß Thomas
Windows XP SP2, XProfan X2
08.10.2010  
 



Ah eins sehe Yo inmediatamente - habe beim Übersetzen
KompilierenMarcaSeparaciónhdc... debería hdcc heissen.

4 kB
Hochgeladen:08.10.2010
Ladeanzahl92
Descargar
346 kB
Hochgeladen:08.10.2010
Ladeanzahl80
Descargar
 
08.10.2010  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

17.099 Views

Untitledvor 0 min.
Uwe Lang18.02.2024
H.Brill18.09.2020
boh111.09.2020
Alibre25.12.2019
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie