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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html文件嵌入到reportlab,Reportlab学习笔记

發(fā)布時間:2024/10/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html文件嵌入到reportlab,Reportlab学习笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Python制作PDF的一個庫,效率非常高,比pypdf不知道快了多少。

我是完全照著官方文檔的順序來記錄筆記,只是部分內(nèi)容的順序有調(diào)整,方便后續(xù)查看。

文檔下載地址:https://www.reportlab.com/docs/reportlab-userguide.pdf

Chapter 1 環(huán)境篇

編程語言:Python3.8

1.1 安裝

pip install reportlab

如果有缺失的依賴包(比如之前沒有安裝pillow),pip會自動進行安裝

Chapter 2 Graphics and Text with pdfgen - 有pdfgen的圖形和文本

2.1 Basic Concepts - 基本概念

from reportlab.pdfgen import canvas

def hello(c):

c.drawString(0, 0, "Hello World")

c = canvas.Canvas("hello.pdf")

hello(c)

c.showPage() # 保存當(dāng)前畫布頁面

c.save() # 保存文件并關(guān)閉畫布

結(jié)果如下圖:

pdfgen軟件包是用于生成PDF文檔的最低級別的接口,其本質(zhì)相當(dāng)于在一個畫布上進行繪畫的工具。

畫布應(yīng)被視為一張白紙,并且在紙上使用笛卡爾坐標(biāo)確定點(X,Y)坐標(biāo),默認(rèn)情況下在頁面的左下角具有(0,0)起點。

此外默認(rèn)情況下,第一個坐標(biāo)x朝右,第二個坐標(biāo)y朝上。

2.2 More about the Canvas - 關(guān)于畫布

一張畫布有很多屬性可以進行配置。

首先這個是畫布對象的初始屬性:

def __init__(

self, filename, pagesize=(595.27, 841.89), bottomup=1,

pageCompression=0, encoding=rl_config.defaultEncoding,

verbosity=0, encrypt=None

):

filename - 控制最終PDF文件的名稱。

也可以傳入任何打開的二進制流(例如sys.stdout,帶有二進制編碼的python處理標(biāo)準(zhǔn)輸出),然后將PDF文檔寫入其中。

注意:不能在HTML頁面中間內(nèi)聯(lián)傳遞PDF文檔!

pagesize

以點(1/72英寸)為單位的兩個數(shù)字的元組。畫布默認(rèn)為A4(國際標(biāo)準(zhǔn)頁面大小與美國標(biāo)準(zhǔn)字母大小不同),但最好明確指定它。在reportlab.lib.pagesizes中可以找到最常見的頁面大小,因此可以使用如下表達式:

from reportlab.pdfgen import canvas

from reportlab.lib.pagesizes import letter, A4

myCanvas = canvas.Canvas('myfile.pdf', pagesize=A4)

如果打印文檔時遇到問題,請確保使用正確的頁面尺寸(通常為A4或Letter)。某些打印機無法處理太大或太小的頁面。

可以使用width變量將右邊距定義為width-inch,而不是使用常量。通過使用變量,即使頁面大小發(fā)生變化,頁邊距仍然有意義。

bottomup

已被棄用,將來可能會被刪除

pageCompression - 是否壓縮每個頁面

默認(rèn)情況下,不壓縮頁面流,因為壓縮會減慢文件生成過程。

如果輸出大小很重要,請設(shè)置pageCompression=1。但是請記住,壓縮后的文檔會變小,但生成起來會更慢。請注意,圖像始終是壓縮的,并且只有在每頁上都有大量文本和矢量圖形時,此選項才會節(jié)省空間。

encoding

在2.0版中已過時,99%的用戶可能會忽略它。所有TTF和常用的CID字體,此處傳遞的編碼將被忽略,因為在這些情況下reportlab庫本身知道正確的編碼。

encrypt

默認(rèn)情況下,文檔未加密。如果encrypt是字符串對象,則將其用作pdf的用戶密碼。如果encrypt是reportlab.lib.pdfencrypt.StandardEncryption的實例,則此對象用于加密pdf。

2.3 Drawing Operations - 繪圖操作

原文:https://www.cnblogs.com/quanquan616/p/11871591.html

總結(jié)

以上是生活随笔為你收集整理的html文件嵌入到reportlab,Reportlab学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。