如何提升ReportLab生成的多行文本框100字符输入限制?
解决ReportLab多行文本框100字符限制问题
问题根源在于ReportLab的textfield方法默认设置了maxLen=100,这就是字符数限制的原因。要解除或提升该限制,只需在创建文本框时显式指定maxLen参数为你需要的数值即可。
修改后的代码如下:
class MultilineTextbox(Flowable): def __init__(self, height=50): Flowable.__init__(self) self.height = height def wrap(self, availWidth, availHeight): return (availWidth, self.height * mm) def draw(self): self.canv.saveState() form = self.canv.acroForm form.textfield( x=0, y=0, width=175 * mm, height=self.height * mm, borderWidth=0, fontSize=9, fillColor=HexColor(COLOR_MABI_LIGHTGREY), name=str(uuid()), fieldFlags="multiline", relative=True, maxLen=500 # 设置你需要的最大字符数,比如500,或设为极大值近似无限制 ) self.canv.restoreState()
如果希望支持任意长度的文本输入,可以将maxLen设置为一个足够大的数值(比如maxLen=10000),ReportLab没有提供真正的“无限制”选项,但超大数值足以覆盖绝大多数使用场景。
内容的提问来源于stack exchange,提问作者Bouni
相关产品推荐
相关产品推荐

