如何解决在 FPDF ( python 3.8 ) 中设置左边距时?
我在 google 中找不到任何信息(搜索分数是到旧的 php-ers 网站),唯一的发现是此方法的文档很差https://pyfpdf.readthedocs.io/en/latest/reference/set_left_margin/index.html
我知道我应该在创建第一页之前设置_left_margin 但是...
####1 第一个使用-python 给通信
Traceback (most recent call last):
File "zlecenieWykonaniaBadania.py",line 78,in <module>
main()
File "zlecenieWykonaniaBadania.py",line 64,in main
pdf.set_left_margin(4.0)
##venv/lib/python3.8/site-packages/fpdf/fpdf.py",line 263,in set_left_margin
if self.page > 0 and self.x < margin:
AttributeError: 'PDF' object has no attribute 'page'
在##############2 上给我
File "zlecenieWykonaniaBadania.py",line 77,line 66,in main
pdf.set_left_margin(4.0)
File ".../venv/lib/python3.8/site-packages/fpdf/fpdf.py",in set_left_margin
if self.page > 0 and self.x < margin:
AttributeError: 'PDF' object has no attribute 'page'
在##############3 上给我
Traceback (most recent call last):
File "zlecenieWykonaniaBadania.py",line 67,in main
pdf.add_page()
/generatorPdfLims/venv/lib/python3.8/site-packages/fpdf/fpdf.py",line 358,in add_page
if self.state == DocumentState.CLOSED:
AttributeError: 'PDF' object has no attribute 'state'
我什么时候可以改变?抱歉问了一个愚蠢的问题
import logging
import argparse
from fpdf import FPDF
class PDF(FPDF):
def __init__(self):
pass
def header(self):
zdjecie="rac.png"
polozenieXzdj=8
polozenieYzdj=8
rozmiarZdjecia=33
# Logo (zdjecie,polozenie x,polozenie y,rozmiar)
self.image(zdjecie,polozenieXzdj,polozenieYzdj,rozmiarZdjecia)
# Arial bold 15
self.set_font('Arial','B',12)
# Move to the right
self.cell(80)
# Title
self.cell(30,10,'Title',1,'C')
# Line break
self.ln(20)
# Page footer
def footer(self):
# Position at 1.5 cm from bottom
self.set_y(-15)
# Arial italic 8
self.set_font('Arial','I',8)
# Page number
self.cell(0,'Page ' + str(self.page_no()) + '/{nb}','C')
#first page
def firstPage(self):
x=1000
y=40
self.ln(40)
#self.set_left_margin(3)
self.set_text_color(0,232,0)
#cell(x,y,"tekst",wielkosc ramki(0 brak ramkii),nie wiem)
self.cell(x,'ZLECENIE WYKONANIA BADANIA',1)
self.ln(20)
self.cell(x,1)
def main():
def_params()
# Instantiation of inherited class
pdf = PDF()
#pdf.set_left_margin(4.0) #####1
pdf.alias_nb_pages(str(2))
#pdf.set_left_margin(4.0) #####2
pdf.add_page()
pdf.set_left_margin(3.0) #####3
pdf.set_font('Times','',12)
pdf.firstPage()
#for i in range(1,41):
# pdf.cell(0,'Printing line number ' + str(i),1)
pdf.output('tuto2.pdf','F')
if __name__ == "__main__":
main()
解决方法
好吧,我只是傻
# Instantiation of inherited class
pdf = PDF()
pdf.alias_nb_pages(str(2))
pdf.add_page()
pdf.set_font('Times','',12)
pdf.set_left_margin(32)
pdf.set_right_margin(32)
pdf.firstPage()
按此方法顺序的代码,有效
请关闭问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。