Can't set font size and rtl
up vote
8
down vote
favorite
Using docx, I am trying to define for a run multiple attributes.
When I set color, rtl, it works fine.
But when I add also font size, it is ignored.
If I set only font size, it works fine.
This works fine (font color changes and run is right-to-left):
run = p.add_run(line)
font = run.font
font.rtl = True
font.color.rgb = RGBColor(0x42, 0x24, 0xE9)
This also works fine (font size is modified):
run = p.add_run(line)
font = run.font
font.size = Pt(8)
#font.rtl = True # commented out
But this does not change the font's size:
run = p.add_run(line)
font = run.font
font.size = Pt(8)
font.rtl = True
I tried different order of the commands, but nothing works.
python docx right-to-left
add a comment |
up vote
8
down vote
favorite
Using docx, I am trying to define for a run multiple attributes.
When I set color, rtl, it works fine.
But when I add also font size, it is ignored.
If I set only font size, it works fine.
This works fine (font color changes and run is right-to-left):
run = p.add_run(line)
font = run.font
font.rtl = True
font.color.rgb = RGBColor(0x42, 0x24, 0xE9)
This also works fine (font size is modified):
run = p.add_run(line)
font = run.font
font.size = Pt(8)
#font.rtl = True # commented out
But this does not change the font's size:
run = p.add_run(line)
font = run.font
font.size = Pt(8)
font.rtl = True
I tried different order of the commands, but nothing works.
python docx right-to-left
And if you dofont.rtl = Truebefore you change the size?
– Torxed
Nov 11 at 8:41
tried to reorder the command - same result
– OritK
Nov 11 at 8:55
add a comment |
up vote
8
down vote
favorite
up vote
8
down vote
favorite
Using docx, I am trying to define for a run multiple attributes.
When I set color, rtl, it works fine.
But when I add also font size, it is ignored.
If I set only font size, it works fine.
This works fine (font color changes and run is right-to-left):
run = p.add_run(line)
font = run.font
font.rtl = True
font.color.rgb = RGBColor(0x42, 0x24, 0xE9)
This also works fine (font size is modified):
run = p.add_run(line)
font = run.font
font.size = Pt(8)
#font.rtl = True # commented out
But this does not change the font's size:
run = p.add_run(line)
font = run.font
font.size = Pt(8)
font.rtl = True
I tried different order of the commands, but nothing works.
python docx right-to-left
Using docx, I am trying to define for a run multiple attributes.
When I set color, rtl, it works fine.
But when I add also font size, it is ignored.
If I set only font size, it works fine.
This works fine (font color changes and run is right-to-left):
run = p.add_run(line)
font = run.font
font.rtl = True
font.color.rgb = RGBColor(0x42, 0x24, 0xE9)
This also works fine (font size is modified):
run = p.add_run(line)
font = run.font
font.size = Pt(8)
#font.rtl = True # commented out
But this does not change the font's size:
run = p.add_run(line)
font = run.font
font.size = Pt(8)
font.rtl = True
I tried different order of the commands, but nothing works.
python docx right-to-left
python docx right-to-left
edited Nov 12 at 19:19
asked Nov 11 at 8:25
OritK
1681113
1681113
And if you dofont.rtl = Truebefore you change the size?
– Torxed
Nov 11 at 8:41
tried to reorder the command - same result
– OritK
Nov 11 at 8:55
add a comment |
And if you dofont.rtl = Truebefore you change the size?
– Torxed
Nov 11 at 8:41
tried to reorder the command - same result
– OritK
Nov 11 at 8:55
And if you do
font.rtl = True before you change the size?– Torxed
Nov 11 at 8:41
And if you do
font.rtl = True before you change the size?– Torxed
Nov 11 at 8:41
tried to reorder the command - same result
– OritK
Nov 11 at 8:55
tried to reorder the command - same result
– OritK
Nov 11 at 8:55
add a comment |
2 Answers
2
active
oldest
votes
up vote
3
down vote
accepted
ok, found it!
It turns out that in word, the font size for such a case has to include complex script instructions. It means that you have to add
<w:szCs w:val="???"/>
instead (or in addition to) the normal
<w:sz w:val="??"/>
I had to add a new attribute to the font in the docx library and it now works fine. The change is in 3 docs files:
text/font.py
oxml/__init.py__
oxml/text/font.py
and the usage in my view:
run = p.add_run(line)
font = run.font
#font.size = Pt(8) This line is redundant - but you can leave it
font.cs_size = Pt(8)
font.rtl = True
Added a fork to docx library. In https://github.com/Oritk/python-docx
add a comment |
up vote
0
down vote
accepted
I haven't gotten around to playing with docx yet (I've mostly used Excel python modules), but based on the documentation here it's looking like you're modifying the wrong property of style. The Font property, per this definition of the rtl property, would only modify an added run (via myparagraph.add_run("Hello World", style = "rtl")).As far as I can tell, the code you're looking for is:
missingwords = Document()
style = missingwords.styles.add_style('rtl', WD_STYLE_TYPE.PARAGRAPH)
style.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
And then you can go ahead and add the paragraph like you were
paragraph = missingwords.add_paragraph("Hello world",style='rtl')
Again, just going off the documentation, so let me know if that works
Thanks - but i tried this before and this does not work... 1) alignment is not the same as direction - it does not show the sentence correctly 2) i want to change the size for some words, not the whole paragraph, which is why i do not use style 3) font.rtl is a valid option, as far as i know - it works and i also see it in python-docx.readthedocs.io/en/latest/_modules/docx/text/… (and in few answers here in stackoverflow)
– OritK
Nov 11 at 8:52
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
3
down vote
accepted
ok, found it!
It turns out that in word, the font size for such a case has to include complex script instructions. It means that you have to add
<w:szCs w:val="???"/>
instead (or in addition to) the normal
<w:sz w:val="??"/>
I had to add a new attribute to the font in the docx library and it now works fine. The change is in 3 docs files:
text/font.py
oxml/__init.py__
oxml/text/font.py
and the usage in my view:
run = p.add_run(line)
font = run.font
#font.size = Pt(8) This line is redundant - but you can leave it
font.cs_size = Pt(8)
font.rtl = True
Added a fork to docx library. In https://github.com/Oritk/python-docx
add a comment |
up vote
3
down vote
accepted
ok, found it!
It turns out that in word, the font size for such a case has to include complex script instructions. It means that you have to add
<w:szCs w:val="???"/>
instead (or in addition to) the normal
<w:sz w:val="??"/>
I had to add a new attribute to the font in the docx library and it now works fine. The change is in 3 docs files:
text/font.py
oxml/__init.py__
oxml/text/font.py
and the usage in my view:
run = p.add_run(line)
font = run.font
#font.size = Pt(8) This line is redundant - but you can leave it
font.cs_size = Pt(8)
font.rtl = True
Added a fork to docx library. In https://github.com/Oritk/python-docx
add a comment |
up vote
3
down vote
accepted
up vote
3
down vote
accepted
ok, found it!
It turns out that in word, the font size for such a case has to include complex script instructions. It means that you have to add
<w:szCs w:val="???"/>
instead (or in addition to) the normal
<w:sz w:val="??"/>
I had to add a new attribute to the font in the docx library and it now works fine. The change is in 3 docs files:
text/font.py
oxml/__init.py__
oxml/text/font.py
and the usage in my view:
run = p.add_run(line)
font = run.font
#font.size = Pt(8) This line is redundant - but you can leave it
font.cs_size = Pt(8)
font.rtl = True
Added a fork to docx library. In https://github.com/Oritk/python-docx
ok, found it!
It turns out that in word, the font size for such a case has to include complex script instructions. It means that you have to add
<w:szCs w:val="???"/>
instead (or in addition to) the normal
<w:sz w:val="??"/>
I had to add a new attribute to the font in the docx library and it now works fine. The change is in 3 docs files:
text/font.py
oxml/__init.py__
oxml/text/font.py
and the usage in my view:
run = p.add_run(line)
font = run.font
#font.size = Pt(8) This line is redundant - but you can leave it
font.cs_size = Pt(8)
font.rtl = True
Added a fork to docx library. In https://github.com/Oritk/python-docx
edited Nov 16 at 11:13
answered Nov 16 at 10:57
OritK
1681113
1681113
add a comment |
add a comment |
up vote
0
down vote
accepted
I haven't gotten around to playing with docx yet (I've mostly used Excel python modules), but based on the documentation here it's looking like you're modifying the wrong property of style. The Font property, per this definition of the rtl property, would only modify an added run (via myparagraph.add_run("Hello World", style = "rtl")).As far as I can tell, the code you're looking for is:
missingwords = Document()
style = missingwords.styles.add_style('rtl', WD_STYLE_TYPE.PARAGRAPH)
style.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
And then you can go ahead and add the paragraph like you were
paragraph = missingwords.add_paragraph("Hello world",style='rtl')
Again, just going off the documentation, so let me know if that works
Thanks - but i tried this before and this does not work... 1) alignment is not the same as direction - it does not show the sentence correctly 2) i want to change the size for some words, not the whole paragraph, which is why i do not use style 3) font.rtl is a valid option, as far as i know - it works and i also see it in python-docx.readthedocs.io/en/latest/_modules/docx/text/… (and in few answers here in stackoverflow)
– OritK
Nov 11 at 8:52
add a comment |
up vote
0
down vote
accepted
I haven't gotten around to playing with docx yet (I've mostly used Excel python modules), but based on the documentation here it's looking like you're modifying the wrong property of style. The Font property, per this definition of the rtl property, would only modify an added run (via myparagraph.add_run("Hello World", style = "rtl")).As far as I can tell, the code you're looking for is:
missingwords = Document()
style = missingwords.styles.add_style('rtl', WD_STYLE_TYPE.PARAGRAPH)
style.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
And then you can go ahead and add the paragraph like you were
paragraph = missingwords.add_paragraph("Hello world",style='rtl')
Again, just going off the documentation, so let me know if that works
Thanks - but i tried this before and this does not work... 1) alignment is not the same as direction - it does not show the sentence correctly 2) i want to change the size for some words, not the whole paragraph, which is why i do not use style 3) font.rtl is a valid option, as far as i know - it works and i also see it in python-docx.readthedocs.io/en/latest/_modules/docx/text/… (and in few answers here in stackoverflow)
– OritK
Nov 11 at 8:52
add a comment |
up vote
0
down vote
up vote
0
down vote
accepted
I haven't gotten around to playing with docx yet (I've mostly used Excel python modules), but based on the documentation here it's looking like you're modifying the wrong property of style. The Font property, per this definition of the rtl property, would only modify an added run (via myparagraph.add_run("Hello World", style = "rtl")).As far as I can tell, the code you're looking for is:
missingwords = Document()
style = missingwords.styles.add_style('rtl', WD_STYLE_TYPE.PARAGRAPH)
style.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
And then you can go ahead and add the paragraph like you were
paragraph = missingwords.add_paragraph("Hello world",style='rtl')
Again, just going off the documentation, so let me know if that works
accepted
I haven't gotten around to playing with docx yet (I've mostly used Excel python modules), but based on the documentation here it's looking like you're modifying the wrong property of style. The Font property, per this definition of the rtl property, would only modify an added run (via myparagraph.add_run("Hello World", style = "rtl")).As far as I can tell, the code you're looking for is:
missingwords = Document()
style = missingwords.styles.add_style('rtl', WD_STYLE_TYPE.PARAGRAPH)
style.paragraph_format.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT
And then you can go ahead and add the paragraph like you were
paragraph = missingwords.add_paragraph("Hello world",style='rtl')
Again, just going off the documentation, so let me know if that works
answered Nov 11 at 8:41
omair issa
14
14
Thanks - but i tried this before and this does not work... 1) alignment is not the same as direction - it does not show the sentence correctly 2) i want to change the size for some words, not the whole paragraph, which is why i do not use style 3) font.rtl is a valid option, as far as i know - it works and i also see it in python-docx.readthedocs.io/en/latest/_modules/docx/text/… (and in few answers here in stackoverflow)
– OritK
Nov 11 at 8:52
add a comment |
Thanks - but i tried this before and this does not work... 1) alignment is not the same as direction - it does not show the sentence correctly 2) i want to change the size for some words, not the whole paragraph, which is why i do not use style 3) font.rtl is a valid option, as far as i know - it works and i also see it in python-docx.readthedocs.io/en/latest/_modules/docx/text/… (and in few answers here in stackoverflow)
– OritK
Nov 11 at 8:52
Thanks - but i tried this before and this does not work... 1) alignment is not the same as direction - it does not show the sentence correctly 2) i want to change the size for some words, not the whole paragraph, which is why i do not use style 3) font.rtl is a valid option, as far as i know - it works and i also see it in python-docx.readthedocs.io/en/latest/_modules/docx/text/… (and in few answers here in stackoverflow)
– OritK
Nov 11 at 8:52
Thanks - but i tried this before and this does not work... 1) alignment is not the same as direction - it does not show the sentence correctly 2) i want to change the size for some words, not the whole paragraph, which is why i do not use style 3) font.rtl is a valid option, as far as i know - it works and i also see it in python-docx.readthedocs.io/en/latest/_modules/docx/text/… (and in few answers here in stackoverflow)
– OritK
Nov 11 at 8:52
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53247010%2fcant-set-font-size-and-rtl%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
And if you do
font.rtl = Truebefore you change the size?– Torxed
Nov 11 at 8:41
tried to reorder the command - same result
– OritK
Nov 11 at 8:55