python pptx使表适合确切的大小并自动将文本固定到它

时间:2017-04-20 09:41:48

标签: python python-2.7 python-pptx

我正在使用python 2.7和python pptx

我需要一张合适尺寸的桌子, 它有2个柱子 它的行数未知 每个单元格的文本长度都是未知的。

我需要整个表格以适合一些确切的位置,并且理想情况下希望每个单元格中的文本适合它应该获得的表格的精确部分但是公式(大小/行/ 2)< / p>

我发现here如何调整每个单元格中文本的大小,但这还不够

我找到了如何使用.width和.height更改表格大小但是当文本太长并且只是使表格变得更大时这不起作用。

我如何对每个单元格大小设置一个硬约束,以尽可能最好的方式填充文本(或尽可能最接近的解决方案)?

谢谢!

2 个答案:

答案 0 :(得分:1)

我处理了类似的要求,这就是我处理具有随机可能行数的表的方式。

  1. 识别具有最大字符的列。在我的情况下,我只有一列具有不同的内容。
  2. 尝试粗略估计一张幻灯片上可容纳的字符数。
  3. 如果文本达到最大字符并进入下一张幻灯片,创建一个表格并填写其余内容,请提供逻辑来打破文本。

答案 1 :(得分:0)

将表的初始尺寸设置为Varun描述的样式中的最佳近似值,然后调用以下其中一个

table.cell(x,y).text_frame.auto_size = MSO_AUTO_SIZE.TEXT_TO_FIT_SHAPE 
table.cell(x,y).text_frame.fit_text() 

在表格中的文本框架上,让字体修改自身以适合您给出的框架。我发现这些选项有些错误,但也许你会有更好的运气!在此处阅读更多内容: https://media.readthedocs.org/pdf/python-pptx/latest/python-pptx.pdf