91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python自動化辦公之怎么生成PDF報告

發布時間:2023-03-29 11:23:00 來源:億速云 閱讀:138 作者:iii 欄目:開發技術

今天小編給大家分享一下Python自動化辦公之怎么生成PDF報告的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

因為工作需要經常需要生成很多的PDF報告給客戶查看產品效果以及過程的講解。

每次都需要按照一定的格式的編寫文檔并生成PDF報告,這樣重復性的工作實在太累。

想著可以使用python生成一份給用戶看的報告,里面需要插入圖片、表格、文字說明等等。

使用第三方的python非標準模塊reportlab就能滿足直接生成PDF報告的需要,由于是非標準庫需要使用pip的方式安裝一下該模塊。

使用pip安裝reportlab模塊,支持生成PDF文檔。

pip install reportlab -i https://pypi.tuna.tsinghua.edu.cn/simple

若是在安裝過程中出現缺失C++環境導致構建失敗時,可以直接選擇使用wheel文件的方式安裝reportlab模塊。

Python自動化辦公之怎么生成PDF報告

.whl文件的下載地址如下:https://www.lfd.uci.edu/~gohlke/pythonlibs/

下載完成之后存儲到本地磁盤,按照存放的路徑安裝reportLab模塊即可,安裝方式可以參考下面的安裝方式。

pip install wheel -i https://pypi.tuna.tsinghua.edu.cn/simple

pip install D:\downloads\reportlab-3.5.57-cp36-cp36m-win_amd64.whl

提前將reportlab模塊中需要使用到的python對象導入到當前的代碼塊中。

from reportlab.pdfbase import pdfmetrics  # 注冊字體
from reportlab.pdfbase.ttfonts import TTFont  # 字體類
from reportlab.platypus import Table, SimpleDocTemplate, Paragraph, Image  # 報告內容相關類
from reportlab.lib.pagesizes import letter  # 頁面的標志尺寸(8.5*inch, 11*inch)
from reportlab.lib.styles import getSampleStyleSheet  # 文本樣式
from reportlab.lib import colors  # 顏色模塊
from reportlab.lib.units import cm  # 單位:cm

模塊導入完成之后,第一步需要設置PDF文檔中使用到的字體,字體可以根據自己的喜好自行設置。

# Registering a font named 'simfang' with the file 'simfang.ttf'.
pdfmetrics.registerFont(TTFont('simfang', 'simfang.ttf'))

我這里選擇的字體是simfang.ttf,關于windows系統中的默認字體可以下面的路徑中查看。

Python自動化辦公之怎么生成PDF報告

開發業務代碼之前,我們可以將公共的部分提到最外面,這里使用getSampleStyleSheet函數將獲取到所有的樣式表后面在其他地方也可以使用。

# Getting a list of styles that can be used in the document.
style_list = getSampleStyleSheet()

1、插入PDF標題

大標題設置字體樣式對象為Heading1,字體顏色為綠色,大小為18并且加粗。

def insert_full_title(title_name=None):
    """
    This function takes in a title name and returns the full title name.

    :param title_name: The name of the title you want to insert
    """
    font_ = style_list['Heading1']
    font_.fontName = 'simfang'
    font_.fontSize = 18
    font_.leading = 50
    font_.textColor = colors.green
    font_.alignment = 1
    font_.bold = True
    return Paragraph(title_name, font_)

Python自動化辦公之怎么生成PDF報告

2、插入PDF小標題

小標題設置字體樣式對象為Normal,字體顏色為紅色,大小為15并且不加粗。

def insert_lettle_title(lettle_name=None):
    """
    :param lettle_name: The name of the lettle you want to insert
    """
    font_ = style_list['Normal']
    font_.fontName = 'simfang'
    font_.fontSize = 15
    font_.leading = 30
    font_.textColor = colors.red
    return Paragraph(lettle_name, font_)

Python自動化辦公之怎么生成PDF報告

3、插入普通段落文本

普通文本設置字體樣式對象為Normal,字體顏色為默認,大小為12并且不加粗,開啟自動換行模式。

