【问题标题】:Changing the second argument in setFont() does not change font size - reportlab更改 setFont() 中的第二个参数不会更改字体大小 - reportlab
【发布时间】:2019-04-01 20:46:23
【问题描述】:

我的画布初始化如下:

canvas = canvas.Canvas(save_name, pagesize=(4032, 3024), bottomup=1)
#canvas.setFont('Helvetica', 12) #set font size and type (not working)
canvas.setFontSize(10000000) #set pt size (not working)

我的拉绳看起来像:

canvas.drawString(100, y, line)

其中y 是一个变量,line 是一个字符串。

无论我将setFontSize() 参数或setFont() 中的第二个参数设置为什么,PDF 中的字体大小都不会改变。

系统:Debian(拉伸)、Python 3.5.3、Reportlab 3.5.8

编辑:

这是 MCVE

canvas = canvas.Canvas(save_name, pagesize=(4032, 3024), bottomup=1)
canvas.setFont("Times-Roman", 20)
text = "foo bar"
canvas.drawString(100, 3000, text)
canvas.save()

【问题讨论】:

  • 看起来应该可以了。你试过用其他字体吗?请提供 MCVE(请参阅 How to create a Minimal, Complete, and Verifiable Example)。另请注意,我在 Reportlab 手册中找不到任何有关 setFontSize() 方法的文档。
  • @martineau 我尝试使用'Helvetica',因为它在第一个代码块中,然后使用reportlab 默认值。没有骰子。 Here's where I found the documentation for setFontSize().
  • 我没有看到documentation section 中列出的reportlab-reference.pdf 手册,而setFontSize() 与我查看的那些手册不同。这就是为什么我要求您更改您的问题,使其包含一个重现问题的完整 sn-p。
  • @martineau 虽然该方法在reportlab.pdfgen 中找到并通过调用from reportlab import *from reportlab.pdfgen import canvas 进行编译,但我将其更改为canvas.setFont("Times-Roman", 20),这是我直接从第一个PDF 中复制的一行在您的链接中找到。文本仍然是以前的默认字体和大小,没有被更改。抱歉,这是我的第一个 Stack Overflow 问题。

标签: python pdf fonts font-size reportlab


【解决方案1】:

解决了。不知道为什么,但是将setFont() 方法放在drawString() 方法之前修复了它。

【讨论】:

    猜你喜欢
    • 2017-08-11
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 2023-04-03
    • 2015-10-27
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    相关资源
    最近更新 更多