Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 19 odgovora
  • 7.381 pregleda

Najnovija ↓

ASCII u RTF u clipper-u 15.02.2006. u 23:10 · pre 252 meseca #1
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?
Re: ASCII u RTF u clipper-u 16.02.2006. u 08:35 · pre 252 meseca
izmenjeno 1 put, poslednji put damiru_2 16.02.2006. u 08:36
  1. damiru_216.02.2006. u 08:36zapis iz teksta poruke
#2
Ima tu malo "šminke"...
====================
//Pokusaj da stavis samo jedan od ova dva pa prekompajliraj program
//#DEFINE CRLF chr(10)
///ili
//#DEFINE CRLF chr(13)
#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*

//Ako se radi sa promenljivima iz Command Prompt-a,
//trebalo bi dodati deo koda... Zlu ne trebalo. :)
IF EMPTY(pcInputFile) .OR. EMPTY(pcOutputFile)
RETU 'Name the input and/or output file.'
ENDIF

//Pa tek onda
IF .NOT. FILE(pcInputFile)
RETU '01 file not found: '+pcInputFile
ENDIF

xnHI=FOPen(pcInputFile, 0)

//Zar ne treba da stoji
//IF xnHI == -1
//jer FOpen vraca error code -1 u slucaju neke greske.
IF xnHI < 1
RETU '02 file open failed: '+pcInputFile
ENDIF

FSeek(xnHI, 0, 0) && go top

//Ovo je verovatno korisnicki definisana funkcija,
//u Clipper-u ne postoji kao takva, bar koliko je meni poznato
//IF FEof(xnHI)
//Postoji EOF(), ali za tabelu podataka (.DBF i slicne)
IF FEof(xnHI)
//Dalje nisam mogao da nastavim, jer debugger ovde prekida program
RETU '03 file is empty: '+pcInputFile
ENDIF

xnHO=FCreate(pcOutputFile, 0)

// IF xnHO == -1
IF xnHO < 1
RETU '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
IF xnWrote < 1
RETU '12 file write failed: '+pcOutputFile
ENDIF

//prepis jednotlivych radku, CRLF nahrazeno xcRTFnL
DO WHIL .NOT. FEof(xnHI)
xcLine=StrTran(FGets(xnHI, 32767), '\', '\\')+xcRTFnL
xnWrote=FWrite(xnHO, xcLine)

//IF xnWrote == -1
IF xnWrote < 1
xcReturn='13 file write failed: '+pcOutputFile
exit
ENDIF
END

// zapis ukonceni RTF souboru
xnWrote=FWrite(xnHO, xcRTFfoot)

//IF xnWrote == -1
IF xnWrote < 1
xcReturn='14 file write failed: '+pcOutputFile
ENDIF
FClose(xnHO)
FClose(xnHI)
RETU xcReturn
====================
Potpis
- Je s' ti normalan? Ko bre da se skida go?
- Ja ću da se skinem do pojasa...
Re: ASCII u RTF u clipper-u 16.02.2006. u 16:49 · pre 252 meseca #3
RTF nije bas jednostavan format, pretpostavljam da si samo nasao kod i probao. Opis tog format ces naci ovde http://www.wotsit.org/
Potpis
Pomozite Micro$oftu u borbi protiv piraterije, poklonite prijatelju Linux
Re: ASCII u RTF u clipper-u 16.02.2006. u 19:02 · pre 252 meseca #4
Program radi, ali ne prebacuje u novi red, FSeek nisam ni ja nasao ni u clipper-u ni u drugim lib ali mi ne javlja nikakvu gresku. CRLF koliko vidim se ne koristi nigdje u programu, a definisan je? Ono sto se tice da li je file otvoren itd. nije osnovni problem, bez toga moze, samo da mi prebaci u novi red.
Re: ASCII u RTF u clipper-u 17.02.2006. u 14:35 · pre 252 meseca #5
Gde ti se u stvari ne vidi novi red? Ono xcRTFnL='\par' ti je oznaka za novi red u rtf dokumentu.
Potpis
Pomozite Micro$oftu u borbi protiv piraterije, poklonite prijatelju Linux
Re: ASCII u RTF u clipper-u 22.02.2006. u 17:03 · pre 251 mesec #8
Pa, ako ti nije teško... :)
Hvala unapred.
Potpis
- Je s' ti normalan? Ko bre da se skida go?
- Ja ću da se skinem do pojasa...
Re: ASCII u RTF u clipper-u 22.02.2006. u 23:28 · pre 251 mesec #9
#DEFINE CRLF chr(13)+chr(10)

