Dear All,

I would like to convert my DOS txt file into pdf with reportlab.
The file can be seen correctly in Central European (DOS) encoding in 
Explorer.

My winxp uses cp852 as default codepage.

When I open the txt file in notepad and set OEM/DOS script for terminal 
fonts, it shows the file correctly.

I tried to convert the file with the next way:

from reportlab.platypus import *
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.rl_config import defaultPageSize
PAGE_HEIGHT=defaultPageSize[1]

styles = getSampleStyleSheet()

def MakePdfInvoice(InvoiceNum, page):
    style = styles["Normal"]
    PdfInv = [Spacer(0,0)]
    PdfInv.append(Preformatted(page, styles['Normal']))
    doc = SimpleDocTemplate(InvoiceNum)
    doc.build(PdfInv)

if __name__ == '__main__':
    content = open('invoice01_0707.txt').readlines()
    page = ''.join(content[:92])
    page = unicode(page, 'Latin-1')
    MakePdfInvoice('test.pdf', page)

But it made funny chars somewhere.

I tried it so eighter

if __name__ == '__main__':
    content = open('invoice01_0707.txt').readlines()
    page = ''.join(content[:92])
    page = page.encode('cp852')
    MakePdfInvoice('test.pdf', page)

But it raised exception:
    debugger.run(codeObject, __main__.__dict__, start_stepping=0)
  File 
"C:\Python24\Lib\site-packages\pythonwin\pywin\debugger\__init__.py", line 
60, in run
    _GetCurrentDebugger().run(cmd, globals,locals, start_stepping)
  File 
"C:\Python24\Lib\site-packages\pythonwin\pywin\debugger\debugger.py", line 
631, in run
    exec cmd in globals, locals
  File "D:\devel\reportlab\MakePdfInvoice.py", line 18, in ?
    page = page.encode('cp852')
  File "c:\Python24\lib\encodings\cp852.py", line 18, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb5 in position 112: 
ordinal not in range(128)
>>> 

May someone point me where I made it wrong ?

Best regards,
Janos Juhasz
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to