Español
Foro

Drei RTF ausdrucken

 
- Página 1 -



Thomas
Freier
Alle Eigenversuche schlugen fehl. Tiene una una Vorschlag, como zwei RTFs fester Größe y una Dritte cualquier lang ausgedruckt voluntad puede.
Analog uno Ejemplo de Uwe 'Pascal' se hier sólo una Página gedruckt. Aber como geht's más?
KompilierenMarcaSeparación
 $H Windows.ph
 $H RichEdit.ph
 $U RTFHandling.pcu = R_'RTF-PCU einbinden
 $U objects.pcu = R_

proc DrawRichText2'---------------------------------------------------------DrawRichText2

    parameters RTF&,PosX%,PosY%,MaxX%,MaxY%'--Position + Grösse in Pixeln!
    declare PrinterDpiX%,PrinterDpiY%
    declare WindowDpiX%,WindowDpiY%
    declare fx!,fy!

    if %printing'--Bei Druck: %HDC2 = %HDC = &PDC

        ~SetMapMode(%hdc2,1)
        ~SetWindowExtEx(%hdc2,1,1,0)
        ~SetViewPortExtEx(%hdc2,1,1,0)
        PosX%=PosX%+30'--Korrektur ???
        PosY%=PosY%+30'--Korrektur ???

    endif

    PrinterDpiX%=~GetDeviceCaps(%hdc2,~LOGPIXELSX)'--dpi X des Druckers
    PrinterDpiY%=~GetDeviceCaps(%hdc2,~LOGPIXELSY)'--dpi X des Druckers
    WindowDpiX%=~GetDeviceCaps(~GetDC(%hwnd),~LOGPIXELSX)'--dpi X des Bildschirms (!)
    WindowDpiY%=~GetDeviceCaps(~GetDC(%hwnd),~LOGPIXELSY)'--dpi Y des Bildschirms (!)
    PosX%=int(PosX%/WindowDpiX%*1440)
    PosY%=int(PosY%/WindowDpiX%*1440)
    MaxX%=int(MaxX%/WindowDpiX%*1440)
    MaxY%=int(MaxY%/WindowDpiX%*1440)
    declare Range#
    dim Range#,48
    clear Range#
    long Range#, 0=%hdc2,%hdc2
    long Range#, 8=PosX%,PosY%,PosX%+MaxX%,PosY%+MaxY%
    long Range#,24=PosX%,PosY%,PosX%+MaxX%,PosY%+MaxY%
    long Range#,44=-1
    sendmessage(RTF&,~EM_FORMATRANGE,1,Range#)

    if %printing

        fx!=~GetDeviceCaps(%hdc2,~LOGPIXELSX)/300
        fy!=~GetDeviceCaps(%hdc2,~LOGPIXELSY)/300
        ~SetMapMode(%hdc2,~MM_ANISOTROPIC)
        ~SetWindowExtEx(%hdc2,6400,9600,0)
        ~SetViewPortExtEx(%hdc2,int(2200*fx!),int(3300*fy!),0)

    endif

    dispose Range#
    casenot %printing:repaint

endproc'---------------------------------------------------------------------------------

window 0,0-%maxX,800
var rtf_dll& =  R_INTITFORCREATERTF()'DLL laden mit PCU
var _RichEdit& = R_CREATERICHEDIT(%hwnd,"",70,0,350,100,9000)' Richedit erstellen mit PCU
RTF("LoadRTF",_RichEdit&,"Bootsplatz.rtf")
var __RichEdit& = R_CREATERICHEDIT(%hwnd,"",480,0,280,100,9000)' Richedit erstellen mit PCU
RTF("LoadRTF",__RichEdit&,"Label 105x42.rtf")
var RichEdit& = R_CREATERICHEDIT(%hwnd,"",0,102,800,400,9000)' Richedit erstellen mit PCU
var rtf_hdc& = R_PREPAREFORLINEBREAK(RichEdit&)' Device Context erzeugen mit PCU
R_Init_object(RichEdit&)'Zum Bildempfang vorbereiten
RTF("LoadRTF",RichEdit&,"Bilder-Album.rtf")
startprint "*xx"
DrawRichText2 _RichEdit&,80,10,400,150
DrawRichText2 __RichEdit&,500,10,250,150
DrawRichText2 RichEdit&,0,150,800,14900
endprint
waitkey
R_DEINITRTF(RichEdit&,rtf_hdc&,rtf_dll&)'RTF-Aufräumen
R_DEINITRTF(_RichEdit&,rtf_hdc&,rtf_dll&)
R_DEINITRTF(__RichEdit&,rtf_hdc&,rtf_dll&)
R_DeInit_object()'RTF-Aufräumen<
End

Rest en el zip.

394 kB
Hochgeladen:12.10.2010
Ladeanzahl89
Descargar
 
Gruß Thomas
Windows XP SP2, XProfan X2
12.10.2010  
 



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


Uwe
''Pascal''
Niemeier
Hi Thomas!

Also es "RTF en RTF por OLE" für's Ausdrucken ya veces OK?
Und lo scheitert daran, daß el eingebetteten RTFs (el zusammen sí así 'ne Art Briefkopf forma) no bearbeitet voluntad puede, si kein Word disponible es?

Posesiones el con el Drucken veces getestet; allerdings sólo en el MS Imagen Writer, porque Yo actualmente no "echten" Drucker disponible habe. Sieht exakt así de como por Wordpad ausgedruckt. Sollte also brauchbar ser. Siehe Anhang.

Mit el Editar sin Word: Tiempo sehen...

Noch una Wort a el Code al Anfang dieses Hilos: Der wurde ursprünglich entwickelt, en una Bild während des Druckens en una Dokument sin OLE-Unterstützung einzublenden. Darum encontrar se en él verschiedene APIs a Größenanpassung, el para Drucken reiner Dokumente (con OLE) no nötig son (hoffe Yo zumindest).

SeeYou
Pascal

346 kB
Versión:1
Kurzbeschreibung: Drucken RTF
Hochgeladen:15.10.2010
Ladeanzahl71
Descargar
 
15.10.2010  
 



Hola Tomás,

funktioniert el Solución de diesem Hilo [...]  con usted una komplette RTF auszudrucken y hilft Usted esta?
 
12.10.2010  
 




Thomas
Freier
Hola si,

en el Moment no. Manipulationen meinerseits waren erfolglos y qué es con gemeint: "hilft Usted esta?" .
Auch con el Solución de el Hilo bin Todavía no glücklich. En me son después de el Druck el Zeilen zerstückelt.

106 kB
Hochgeladen:12.10.2010
Ladeanzahl79
Descargar
70 kB
Hochgeladen:12.10.2010
Ladeanzahl81
Descargar
 
Gruß Thomas
Windows XP SP2, XProfan X2
12.10.2010  
 



Bild imprimir-ende.jpg zeigt wohl el una a geringe Breite gesetzt es - tambor Será mejor que te va alles así después de links gefercht.

Vlt. debería wir primero el reine normale einfache RTF-Ausdrucken "sauber" y "überall" hinbekommen y darauf aufbauend entonces solche Specials como hier en el Hilo behandeln.

Yo sería sagen zurück a el alten Hilo si el Programa hay no tut qué lo se y luego vlt. darauf aufbauen.

Su obigen Code kann Yo sólo heute Abend correcto ansehen y testen.
 
12.10.2010  
 




Thomas
Freier
Sí, sehe Yo auch así. Diese Umbrüche son aber auch en Texto99.
Merkwürdig aber auch, si la Expediente vorm Druck gespeichert y danach erneut geladen se, bleiben el Veränderungen bestehen son aber así no en el gespeicherten Expediente.
Der Intento el gespeicherte Expediente para Druck en una a diesem Zwecke erstelltes
KompilierenMarcaSeparación
_RichEdit& = R_CREATERICHEDIT(%hwnd,"",0,0,0,0,9000)' Richedit erstellen mit PCU
_rtf_hdc& = R_PREPAREFORLINEBREAK(RichEdit&)' Device Context erzeugen mit PCU
R_Init_object(_RichEdit&)'Zum Bildempfang vorbereitenre>
a legen, endet siempre con Schutzverletzung (RTF.pcu). Tiempo sehen como yo behebe.
 
Gruß Thomas
Windows XP SP2, XProfan X2
12.10.2010  
 



Ok verstehe, auch wenns ego todavía no überschaue. ^ ^
 
12.10.2010  
 



Druckt dieser Code porque wenigstens el erste Página halbwegs korrekt?
KompilierenMarcaSeparación
'{$cleq}
'{$pushkeyword R_*}
 $H Windows.ph
 $H RichEdit.ph
 $U RTFHandling.pcu = R_'RTF-PCU einbinden
 $U objects.pcu = R_

proc DrawRichText2'---------------------------------------------------------DrawRichText2

    parameters RTF&,PosX%,PosY%,MaxX%,MaxY%'--Position + Grösse in Pixeln!
    declare PrinterDpiX%,PrinterDpiY%
    declare WindowDpiX%,WindowDpiY%
    declare fx!,fy!

    if %printing'--Bei Druck: %HDC2 = %HDC = &PDC

        ~SetMapMode(%hdc2,1)
        ~SetWindowExtEx(%hdc2,1,1,0)
        ~SetViewPortExtEx(%hdc2,1,1,0)

    endif

    PrinterDpiX%=~GetDeviceCaps(%hdc2,~LOGPIXELSX)'--dpi X des Druckers
    PrinterDpiY%=~GetDeviceCaps(%hdc2,~LOGPIXELSY)'--dpi X des Druckers
    WindowDpiX%=~GetDeviceCaps(~GetDC(%hwnd),~LOGPIXELSX)'--dpi X des Bildschirms (!)
    WindowDpiY%=~GetDeviceCaps(~GetDC(%hwnd),~LOGPIXELSY)'--dpi Y des Bildschirms (!)
    PosX%=int(PosX%/WindowDpiX%*1440)
    PosY%=int(PosY%/WindowDpiX%*1440)
    MaxX%=int(MaxX%/WindowDpiX%*1440)
    MaxY%=int(MaxY%/WindowDpiX%*1440)
    declare Range#
    dim Range#,48
    clear Range#
    long Range#, 0=%hdc2,%hdc2
    long Range#, 8=PosX%,PosY%,PosX%+MaxX%,PosY%+MaxY%
    long Range#,24=PosX%,PosY%,PosX%+MaxX%,PosY%+MaxY%
    long Range#,44=-1
    sendmessage(RTF&,~EM_FORMATRANGE,1,Range#)

    if %printing

        fx!=~GetDeviceCaps(%hdc2,~LOGPIXELSX)/300
        fy!=~GetDeviceCaps(%hdc2,~LOGPIXELSY)/300
        ~SetMapMode(%hdc2,~MM_ANISOTROPIC)
        ~SetWindowExtEx(%hdc2,6400,9600,0)
        ~SetViewPortExtEx(%hdc2,int(2200*fx!),int(3300*fy!),0)

    endif

    dispose Range#
    casenot %printing:repaint

endproc'---------------------------------------------------------------------------------

window 0,0-%maxx,%maxy
var rtf_dll& =  R_INTITFORCREATERTF()'DLL laden mit PCU
var _RichEdit& = R_CREATERICHEDIT(%hwnd,"",10000,0,350,100,9000)' Richedit erstellen mit PCU
RTF("LoadRTF",_RichEdit&,"Bootsplatz.rtf")
var __RichEdit& = R_CREATERICHEDIT(%hwnd,"",10000,0,280,100,9000)' Richedit erstellen mit PCU
RTF("LoadRTF",__RichEdit&,"Label 105x42.rtf")
var RichEdit& = R_CREATERICHEDIT(%hwnd,"",10000,102,800,400,9000)' Richedit erstellen mit PCU
var rtf_hdc& = R_PREPAREFORLINEBREAK(RichEdit&)' Device Context erzeugen mit PCU
R_Init_object(RichEdit&)'Zum Bildempfang vorbereiten
RTF("LoadRTF",RichEdit&,"Bilder-Album.rtf")
startprint "*xx"
DrawRichText2 _RichEdit&,70,0,350,100
DrawRichText2 __RichEdit&,480,0,280,100
DrawRichText2 RichEdit&,70,100,640,960
endprint
waitinput
external("kernel32","ExitProcess",0)
R_DEINITRTF(RichEdit&,rtf_hdc&,rtf_dll&)'RTF-Aufräumen
R_DEINITRTF(_RichEdit&,rtf_hdc&,rtf_dll&)
R_DEINITRTF(__RichEdit&,rtf_hdc&,rtf_dll&)
R_DeInit_object()'RTF-Aufräumen
> End

123 kB
Hochgeladen:12.10.2010
Ladeanzahl142
Descargar
 
12.10.2010  
 




Thomas
Freier
Sí, una A4 Página.
 
Gruß Thomas
Windows XP SP2, XProfan X2
13.10.2010  
 



Juhu genau, also klappt doch schonmal 3 RTFs...

restos sólo übrig de el Bilder-RTF de 2. Página a drucken?!
 
13.10.2010  
 




Thomas
Freier
Sí genau.
 
Gruß Thomas
Windows XP SP2, XProfan X2
13.10.2010  
 



Auch otra vez con el 2 RTF's en el Kopf oder de 2. Página sin?
 
13.10.2010  
 




Thomas
Freier
Folgeseiten sin 1. y 2. RTF.
Hintergrund es, si MS Word en el Sistema es, kann mann weitere RTFs en el Haupt-RTF einbetten y ellos auch bearbeiten y luego auch alles drucken. Im otro Fall müßte Yo el drei RTFs getrennt drucken sin, dass después de Druck el 1. y 2. RTF una Seitenvorschub es.
 
Gruß Thomas
Windows XP SP2, XProfan X2
13.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

10.350 Views

Untitledvor 0 min.
Sven Bader18.11.2023
Alibre03.01.2020
kustg14.05.2019
GDL04.01.2016
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