Konu: Nokta vuruşlu yazıcı da Türkçe karekter
Selamlar;
Aşağıdaki kod ile türkçe karekterlerde sorun yaşıyorum. nasıl çözebilirim.
Sanırım sorun yazıcıya göndermede değil. txt dosyasının windows formatında olmasından kaynaklanıyor.
Oluşan dosyayı winword ile açtığımda MD-DOS mod ile açarsam normal görünüyor.
XFRX ile veya başka bir yöntemle frx dosyamı türkçe ve msdos formatına nasıl getirebilirim.
Local loObj, tcExportName,Lctip
If Directory("rfiles")
tcExportName="Rfiles\"+Sys(3)
Lctip="PLAIN"
If !Empty(tcExportName)
tcExportName=tcExportName+"."+m.Lctip
Endif
loObj = Evaluate([XFRX("XFRX#LISTENER")])
lnRetVal = loObj.SetParams(m.tcExportName,,.T.,,,,m.Lctip)
If lnRetVal = 0
Report Form reports\fatura.frx Object loObj Nopageeject
Else
Messagebox("Hata Kodu:"+Alltrim(Str(lnRetVal)))
Endif
loObj.finalize()
loObj = .Null.
Else
Wait Window "Rfiles klasörü açınız."
Endif
Frxtolpt1(m.tcExportName,"Lpt1")
Function Frxtolpt1
Lparameters xfile,xport
If Empty(xfile) Or Empty(xport)
Return
Endif
*!* Example usage:
* download id 9957
**xfile="c:\test.txt"
**xport='MM'
Set Proc To progs\dirprtclass.prg Additive
Set Proc To progs\clsheap.prg Additive
Local xstr
xstr=Filetostr(m.xfile)
*!* * Note - CLSHeap.PRG needs to be in your SET PROC list, or part of your project
oDirPrt = Createobj('DirectPrintOutput')
With oDirPrt
.PrinterOpen(m.xport) && Arg can be a Win Printer name, port, or a print queue - works with both MSNetwork
*!* && and NetWare queues. It also works with CAPTUREd or NET USEd printer ports
If .PrinterIsOpen()
.DocOpen('KalemSpool')
.DocWrite(m.xstr)
.SpoolFile('KalemSpoolFile.TMP', .T.) && Spool file and delete after printed
.DocClose()
.PrinterClose() && close both current job and the printer
Wait Window 'Yazıcı Yazdırılıyor...' Nowa
Else
Wait Window 'Yazıcı Problemi...' Nowa
Endif
Endwith
Endfunc