Forum | | | | - 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? |
| | | | |
| | « 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 |
| | | | | |
| | | et chez mir (win7) erscheinen qui Bilder seulement garnicht:
. |
| | | | |
| | 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. |
| | | | |
| | | 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? |
| | | | |
| | 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. |
| | | | |
| | | Irgendwas hab je Schonmal trouvé [...] ^ ^ |
| | | | |
| | 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 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 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. |
| | | | |
| | | et si Du la fois PrinterDC aussi pro Schleifendurchgang récente erzeugst?
Nachtrag: plutôt Quatsch là PrinterDC& = Long(PrintDLG#,16) |
| | | | |
| | | je glaub je hab quoi, muss encore verifizzeln... |
| | | | |
| | | Trotz absolutem chaos-Müll tue je Dir cela à weil cela chez mir alle Seiten druckt jusqu'à zum Ende: |
| | | | |
| | 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. |
| | | | |
| | |
| | | | |
|
répondreOptions du sujet | 17.066 Views |
Themeninformationencet Thema hat 3 participant: |