日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python将数据保存为pdf

發布時間:2023/12/10 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python将数据保存为pdf 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天給大家介紹一個python將數據保存為pdf的包:fpdf
安裝代碼為:pip install fpdf
我是用的是win10上的anaconda的python3.7版本

寫一個簡單的pdf代碼

from fpdf import FPDFpdf = FPDF()#加一頁 pdf.add_page()#設置字體的大小和字體 pdf.set_font('Arial', size=15)#加一個單元 pdf.cell(200, 10, txt='hello world', ln=1, align='C')#加一個新的單元格 pdf.cell(200, 10, txt='this is a article.', ln=2, align='C')pdf.output('test.pdf')

改字體

q:有人會問如果我想保存的pdf是A5大小的,怎么辦?

A: 不用擔心,因為這個可以設置,

pdf = FPDF(orientation='P', unit='mm', format='A4')

這個包里內置了很多字體:

self.core_fonts={'courier': 'Courier','courierB': 'Courier-Bold','courierBI': 'Courier-BoldOblique','courierI': 'Courier-Oblique','helvetica': 'Helvetica','helveticaB': 'Helvetica-Bold', 'helveticaBI': 'Helvetica-BoldOblique','helveticaI': 'Helvetica-Oblique','symbol': 'Symbol','times': 'Times-Roman','timesB': 'Times-Bold','timesBI': 'Times-BoldItalic','timesI': 'Times-Italic','zapfdingbats': 'ZapfDingbats'} from fpdf import FPDF def change_fonts():pdf = FPDF()pdf.add_page()font_size = 8for font in pdf.core_fonts:if any([letter for letter in font if letter.isupper()]):# skip this fontcontinuepdf.set_font(font, size=font_size)txt = "Font name: {} - {} pts".format(font, font_size)pdf.cell(0, 10, txt=txt, ln=1, align="C")font_size += 2pdf.output("change_fonts.pdf")if __name__ == '__main__':change_fonts()

輸入如下:

可以使用這個包畫線

from fpdf import FPDF def draw_lines():pdf = FPDF()pdf.add_page()pdf.line(10, 10, 10, 100)pdf.set_line_width(1)pdf.set_draw_color(255, 0, 0)pdf.line(20, 20, 100, 20)pdf.output('draw_lines.pdf')if __name__ == '__main__':draw_lines()

輸出結果如下:

畫幾何圖形

from fpdf import FPDF def draw_shapes():pdf = FPDF()pdf.add_page()pdf.set_fill_color(255, 0, 0)pdf.ellipse(10, 10, 10, 100, 'F')pdf.set_line_width(1)pdf.set_fill_color(0, 255, 0)pdf.rect(20, 20, 100, 50)pdf.output('draw_shapes.pdf')if __name__ == '__main__':draw_shapes()

輸出結果如下:

加圖片

from fpdf import FPDF def add_image(image_path):pdf = FPDF()pdf.add_page()pdf.image(image_path, x=10, y=8, w=100)pdf.set_font("Arial", size=12)pdf.ln(85) # move 85 downpdf.cell(200, 10, txt="{}".format(image_path), ln=1)pdf.output("add_image.pdf")if __name__ == '__main__':add_image('airpods-pro.jpg')

輸出結果如下:

有人會問,如果有很多的內容要加,是不是只會加在一頁上?不是的

# multipage_simple.py from fpdf import FPDF def multipage_simple():pdf = FPDF()pdf.set_font("Arial", size=12)pdf.add_page()line_no = 1for i in range(100):pdf.cell(0, 10, txt="Line #{}".format(line_no), ln=1)line_no += 1pdf.output("multipage_simple.pdf")if __name__ == '__main__':multipage_simple()

輸出結果如下:

加表

from fpdf import FPDF def simple_table(spacing=1):data = [['First Name', 'Last Name', 'email', 'zip'],['Mike', 'Driscoll', 'mike@somewhere.com', '55555'],['John', 'Doe', 'jdoe@doe.com', '12345'],['Nina', 'Ma', 'inane@where.com', '54321']]pdf = FPDF()pdf.set_font("Arial", size=12)pdf.add_page()col_width = pdf.w / 4.5row_height = pdf.font_sizefor row in data:for item in row:pdf.cell(col_width, row_height*spacing,txt=item, border=1)pdf.ln(row_height*spacing)pdf.output('simple_table.pdf')if __name__ == '__main__':simple_table()

輸出結果如下:
這個方法太丑了,可以試一試下面的方法

# simple_table_html.py from fpdf import FPDF, HTMLMixin class HTML2PDF(FPDF, HTMLMixin):pass def simple_table_html():pdf = HTML2PDF()table = """<table border="0" align="center" width="50%"><thead><tr><th width="30%">Header 1</th><th width="70%">header 2</th></tr></thead><tbody><tr><td>cell 1</td><td>cell 2</td></tr><tr><td>cell 2</td><td>cell 3</td></tr></tbody></table>"""pdf.add_page()pdf.write_html(table)pdf.output('simple_table_html.pdf')if __name__ == '__main__':simple_table_html()

輸出結果如下:

保存網頁

# html2fpdf.py from fpdf import FPDF, HTMLMixin class HTML2PDF(FPDF, HTMLMixin):pass def html2pdf():html = '''<h1 align="center">PyFPDF HTML Demo</h1><p>This is regular text</p><p>You can also <b>bold</b>, <i>italicize</i> or <u>underline</u>'''pdf = HTML2PDF()pdf.add_page()pdf.write_html(html)pdf.output('html2pdf.pdf')if __name__ == '__main__':html2pdf()

輸出結果如下:

總結

以上是生活随笔為你收集整理的python将数据保存为pdf的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。