我有一个使用pythonptx创建的面积图,我需要设置该系列的填充透明度。我已经用下面的工作区函数实现了这一点,但它似乎太复杂了。我希望pythonpptx提供了一些实用函数,这样就不需要对lxml进行黑客攻击了。在
from lxml.etree import Element, SubElement, QName
ns = "http://schemas.openxmlformats.org/drawingml/2006/main"
xPr = prs.slides[3].placeholders[17].chart.series[0].format.fill._xPr
srgbClr = xPr.get_or_change_to_solidFill().get_or_change_to_srgbClr()
alpha = SubElement(srgbClr, QName(ns ,'alpha'), nsmap={'a':ns})
alpha.set('val','50196')
实现这一目标的更清洁的方法是什么?在
好吧,我不确定它是否干净得多,但是如果您想尽可能多地使用
python-pptx
调用,这可能是一个可以考虑的替代方法:一般的概念是}是lxml元素的proxy对象。API对象在私有变量中组成(“包装”)lxml元素对象。例如,对于自选图形,私有变量是
python-pptx
API对象,如chart
和{Shape._sp
。只要可能(几乎总是),该变量与元素的名称相同,比如_sp
代表<p:sp>
。有时元素可以有不同的名称。在这种情况下,我用x
替换变量部分。因此_xFill
有时可能是a:solidFill对象,有时可能是a:pattFill对象。在另外,不久前我开始使用
._element
作为代理元素的变量名,因此它是标准化的。通常我都有(例如,_sp
和_element
都是指同一个元素对象),因为它们在不同的情况下很方便。在要知道变量名是什么,您可以猜测(这比您了解模式后的预期更常见),或者您可以检查代码或反省对象。找到正确的代理对象后,单击API文档中的
[source]
链接是检查代码的一种快速方法。http://python-pptx.readthedocs.io/en/latest/api/dml.html#pptx.dml.color.ColorFormat相关问题 更多 >
编程相关推荐