* Prevod TXT souboru (sestavy) do RTFformatu


FUNCTION Txt2Rtf (pcInputFile, pcOutputFile, pcFontName,pnFontSize)

//* pcInputFile vstupni textovy soubor
//* pcOutputFile vystupni RTF soubor
//* pcFontName jmeno fontu (nepovinne), default Courier New
//* pnFontSize velikost fontu (nepovinne), default 20 bodu, tj. velikost 10


IF .not.file(pcInputFile)
RETURN '01 file not found: '+pcInputFile

ENDIF
xnHI=FOPen(pcInputFile, 0)
IF xnHI < 1
RETURN '02 Greska pri otvaranju '+pcInputFile
ENDIF
FSeek(xnHI, 0, 0) && go top
IF FEof(xnHI)
RETURN '03 Datoteka '+pcInputFile+' je prazna'
ENDIF

xnHO=FCreate(pcOutputFile, 0)
IF xnHO < 1
RETURN '11 Greska pri kreiranju: '+pcOutputFile
ENDIF
xcReturn=''

xcRTFh0="{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fcharset0"

xcRTFfn=iif(empty(pcFontName), 'Courier New', pcFontName)
xcRTFh1=";}}\viewkind4\uc1\pard\f0\fs"
xcRTFfs=iif(empty(pnFontSize), '20', Alltrim(str(pnFontSize)) )
xcRTFh2=' '

xcRTFnL='\par '

xcRTFfoot='\lang1029\f1\par}'

xnWrote=FWrite(xnHO, xcRTFh0+xcRTFfn+xcRTFh1+xcRTFfs+xcRTFh2)
IF xnWrote < 1
RETURN '12 Greska u upisu: '+pcOutputFile
ENDIF
line:=' '
//prepis jednotlivych radku, CRLF nahrazeno xcRTFnL
do while freadln(xnHI,@line,2048)
line=strTran(line,CRLF,xcrtfnl)
xnWrote=FWrite(xnHO, Line)
enddo
line=strTran(line,CRLF,xcrtfnl)
xnWrote=FWrite(xnHO, Line)
// zapis ukonceni RTF souboru
xnWrote=FWrite(xnHO, xcRTFfoot)
IF xnWrote < 1
xcReturn='14 Greska u upisu: '+pcOutputFile
ENDIF
FClose(xnHO)
FClose(xnHI)
RETURN xcReturn

function freadln(handle,buffer,max_line)
local ch:=' ', line_size:=0, num_read, save_pos
buffer:=' '
num_read=fread(handle,@ch,1)
do while num_read=1 .and. ch!=CRLF .and. line_size<>max_line
buffer+=ch
line_size++
num_read=fread(handle,@ch,1)
enddo
if ch=CRLF
num_read=fread(handle,@ch,1)
endif
return num_read <>0

