最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用python程序生成word和PDF文檔的方法

 更新時間:2017年02月14日 08:35:33   作者:會心一擊  
這篇文章主要給大家介紹了利用python程序生成word和PDF文檔的方法,文中給出了詳細的介紹和示例代碼,相信對大家具有一定的參考價值,有需要的朋友們下面來一起看看吧。

一、程序?qū)С鰓ord文檔的方法

將web/html內(nèi)容導(dǎo)出為world文檔,再java中有很多解決方案,比如使用Jacob、Apache POI、Java2Word、iText等各種方式,以及使用freemarker這樣的模板引擎這樣的方式。php中也有一些相應(yīng)的方法,但在python中將web/html內(nèi)容生成world文檔的方法是很少的。其中最不好解決的就是如何將使用js代碼異步獲取填充的數(shù)據(jù),圖片導(dǎo)出到word文檔中。

1. unoconv

功能:

1.支持將本地html文檔轉(zhuǎn)換為docx格式的文檔,所以需要先將網(wǎng)頁中的html文件保存到本地,再調(diào)用unoconv進行轉(zhuǎn)換。轉(zhuǎn)換效果也不錯,使用方法非常簡單。

\# 安裝
sudo apt-get install unoconv
\# 使用
unoconv -f pdf *.odt
unoconv -f doc *.odt
unoconv -f html *.odt

缺點:

      1.只能對靜態(tài)html進行轉(zhuǎn)換,對于頁面中有使用ajax異步獲取數(shù)據(jù)的地方也不能轉(zhuǎn)換(主要是要保證從web頁面保存下來的html文件中有數(shù)據(jù))。

      2.只能對html進行轉(zhuǎn)換,如果頁面中有使用echarts,highcharts等js代碼生成的圖片,是無法將這些圖片轉(zhuǎn)換到word文檔中;

      3.生成的word文檔內(nèi)容格式不容易控制。

2. python-docx

功能:

1.python-docx是一個可以讀寫word文檔的python庫。

使用方法:

1.獲取網(wǎng)頁中的數(shù)據(jù),使用python手動排版添加到word文檔中。

from docx import Document
from docx.shared import Inches
document = Document()
document.add_heading('Document Title', 0)
p = document.add_paragraph('A plain paragraph having some ')
p.add_run('bold').bold = True
p.add_run(' and some ')
p.add_run('italic.').italic = True
document.add_heading('Heading, level 1', level=1)
document.add_paragraph('Intense quote', style='IntenseQuote')
document.add_paragraph(
 'first item in unordered list', style='ListBullet'
)
document.add_paragraph(
 'first item in ordered list', style='ListNumber'
)
document.add_picture('monty-truth.png', width=Inches(1.25))
table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Qty'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
for item in recordset:
 row_cells = table.add_row().cells
 row_cells[0].text = str(item.qty)
 row_cells[1].text = str(item.id)
 row_cells[2].text = item.desc
document.add_page_break()
document.save('demo.docx')
from docx import Document
from docx.shared import Inches
document = Document()
for row in range(9):
 t = document.add_table(rows=1,cols=1,style = 'Table Grid')
 t.autofit = False #很重要!
 w = float(row) / 2.0
 t.columns[0].width = Inches(w)
document.save('table-step.docx')

缺點:

功能非常弱。有很多限制比如不支持模板等,只能生成簡單格式的word文檔。

二、程序?qū)С鯬DF文檔方法

1.pdfkit

功能:

      1.wkhtmltopdf主要用于HTML生成PDF。

      2.pdfkit是基于wkhtmltopdf的python封裝,支持URL,本地文件,文本內(nèi)容到PDF的轉(zhuǎn)換,其最終還是調(diào)用wkhtmltopdf命令。是目前接觸到的python生成pdf效果較好的。

優(yōu)點:

      1.wkhtmltopdf:利用webkit內(nèi)核將HTML轉(zhuǎn)為PDF

            webkit是一個高效、開源的瀏覽器內(nèi)核,包括Chrome和Safari在內(nèi)的瀏覽器都使用了這個內(nèi)核。Chrome打印當(dāng)前網(wǎng)頁的功能,其中有一個選項就是直接“保存為 PDF”。

      2.wkhtmltopdf使用webkit內(nèi)核的PDF渲染引擎來將HTML頁面轉(zhuǎn)換為PDF。高保真,轉(zhuǎn)換質(zhì)量很好,且使用非常簡單。
使用方法:

