我有一个模型属性可以保存用户的 HTML Textarea 输入。因为当用户在 Textarea 中敲回车时,表单提交时,我编写了一个小的 Javascript 代码来自动输入“\n”,呈现换行符。
当我尝试使用 ReportLab 将此属性导出为 PDF 时,我收到了看起来像 2 个黑色矩形的不可打印字符。当我尝试将它们复制到文本板时,它变为“n”。
这是模型中的代码
class Package(models.Model):
content = models.TextField()
这是特定字段的 JavaScript 和 Html:
<form action="" role="form" method="post">{% csrf_token %}
<textarea class="form-control" autofocus name="content">{{content}}</textarea>
<br/>
</form>
<script type="text/javascript">
$('textarea').keypress(function(event) {
if (event.which == 13) {
event.preventDefault();
var s = $(this).val();
$(this).val(s+"\n");
}
});
</script>
这是 view.py 中的 Reportlab 代码:
from reportlab.pdfgen import canvas
from reportlab.platypus import Spacer
from reportlab.lib.pagesizes import letter
def create(pdf):
packet = StringIO.StringIO()
can = canvas.Canvas(packet, pagesize=letter)
p_content = str(package.content)
textobject = can.beginText(0.5*inch, 4.75*inch)
for line in p_content:
textobject.textOut(line)
if line=="\n":
textobject.textLines(p_content)
can.save()
请帮忙。我似乎无法弄清楚这一点。
非常感谢。