如何使用borb创建支持多行输入的PDF TextField表单?
使用borb创建支持多行输入并预填充内容的PDF表单
要实现支持多行输入且能预填充多行内容的TextField,borb其实提供了对应的API,只是官方文档示例较少,以下是具体实现方案:
核心步骤
- 启用多行模式:给
TextField调用set_multiline(True)方法,开启多行输入支持 - 预填充多行内容:直接通过
set_value()传入包含\n的字符串,PDF会自动解析换行
完整代码示例
from borb.pdf import Document, Page, PDF, TextField from borb.pdf import SingleColumnLayout, FixedColumnWidthTable, Paragraph from borb.pdf.canvas.color.color import HexColor # 初始化PDF文档和页面 doc = Document() page = Page() doc.add_page(page) # 设置页面布局 layout = SingleColumnLayout(page) layout.add(Paragraph("多行文本输入表单", font_size=18, font_color=HexColor("#2c3e50"))) # 创建多行TextField并配置属性 multiline_field = TextField( field_name="multiline_content", width=500, height=160, font_size=12 ) # 开启多行输入 multiline_field.set_multiline(True) # 预填充多行字符串 multiline_field.set_value("第一行预填充内容\n第二行自定义文本\n第三行可以包含换行符和特殊字符:\n\t- 列表项1\n\t- 列表项2") # 将TextField添加到页面布局 table = FixedColumnWidthTable(number_of_columns=1, number_of_rows=2) table.add(Paragraph("请输入多行内容:")) table.add(multiline_field) table.set_padding_on_all_cells(5, 5, 5, 5) layout.add(table) # 保存生成的PDF with open("multiline_form.pdf", "wb") as out_file: PDF.dumps(out_file, doc)
关键说明
set_multiline(True):这是实现多行输入的核心配置,设置后TextField允许用户按下回车键换行输入,同时支持预填充内容中的\n换行- 输入框高度:需设置足够的
height值,确保预填充的多行内容能完整显示;当内容超出输入框高度时,PDF阅读器会自动添加滚动条 - 预填充格式:支持
\n换行、\t制表符等常见格式符号,生成的PDF会正确解析这些格式
内容的提问来源于stack exchange,提问作者Björn Johansson
相关产品推荐
相关产品推荐