\# 安裝
pip install pdfkit
\# 使用
import pdfkit
pdfkit.from_url('http://google.com', 'out.pdf')
pdfkit.from_file('test.html', 'out.pdf')
pdfkit.from_string('Hello!', 'out.pdf')

缺點:

      1.對使用echarts,highcharts這樣的js代碼生成的圖標(biāo)無法轉(zhuǎn)換為pdf(因為它的功能主要是將html轉(zhuǎn)換為pdf,而不是將js轉(zhuǎn)換為pdf)。對于純靜態(tài)頁面的轉(zhuǎn)換效果還是不錯的。

      2.其他

其他生成pdf的插件還有:weasyprint,reportlab,PyPDF2等,經(jīng)簡單試驗都不如pdfkit效果好,且有些用法復(fù)雜。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • python調(diào)用excel_vba的兩種實現(xiàn)方式

    python調(diào)用excel_vba的兩種實現(xiàn)方式

    本文主要介紹了python調(diào)用excel_vba的兩種實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 如何解決django配置settings時遇到Could not import settings ''conf.local''

    如何解決django配置settings時遇到Could not import settings ''conf.loca

    這里記錄一下在項目中遇到django配置settings時遇到Could not import settings 'conf.local'的解決方法,有同樣問題的小伙伴們參考下吧
    2014-11-11
  • Python著名游戲?qū)崙?zhàn)之方塊連接 我的世界

    Python著名游戲?qū)崙?zhàn)之方塊連接 我的世界

    讀萬卷書不如行萬里路,學(xué)的扎不扎實要通過實戰(zhàn)才能看出來,本篇文章手把手帶你模仿著名游戲——我的世界,大家可以在過程中查缺補漏,看看自己掌握程度怎么樣
    2021-10-10
  • 詳解Python中最難理解的點-裝飾器

    詳解Python中最難理解的點-裝飾器

    記得我好幾年前剛學(xué)Python的時候,看裝飾器就覺得看九陰真經(jīng)里面的怪文字,完全看不懂,確實裝飾器是一個非常難以理解的概念,相信很多初學(xué)者一定也有這樣的困惑,所以篇文章主要介紹了關(guān)于Python中裝飾器的相關(guān)資料,需要的朋友可以參考下。
    2017-04-04
  • python使用箱型圖剔除異常值的實現(xiàn)方法

    python使用箱型圖剔除異常值的實現(xiàn)方法

    python中的箱線圖可用于分析數(shù)據(jù)中的異常值,下面這篇文章主要給大家介紹了關(guān)于python使用箱型圖剔除異常值的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • Python3.10新特性之match語句示例詳解

    Python3.10新特性之match語句示例詳解

    這篇文章主要為大家介紹了Python3.10新特性之match語句示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • python-docx 頁面設(shè)置詳解

    python-docx 頁面設(shè)置詳解

    今天小編就為大家分享一篇python docx 中頁面的設(shè)置,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-10-10
  • Python中g(shù)etattr函數(shù)詳解

    Python中g(shù)etattr函數(shù)詳解

    getattr是Python中的內(nèi)置函數(shù),用于獲取一個對象的屬性值,下面這篇文章主要給大家介紹了關(guān)于Python中g(shù)etattr函數(shù)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • 解決Python logging模塊無法正常輸出日志的問題

    解決Python logging模塊無法正常輸出日志的問題

    今天小編就為大家分享一篇解決Python logging模塊無法正常輸出日志的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 關(guān)于Python的GPU編程實例近鄰表計算的講解

    關(guān)于Python的GPU編程實例近鄰表計算的講解

    本文主要講解了Python的GPU編程實例近鄰表計算,通過一個近鄰表計算的案例,給出了適用于GPU加速的計算場景。需要了解的朋友可以參考一下這篇文章
    2021-08-08

最新評論

洛南县| 德庆县| 澎湖县| 永胜县| 大英县| 克拉玛依市| 山阳县| 崇阳县| 石门县| 晴隆县| 泗洪县| 长丰县| 微山县| 万山特区| 建平县| 温州市| 临海市| 丹凤县| 阳江市| 长宁县| 类乌齐县| 辽阳市| 阳原县| 河西区| 雅江县| 综艺| 蓝田县| 西乌珠穆沁旗| 芮城县| 正镶白旗| 上虞市| 阿克苏市| 灵丘县| 蓝田县| 遵义县| 开封县| 久治县| 澜沧| 岚皋县| 若羌县| 雷波县|