whitespace in a word doc

B

Bruce

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?
 
T

Tim Golden

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
 
B

Bruce

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.
 
G

Grant Edwards

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.
 
D

Dennis Lee Bieber

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.
Or something with defined tab stops, and use a tab instead of
counting spaces.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top