Français
Forum

trois RTF ausdrucken

 
- page 1 -



Thomas
Freier
Alle Eigenversuche schlugen fehl. Hat einer une Vorschlag, comment deux RTFs fester Taille et une Dritte beliebig long ausgedruckt volonté peut.
Analog eines Beispiel de Uwe 'Pascal' wird ici seulement une page gedruckt. mais comment geht's plus?
KompilierenMarqueSéparation
 $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<
Fin

reste dans qui zip.

394 kB
Hochgeladen:12.10.2010
Downloadcounter89
Download
 
Gruß Thomas
Windows XP SP2, XProfan X2
12.10.2010  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »


Uwe
''Pascal''
Niemeier
Hi Thomas!

alors ist "RTF dans RTF per OLE" für's Ausdrucken déjà la fois OK?
et es scheitert daran, qui qui eingebetteten RTFs (qui zusammen oui so 'ne Art Briefkopf bilden) pas bearbeitet volonté peut, si ne...aucune Word vorhanden ist?

Habe cela avec dem Drucken la fois getestet; allerdings seulement im MS Image Writer, weil je momentan keinen "echten" Drucker zur Disposition habe. Sieht exakt so aus comment per Wordpad ausgedruckt. Sollte alors brauchbar son. Siehe Anhang.

avec dem Travailler sans Word: la fois voyons...

encore un mot trop dem Code am Anfang cet Threads: qui wurde ursprünglich entwickelt, um un Bild au cours de des Druckens dans un Dokument sans OLE-Unterstützung einzublenden. tout autor trouver sich y verschiedene APIs zur Größenanpassung, qui zum Drucken reiner Dokumente (avec OLE) pas nötig sommes (hoffe je zumindest).

SeeYou
Pascal

346 kB
Version:1
Kurzbeschreibung: Drucken RTF
Hochgeladen:15.10.2010
Downloadcounter71
Download
 
15.10.2010  
 



allô Thomas,

funktioniert qui Solution aus diesem Fil [...]  chez Dir um une komplette RTF auszudrucken et hilft Dir cet?
 
12.10.2010  
 




Thomas
Freier
allô iF,

im Moment pas. Manipulationen meinerseits étions erfolglos et quoi ist avec gemeint: "hilft Dir cet?" .
aussi avec qui Solution aus dem Fil suis je encore pas glücklich. chez mir sommes pour dem Druck qui Zeilen zerstückelt.

106 kB
Hochgeladen:12.10.2010
Downloadcounter79
Download
70 kB
Hochgeladen:12.10.2010
Downloadcounter81
Download
 
Gruß Thomas
Windows XP SP2, XProfan X2
12.10.2010  
 



Bild imprimer-ende.jpg zeigt wohl cela une trop geringe Breite gesetzt ist - tambour wirds alles so à gauche gefercht.

Vlt. devrait wir erstmal cela reine normale simple RTF-Ausdrucken "sauber" et "überall" hinbekommen et puis aufbauend ensuite solche Specials comment ici im Fil behandeln.

je serait dire zurück trop dem alten Fil si cela Programme là pas tut quoi es soll et ensuite vlt. puis aufbauen.

Deinen obigen Code peux je mir seulement aujourd'hui soir richtig regarder et testen.
 
12.10.2010  
 




Thomas
Freier
oui, vois je aussi so. cet Umbrüche sommes mais aussi chez qui Text99.
Merkwürdig mais aussi, si le Dossier vorm Druck gespeichert et après erneut geladen wird, rester qui Veränderungen bestehen sommes mais so pas dans qui gespeicherten Dossier.
qui Versuch qui gespeicherte Dossier zum Druck dans un trop diesem Zwecke erstelltes
KompilierenMarqueSéparation
_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>
trop poser, endet toujours avec Schutzverletzung (RTF.pcu). la fois voyons comment je cela behebe.
 
Gruß Thomas
Windows XP SP2, XProfan X2
12.10.2010  
 



Ok verstehe, aussi wenns ego encore pas überschaue. ^ ^
 
12.10.2010  
 



Druckt cette Code car wenigstens la première page halbwegs korrekt?
KompilierenMarqueSéparation
'{$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
> Fin

123 kB
Hochgeladen:12.10.2010
Downloadcounter142
Download
 
12.10.2010  
 




Thomas
Freier
oui, une A4 page.
 
Gruß Thomas
Windows XP SP2, XProfan X2
13.10.2010  
 



Juhu oui c'est ca, alors klappt doch Schonmal 3 RTFs...

bleibt seulement übrig de qui Bilder-RTF ab 2. page trop drucken?!
 
13.10.2010  
 




Thomas
Freier
oui oui c'est ca.
 
Gruß Thomas
Windows XP SP2, XProfan X2
13.10.2010  
 



aussi wieder avec den 2 RTF's im tête ou bien ab 2. page sans?
 
13.10.2010  
 




Thomas
Freier
Folgeseiten sans 1. et 2. RTF.
Hintergrund ist, si MS Word sur dem System ist, peux homme weitere RTFs dans qui tête-RTF einbetten et vous aussi Travailler et ensuite aussi alles drucken. Im anderen le cas devrait je qui trois RTFs getrennt drucken sans, dass pour Druck qui 1. et 2. RTF un Seitenvorschub erfolgt.
 
Gruß Thomas
Windows XP SP2, XProfan X2
13.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

10.343 Views

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