def insert_text(text=None):
    """
    > This function inserts text into the current document

    :param text: The text to insert
    """
    font_ = style_list['Normal']
    font_.fontName = 'simfang'
    font_.fontSize = 12
    font_.wordWrap = 'CJK'
    font_.alignment = 0
    font_.firstLineIndent = 32
    font_.leading = 25
    return Paragraph(text, font_)

Python自動化辦公之怎么生成PDF報告

4、插入PDF圖片

將圖片插入到PDF文檔對象中比較簡單,只需要設置需要插入圖片的本地路徑即可。

def insert_image(image_path=None):
    """
    > This function inserts an image into the notebook

    :param image_path: The path to the image you want to insert
    """
    img = Image(image_path)
    img.drawWidth = 5 * cm
    img.drawHeight = 8 * cm
    return img

Python自動化辦公之怎么生成PDF報告

5、插入PDF表格

插入表格時,表格的格式可以根據自己的喜好設置表格的標題、字體樣式、字體大小以及是否需要合并等參數來控制需要插入的表格對象。

def insert_table(*args):
    """
    It inserts a table into the database.
    """
    col_width = 120
    style = [
        ('FONTNAME', (0, 0), (-1, -1), 'simfang'),  # 字體
        ('FONTSIZE', (0, 0), (-1, 0), 12),  # 第一行的字體大小
        ('FONTSIZE', (0, 1), (-1, -1), 10),  # 第二行到最后一行的字體大小
        ('BACKGROUND', (0, 0), (-1, 0), '#d5dae6'),  # 設置第一行背景顏色
        ('ALIGN', (0, 0), (-1, -1), 'CENTER'),  # 第一行水平居中
        ('ALIGN', (0, 1), (-1, -1), 'LEFT'),  # 第二行到最后一行左右左對齊
        ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'),  # 所有表格上下居中對齊
        ('TEXTCOLOR', (0, 0), (-1, -1), colors.darkslategray),  # 設置表格內文字顏色
        ('GRID', (0, 0), (-1, -1), 0.5, colors.grey),  # 設置表格框線為grey色,線寬為0.5
    ]
    table = Table(args, colWidths=col_width, style=style)
    return table

Python自動化辦公之怎么生成PDF報告

上述就是PDF文檔中常用的對象,最后通過添加對應的內容參數即可生成PDF文檔并保存到本地磁盤當中。

# A special variable in Python that evaluates to `True` if the module is being run as the main program.
if __name__ == '__main__':
    pdf_ = list()

    pdf_.append(insert_full_title('數據測試報告'))
    pdf_.append(insert_text(
        'Python 是一門編程語言。 您可以在服務器上使用 Python 來創建 Web 應用程序。通過實例學習 我們的 TIY 編輯器使學習 Python 變得簡單,它能夠同時顯示代碼和結果。 '))
    pdf_.append(insert_image('./excle源數據.png'))
    pdf_.append(insert_lettle_title('數據內容展示:'))
    data = [
        ('職位名稱', '平均薪資', '較上年增長率'),
        ('數據分析師', '18.5K', '25%'),
        ('高級數據分析師', '25.5K', '14%'),
        ('資深數據分析師', '29.3K', '10%')
    ]
    pdf_.append(insert_table(*data))

    doc = SimpleDocTemplate('測試報告.pdf', pagesize=letter)
    doc.build(pdf_)

Python自動化辦公之怎么生成PDF報告

以上就是“Python自動化辦公之怎么生成PDF報告”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

会昌县| 镇赉县| 杨浦区| 巩留县| 东安县| 芦山县| 拉萨市| 安岳县| 盐亭县| 桦甸市| 开原市| 尼木县| 忻州市| 朝阳区| 浠水县| 灵璧县| 雷波县| 开原市| 利辛县| 衡阳县| 新宾| 沧州市| 湖北省| 玉溪市| 东至县| 吉安市| 仁化县| 梓潼县| 雷山县| 南宁市| 济源市| 罗源县| 图们市| 瓦房店市| 交城县| 健康| 普格县| 仙游县| 阿勒泰市| 海原县| 陆丰市|