//Poziva se
// txt2rtf("zd03.prn","nf10.rtf",,18)
// RUN ("wordpad.exe nf10.rtf /p") - za WinXP
// RUN("start /m wordpad.exe nt10.rtf /p) - za Win ME, 98
Re: ASCII u RTF u clipper-u 19.08.2006. u 20:28 · pre 245 meseci #10
Nije mi jasno zasto komplikujes. Na USB stampacima mozes stampati tako sto se izlaz sa LPT porta preusmeri sa DOSprn programom (ili nekim slicnim). To je super resenje jer tako mozes da stampas i na PDF stampace. Takodje u programu ne moras da menjas NISTA (ili skoro nista). Bitno je da broj redi na stampi sada nije vise 72 vec oko 64. Broj redi se naravno moze promeniti tako sto podesavas parametre Fonta u DOSprn. Uostalom ako ti nesto ne bude jasno slobodno pitaj.
Potpis
Baluban S.
Re: ASCII u RTF u clipper-u 21.08.2006. u 15:18 · pre 245 meseci #11
@Baluban_S mozes li opisati kako ti to radis? To sto pises lepo zvuci ali koji prtogram koristis i koje kontrolne sekvence prepoznaje? Kako menjas velicinu fonta i slicna formatiranja?
Potpis
Pomozite Micro$oftu u borbi protiv piraterije, poklonite prijatelju Linux
Re: ASCII u RTF u clipper-u 22.08.2006. u 00:09 · pre 245 meseci #12
Sto se tice DOSprn ja ga koristim vec nekoliko godina za stampanje na USB stampace iz DOS programa u ZIM-u. U programu nisam promenio ni jedan red zbog DOSprn jer sam vec ranije imao podesavanje broja redi za svakog korisnika posebno. U DOSprn moras podesiti pre svega Font sa fiksnom sirinom slova (Courier New), CP na prim.852 (podrzava 10-tak), zatim Size, CPI i LPI za velicinu Fonta, razmak medju redovima i izmedju znakova u redu. Od toga zavisi koliko ce stati znakova u 1 red i koliko ce redi biti na A4 papiru. Ja podesavam te parametre na Size 12, CPI 10 i LPI 6. Tako dobijem u Condenz ispisu 130 znakova a u normal 80 znakova i 63 do 64 reda na A4 papiru. To kad podesis normalno ukljucujes Condens, Bold, Normal i slicno kao na bilo kojem Epsonu (LX-300,LQ570...) ili HP Laseru sa PCL (na primer HP 5L,6L,1320...). Takodje mozes papir podesiti u Portrait i Landscape. Emulacija radi za EPSON ESC P2 ili LASER HP PCL pa ti izaberi sta ti odgovara. Program jednom podesis i zaboravis. On dalje sve sto iz DOS-a posaljes na LPT1: preusmerava na bilo koji stampac koji izaberes tj nemora biti USB vec i bilo koji drugi stampac u mrezi koji izaberes. Ukoliko te program zanima mogu ti ga poslati na meil pa ga isprobaj.

Stevan
[email protected]
Potpis
Baluban S.
Re: ASCII u RTF u clipper-u 22.08.2006. u 11:11 · pre 245 meseci #13
Mozda bolje da ga negde okacis jer je interesantan i drugima

Da li si probao i sa win stampacima, tj onima koji ne prepoznaju esc i pcl kodove? Konkretno, da li recimo radi u varijanti sa ink jet stampacima?

