From: Bruce on 15 Jul 2010 03:45 I'm trying to create a word doc using win32com. I don't get the same whitespace as when printing the same stuff in the dos window. At the terminal I manage to line up the second column like apples 5 pears 7 I do this by adding whitespace characters to the strings in the first column so that their length is equal to that of the longest string in the first column. I print the excact same string to word. but in the word doc somehting happens that messes things up like this : apples 5 pears 7 Needless to say, this is extremely frustrating. But why does it happen, and how can I align the column in word?
From: Tim Golden on 15 Jul 2010 03:59 On 15/07/2010 08:45, Bruce wrote: > I'm trying to create a word doc using win32com. I don't get the same > whitespace as when printing the same stuff in the dos window. At the > terminal I manage to line up the second column like > > apples 5 > pears 7 > > I do this by adding whitespace characters to the strings in the first > column so that their length is equal to that of the longest string in > the first column. > > I print the excact same string to word. but in the word doc somehting > happens that messes things up like this : > > apples 5 > pears 7 > > Needless to say, this is extremely frustrating. But why does it > happen, and how can I align the column in word? Couple of things which will help us to help you: 1) Consider what's going on *without* Python: if you take the exact same text and spaces and type it into a Word document, does the same thing happen? If so, then there is something of a gap in your understanding of how Word arranges spaces, especially with proportional fonts. 2) If the text looks fine when you type it in but dodgy when programmed in from Python, post the code here. If there's an issue with the way your code is doing what its' doing, we need to see the code to work that out. (Usually). If you want things to line up in columns in Word, you probably want to do one of two things (possibly both): use a fixed-width font, eg Courier New; use Word tables. If you go the latter route, it can sometimes be easier to generate the equivalent HTML and then ask Word to open it directly. Depends. TJG
From: Bruce on 15 Jul 2010 04:06 On Jul 15, 9:59 am, Tim Golden <m...(a)timgolden.me.uk> wrote: > On 15/07/2010 08:45, Bruce wrote: > > > > > > > I'm trying to create a word doc using win32com. I don't get the same > > whitespace as when printing the same stuff in the dos window. At the > > terminal I manage to line up the second column like > > > apples 5 > > pears 7 > > > I do this by adding whitespace characters to the strings in the first > > column so that their length is equal to that of the longest string in > > the first column. > > > I print the excact same string to word. but in the word doc somehting > > happens that messes things up like this : > > > apples 5 > > pears 7 > > > Needless to say, this is extremely frustrating. But why does it > > happen, and how can I align the column in word? > > Couple of things which will help us to help you: > > 1) Consider what's going on *without* Python: if you take the exact > same text and spaces and type it into a Word document, does the same > thing happen? Yes. Now using courier new. Thanks.
From: Grant Edwards on 15 Jul 2010 10:10 On 2010-07-15, Bruce <epost2(a)gmail.com> wrote: > I'm trying to create a word doc using win32com. Unfortunately the phrase "word doc" is meaningless. Exactly what format file are you trying to generate? For example: Word97 "doc" or the new "docx" format? > I don't get the same whitespace as when printing the same stuff in > the dos window. At the terminal I manage to line up the second column > like > > apples 5 > pears 7 > > I do this by adding whitespace characters to the strings in the first > column so that their length is equal to that of the longest string in > the first column. Are you just generating an ASCII text file and then opening it in word? > I print the excact same string to word. but in the word doc somehting > happens that messes things up like this : > > apples 5 > pears 7 > > Needless to say, this is extremely frustrating. But why does it > happen, and how can I align the column in word? Why? Because word is using a viable-spaced font and the "dos window" uses a fixed-width font. If you want any control over the appearance of the document, you'll have to either force word to open the file in a fixed-width font, or you'll have to generate a file that contains formatting information. What you appear to want is a table. Generating RTF has worked well for me in the past: http://code.google.com/p/pyrtf-ng/ http://pyrtf.sourceforge.net/ An enahanced version of pyRTF that supports EMF graphics and scaling of graphics is available here: http://www.panix.com/~grante/files/python/PyRTF-0.46.tar.gz If you want to generate graphics, this might be worth a look http://pyemf.sourceforge.net/ You might also be able to generate HTML and then open that file using Word. -- Grant Edwards grant.b.edwards Yow! The Osmonds! You are at all Osmonds!! Throwing up gmail.com on a freeway at dawn!!!
|
Pages: 1 Prev: Splitting numeric litterals Next: insufficient memory problem in running .exe file in ipython |