Zbog USB stampaca htio bih da ASCII tekst prebacim u RTF pa onda sa naredbom WORDPAD mojfajl.rtf /p odstampam. Nasao sam jedan program ali mi on ne prebacue u novi red. Ovako ide:
#DEFINE CRLF chr(13)+chr(10)
* Prevod TXT souboru (sestavy) do RTFformatu
* kompatibilni Fox2x, VFPx
FUNCTION Txt2Rtf //(pcInputFile, pcOutputFile, pcFontName,pnFontSize)
Parameters pcInputFile, pcOutputFile, pcFontName, pnFontSize
//* pcInputFile vstupni textovy soubor
//* pcOutputFile vystupni RTF soubor
//* pcFontName jmeno fontu (nepovinne), default Courier New
//* pnFontSize velikost fontu (nepovinne), default 16 bodu, tj. velikost 8
//private all like x*
IF .not.file(pcInputFile)
RETURN '01 file not found: '+pcInputFile
ENDIF
xnHI=FOPen(pcInputFile, 0)
IF xnHI < 1
RETURN '02 file open failed: '+pcInputFile
ENDIF
FSeek(xnHI, 0, 0) && go top
IF FEof(xnHI)
RETURN '03 file is empty: '+pcInputFile
ENDIF
xnHO=FCreate(pcOutputFile, 0)
IF xnHO < 1
RETURN '11 file create failed: '+pcOutputFile
ENDIF
xcReturn=''
//xcRTFh0="{\rtf1\ansi\ansicpg1250\deff0\deflang1029 {\fonttbl{\f0\fmodern\fprq1\fcharset0"
xcRTFh0="{\rtf1\ansi\HTH\deff0\deflang1029 {\fonttbl{\f0\fmodern\fprq1\fcharset0"
xcRTFfn=iif(empty(pcFontName), 'Courier New', pcFontName)
xcRTFh1=";}}\viewkind4\uc1\pard\lang1033\f0\fs"
xcRTFfs=iif(empty(pnFontSize), '14', Alltrim(str(pnFontSize)) )
xcRTFh2=' '
xcRTFnL='\par'
xcRTFfoot='\lang1029\f1\par}'
xnWrote=FWrite(xnHO, xcRTFh0+xcRTFfn+xcRTFh1+xcRTFfs+xcRTFh2)
IF xnWrote < 1
RETURN '12 file write failed: '+pcOutputFile
ENDIF
//prepis jednotlivych radku, CRLF nahrazeno xcRTFnL
DO WHILE .not.FEof(xnHI)
xcLine=StrTran(FGets(xnHI, 32767), '\', '\\')+xcRTFnL
xnWrote=FWrite(xnHO, xcLine)
IF xnWrote < 1
xcReturn='13 file write failed: '+pcOutputFile
exit
ENDIF
ENDDO
// zapis ukonceni RTF souboru
xnWrote=FWrite(xnHO, xcRTFfoot)
IF xnWrote < 1
xcReturn='14 file write failed: '+pcOutputFile
ENDIF
FClose(xnHO)
FClose(xnHI)
RETURN xcReturn
Gdje je greska?
#DEFINE CRLF chr(13)+chr(10)
* Prevod TXT souboru (sestavy) do RTFformatu
* kompatibilni Fox2x, VFPx
FUNCTION Txt2Rtf //(pcInputFile, pcOutputFile, pcFontName,pnFontSize)
Parameters pcInputFile, pcOutputFile, pcFontName, pnFontSize
//* pcInputFile vstupni textovy soubor
//* pcOutputFile vystupni RTF soubor
//* pcFontName jmeno fontu (nepovinne), default Courier New
//* pnFontSize velikost fontu (nepovinne), default 16 bodu, tj. velikost 8
//private all like x*
IF .not.file(pcInputFile)
RETURN '01 file not found: '+pcInputFile
ENDIF
xnHI=FOPen(pcInputFile, 0)
IF xnHI < 1
RETURN '02 file open failed: '+pcInputFile
ENDIF
FSeek(xnHI, 0, 0) && go top
IF FEof(xnHI)
RETURN '03 file is empty: '+pcInputFile
ENDIF
xnHO=FCreate(pcOutputFile, 0)
IF xnHO < 1
RETURN '11 file create failed: '+pcOutputFile
ENDIF
xcReturn=''
//xcRTFh0="{\rtf1\ansi\ansicpg1250\deff0\deflang1029 {\fonttbl{\f0\fmodern\fprq1\fcharset0"
xcRTFh0="{\rtf1\ansi\HTH\deff0\deflang1029 {\fonttbl{\f0\fmodern\fprq1\fcharset0"
xcRTFfn=iif(empty(pcFontName), 'Courier New', pcFontName)
xcRTFh1=";}}\viewkind4\uc1\pard\lang1033\f0\fs"
xcRTFfs=iif(empty(pnFontSize), '14', Alltrim(str(pnFontSize)) )
xcRTFh2=' '
xcRTFnL='\par'
xcRTFfoot='\lang1029\f1\par}'
xnWrote=FWrite(xnHO, xcRTFh0+xcRTFfn+xcRTFh1+xcRTFfs+xcRTFh2)
IF xnWrote < 1
RETURN '12 file write failed: '+pcOutputFile
ENDIF
//prepis jednotlivych radku, CRLF nahrazeno xcRTFnL
DO WHILE .not.FEof(xnHI)
xcLine=StrTran(FGets(xnHI, 32767), '\', '\\')+xcRTFnL
xnWrote=FWrite(xnHO, xcLine)
IF xnWrote < 1
xcReturn='13 file write failed: '+pcOutputFile
exit
ENDIF
ENDDO
// zapis ukonceni RTF souboru
xnWrote=FWrite(xnHO, xcRTFfoot)
IF xnWrote < 1
xcReturn='14 file write failed: '+pcOutputFile
ENDIF
FClose(xnHO)
FClose(xnHI)
RETURN xcReturn
Gdje je greska?