标签: pyfpdf

FPDF __init__ 在Python中与页眉和页脚结合

这将是我在 Stackoverflow 上的第一篇文章。我有一个关于 python 的 FPDF 包的问题。创建一个定义页眉和页脚的类,效果很好。但是,当我尝试通过init初始化某些变量时,页眉和页脚将停止显示。我用谷歌搜索了所有内容,但无法弄清楚。有谁知道如何解决这个问题?

包括初始化的代码

import fpdf as FPDF
import pandas as pd
import lipsum
from datetime import date
import locale

db=pd.DataFrame({'Fontsize':[5,6,7,8,9,10,11,12,14,17,20,25],'Baselineskip':[6,7,8,9.5,11,12,13.6,14.5,18,22,25,30]})


class PDF(FPDF.FPDF):

    def __init__(self,fontsize):
        FPDF.FPDF.__init__(self,orientation='P',unit='mm',format='A4')
        self.set_font('Arial','',fontsize)
        self.fontsize=fontsize
        self.baseskip=db[db['Fontsize']==self.fontsize].iloc[0,1]

    def header(self):
        # Logo
        # x=110.9, y=16.1
        self.image(name='logo.png', x=110.6, y=15.9, w=72.9)
        # Arial bold 15
        self.set_font('Arial', '', 15)
        #textcolor Arcadis orange
        self.set_text_color(r=228,g=97,b=15)
        # Title
        self.text(self.l_margin, 16.1+7.7, txt='bla')

    # Page footer
    def footer(self):
        # Position at 1.5 cm from bottom
        self.set_y(-15)
        # Arial italic 8
        self.set_font('Arial', …
Run Code Online (Sandbox Code Playgroud)

python initialization class fpdf pyfpdf

4
推荐指数
1
解决办法
2915
查看次数

PyFPDF、HTMLMixin、Python 无法打印 HTML

我无法使用PyFPDF输出 HTML 消息。当我尝试将HTML 写入 PDF 文档时,出现错误:

Traceback (most recent call last):
  File "/Users/elcid/Projects/so_test/test.py", line 8, in <module>
    pdf.write_html("<b>Sample HTML</b>")
  File "/Users/elcid/.pyenv/versions/so/lib/python3.9/site-packages/fpdf/html.py", line 400, in write_html
    text = h2p.unescape(text) # To deal with HTML entities
AttributeError: 'HTML2FPDF' object has no attribute 'unescape'
Run Code Online (Sandbox Code Playgroud)

违规代码:

from fpdf import FPDF, HTMLMixin

class PDF(FPDF, HTMLMixin):
    pass

pdf = PDF()
pdf.add_page()
pdf.write_html("<b>Sample HTML</b>")
pdf.output("html.pdf")
Run Code Online (Sandbox Code Playgroud)

我正在使用Python 3.9。有什么见解吗?谢谢你!

python pyfpdf

4
推荐指数
1
解决办法
3996
查看次数

在 FPDF Python 中使用表格和多单元格创建 PDF 时出现问题

我正在尝试使用 FPDF 库创建一个表格,当文本非常大时,该表格能够扩展单元格的高度。

我将展示我拥有的代码,该代码与官方文档页面上显示的代码相同:

from fpdf import FPDF

data = (
    ("First name", "Last name", "Age", "City"),
    ("Jules", "Smith", "34", "San Juan"),
    ("Mary", "Ramos", "45", "Orlando"),
    ("Carlson", "Banks", "19", "Los Angeles"),
    ("Lucas", "Cimon", "31", "Saint-Mahturin-sur-Loire udfhisudhf fughdiufhg fduihgsdiufg dfghsdifugh fdiguhdsfiug fdughdifugh dfhgsdiufhg"),
)

pdf = FPDF()
pdf.add_page()
pdf.set_font("Times", size=10)
line_height = pdf.font_size * 2.5
col_width = pdf.epw / 4 
for row in data:
    for datum in row:
        pdf.multi_cell(col_width, line_height, datum, border=1, ln=3)
    pdf.ln(line_height)
pdf.output('table_with_cells.pdf')
Run Code Online (Sandbox Code Playgroud)

这是结果:

PDF 结果

最后一行的最后一列更高,因为它有更多内容,这很好,但我希望该行中所有列的高度动态相同。像这样的事情:

我想要这个结果

我怎么才能得到它?

注意:表中的数据来自数据库,所以我无法确切知道每个字符串的长度

python pdf fpdf python-3.x pyfpdf

2
推荐指数
1
解决办法
1万
查看次数

Python3 fpdf 给我一个错误 latin-1 编解码器无法编码字符

当我运行下面的代码时,我得到以下回溯:

\n
Traceback (most recent call last):\n  File "C:\\demo\\test.py", line 11, in <module>\n    pdf.output("splintered.pdf")\n  File "C:\\demo\\lib\\site-packages\\fpdf\\fpdf.py", line 1065, in output\n    self.close()\n  File "C:\\demo\\lib\\site-packages\\fpdf\\fpdf.py", line 246, in close\n    self._enddoc()\n  File "C:\\demo\\lib\\site-packages\\fpdf\\fpdf.py", line 1636, in _enddoc\n    self._putpages()\n  File "C:\\demo\\lib\\site-packages\\fpdf\\fpdf.py", line 1170, in _putpages\n    p = self.pages[n].encode("latin1") if PY3K else self.pages[n]\nUnicodeEncodeError: \'latin-1\' codec can\'t encode character \'\\u2019\' in position 74: ordinal not in range(256)\n
Run Code Online (Sandbox Code Playgroud)\n

我该如何解决?是因为我选择了 Arial 作为字体吗?我想做的就是将 txt 转换为 pdf 文件,因此如果有任何更简单的方法可以在 Python 中执行此操作,我将不胜感激。

\n
import fpdf\npdf = fpdf.FPDF(format=\'letter\')\n\ntxt = \'bees and butterflies. …
Run Code Online (Sandbox Code Playgroud)

python pdf utf-8 pyfpdf txt

1
推荐指数
1
解决办法
2458
查看次数

标签 统计

pyfpdf ×4

python ×4

fpdf ×2

pdf ×2

class ×1

initialization ×1

python-3.x ×1

txt ×1

utf-8 ×1