Hvala na odgovoru
Potpis
Pomozite Micro$oftu u borbi protiv piraterije, poklonite prijatelju Linux
Re: ASCII u RTF u clipper-u 22.08.2006. u 22:16 · pre 245 meseci #14
Program DOSprn radi sa svim stampacima bez obzira da li imaju Epson ESC P2 ili HP PCL kodove. Dakle i Laseri i Ink Jet stampaci. Ono sto se salje na LPT1 port se pretvara u SLOKU koju mozes odstampati na bilo kojem stampacu sa USB ili Paralelnim portom i na PDF printeru. Cesto mi se desavalo da iskoristim DOSprn samo zbog toga sto neki stampac nema u sebi 852 CP (ili ja ne znam da ga ukljucim) a ima Paralelni port. Ja ne znam kako da okacim neki fajl direktno na Forum i da li to uopste moze. Mogu onima koji su zainteresovani DOSprn zajedno sa nekim primerom poslati meilom. Inace imate ga na internetu na WWW.DOSprn.com.
Trenutno je aktuelna verzija 1.79. Ja inace koristim verziju 1.74 koja isto dobro radi.
Ako ima pitanja u vezi DOSprn posaljite meil ili privatnu poruku da ne gnjavimo ostale koji mozda nisu za to zainteresovani.
Potpis
Baluban S.
Re: ASCII u RTF u clipper-u 23.08.2006. u 10:06 · pre 245 meseci #15
Pored DOSPrn može biti interesantan i Printing, radi na nešto drugačijem principu od DOSPrna ali nudi više opcija, poput previewa, slanja na mejl, eksporta u MS Office i Open Office... Adresa je http://www.wings.co.yu/download/wingsprinting.zip.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: ASCII u RTF u clipper-u 23.08.2006. u 23:48 · pre 245 meseci #16
Da Printing je dosta dobar, ali trazi komande za upravljanje stampom u obliku:
<F11.50> za 80 znakova u redu
<F07.10> za 143 znakova u redu
<F-9.60> za 96 znakova u redu
Naravno prima i bilo koju drugi velicinu fonta.
To stvarno nije problem ako pises program ispocetka. Ja u programu vec imam oko 700 izvestaja koji su napisani sa duplim komandama svaki izvestaj (ESC P2 i HP PCL) tako da mi je DOSprn bio brze resenje jer nista nisam morao da menjam u programu. Zvao sam ljude koji su napravili Printing i oni su bili zainteresovani i da u svom programu dodaju podrsku i za Epson i HP komande. Da li su to uradili ne znam.



Potpis
Baluban S.
Re: ASCII u RTF u clipper-u 14.09.2006. u 14:45 · pre 245 meseci #17
Ovaj kod ima smisla. Isprobao sam i sve radi. Ono sto je potreba kod ispisa u RTF jeste da se definise margine i orijentacija ispisa (portrait/landscape).
To nisam uspio, mozes li mi pomoci. (Probao sam na onaj pocetni string dodati '/landscape' ali ne pali).

Unaprijed zahvaljujem, Pero.
Re: ASCII u RTF u clipper-u 13.03.2008. u 12:48 · pre 226 meseci #19
vezano za DOSprn, kupio sam program ali i dalje imam problema sa slovima čćšžđ...
Postavke su sve kako treba biti (852, arial fotn itd) i pravilno mi ga prikazuje u preview prozou
ESC kod sam postavio za printer koji koristim a to je HP...

U čemu griješim
Re: ASCII u RTF u clipper-u 13.03.2008. u 18:55 · pre 226 meseci #20
Koristi Font CourierNew ili Lucida Console jer oni u standardnom WIN imaju fiksnu sirinu slova sto je veoma birno za programe koji su napravljeni da iz DOS-a stampaju na Epson ili HP Lasere. U DOSprn podesi CP 852. Ako je tekst koji saljes na ispis u nekom drugom kodnom rasporedu na primer YUSCII moras ga u letu konvertovati u CP 852. To mozes uraditi sa UYU ili nekim drugim slicnim programom stim da tekst za stampanje mora biti u fajlu a UYU ga ocas konvertuje u 852 pa ga zatim posaljes na stampu sa COPY stampa.txt LPT1: direktno iz programa. Nije uopste bitno koji je printer. Na svakom ce YU slova raditi jer stampac dobija stampu u grafickom modu. Mozes stampati i na neki PDF program na primer PDFRedirect ili PrimoPDF sve sa YU slovima, a preview gledati u Acrobat-u ili Foxit Reader-u koji je brzi. Ako imas jos koje pitanje za DOSprn pitaj. Ja ga koristim odavno i savrseno radi.
Potpis
Baluban S.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme