未找到作为 FPDF 的类方法的 load_resource 函数

Posted

技术标签:

【中文标题】未找到作为 FPDF 的类方法的 load_resource 函数【英文标题】:load_resource function not found as a class method of FPDF 【发布时间】:2020-04-23 20:46:46 【问题描述】:

我正在查看以下问题的答案:Insert Base64 image to pdf using pyfpdf

这里建议的答案是覆盖现有的load_resource 方法。

我所做的是

class EnhancedPdf(FPDF):

    def load_resource(self, reason, filename):
        if reason == "image":
            if filename.startswith("data"):
                f = filename.split("base64,")[1]
                f = base64.b64decode(f)
                f = BytesIO(f)
                return f
            else:
                return super().load_resource(reason, filename)

但是,Pycharm 突出显示超级调用,并显示消息“类“FPDF”的未解析属性引用“load_resource”

在我的命令行中,我运行了命令

from fpdf import FPDF
   dir(FPDF)

查看这个列表,我看到load_resource 函数确实不是一个列出的方法。因此我的问题是为什么load_resource 函数不可见?

【问题讨论】:

也许您正在使用不同版本的 pyfpdf,其中 load_resource() 不再存在。 你使用的是 Python 2 还是 Python 3 ? 在最新版本中肯定有 def load_resource(self, reason, filename) 在第 1774 行 @ChrisDoyle 我想我正在使用最新版本。我几天前使用 pip 安装了。版本号 1.7.2 @Cucu 我需要卸载旧的 fpdf 包吗? 【参考方案1】:

您很可能正在使用 Python 3.x,其中 x >= 5 。

在 pypi 上它说该模块仅对 python 3.y 提供实验性支持,其中 y

用 python 2.7 试试,它可能会工作。

PS:最好试试https://pypi.org/project/fpdf2/,更新版本。有关错误或问题,请参阅https://github.com/alexanderankin/pyfpdf。

如果你真的想使用旧版本,你可以像这样从原始仓库安装你想要的任何版本

pip install git+https://github.com/reingart/pyfpdf@<branchname of tag or commit> 

【讨论】:

以上是关于未找到作为 FPDF 的类方法的 load_resource 函数的主要内容,如果未能解决你的问题,请参考以下文章

FPDF:不为日历选定日期生成报告数据

未找到 com.google.android.gms.internal.zzaja 的类文件

如何消除 FPDF 中的这个错误?

fpdf 中导出的错误符号... ñ 为 ñ ..?

从 Android Studio 项目中删除所有未使用的类、方法

如何在 FPDF 中设置下边距