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

溫馨提示×

溫馨提示×

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

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

Python實現將HTML轉成PDF的方法分析

發布時間:2020-10-07 23:35:41 來源:腳本之家 閱讀:358 作者:Tacey Wong 欄目:開發技術

本文實例講述了Python實現將HTML轉成PDF的方法。分享給大家供大家參考,具體如下:

主要使用的是wkhtmltopdf的Python封裝——pdfkit

安裝

1. Install python-pdfkit:

$ pip install pdfkit

2. Install wkhtmltopdf:

  • Debian/Ubuntu:
$ sudo apt-get install wkhtmltopdf

  • Redhat/CentOS
sudo yum intsall wkhtmltopdf

  • MacOS
brew install Caskroom/cask/wkhtmltopdf

使用

一個簡單的例子:

import pdfkit
pdfkit.from_url('http://google.com', 'out.pdf')
pdfkit.from_file('test.html', 'out.pdf')
pdfkit.from_string('Hello!', 'out.pdf')

你也可以傳遞一個url或者文件名列表:

pdfkit.from_url(['google.com', 'yandex.ru', 'engadget.com'], 'out.pdf')
pdfkit.from_file(['file1.html', 'file2.html'], 'out.pdf')

也可以傳遞一個打開的文件:

with open('file.html') as f:
  pdfkit.from_file(f, 'out.pdf')

如果你想對生成的PDF作進一步處理, 你可以將其讀取到一個變量中:

# 設置輸出文件為False,將結果賦給一個變量
pdf = pdfkit.from_url('http://google.com', False)

你可以制定所有的 wkhtmltopdf 選項 <http://wkhtmltopdf.org/usage/wkhtmltopdf.txt>. 你可以移除選項名字前面的 '--' .如果選項沒有值, 使用None, Falseor * 作為字典值:

  options = {
    'page-size': 'Letter',
    'margin-top': '0.75in',
    'margin-right': '0.75in',
    'margin-bottom': '0.75in',
    'margin-left': '0.75in',
    'encoding': "UTF-8",
    'no-outline': None
  }
  pdfkit.from_url('http://google.com', 'out.pdf', options=options)

默認情況下, PDFKit 將會顯示所有的 wkhtmltopdf 輸出. 如果你不想看到這些信息,你需要傳遞一個 quiet 選項:

  options = {
    'quiet': ''
    }
  pdfkit.from_url('google.com', 'out.pdf', options=options)

由于wkhtmltopdf的命令語法 , TOC 和 Cover 選項必須分開指定:

  toc = {
    'xsl-style-sheet': 'toc.xsl'
  }
  cover = 'cover.html'
  pdfkit.from_file('file.html', options=options, toc=toc, cover=cover)

當你轉換文件、或字符串的時候,你可以通過css選項指定擴展的 CSS 文件。

  # 單個 CSS 文件
  css = 'example.css'
  pdfkit.from_file('file.html', options=options, css=css)
  # Multiple CSS files
  css = ['example.css', 'example2.css']
  pdfkit.from_file('file.html', options=options, css=css)

你也可以通過你的HTML中的meta tags傳遞任意選項:

  body = """
    <html>
     <head>
      <meta name="pdfkit-page-size" content="Legal"/>
      <meta name="pdfkit-orientation" content="Landscape"/>
     </head>
     Hello World!
     </html>
    """
  pdfkit.from_string(body, 'out.pdf') #with --page-size=Legal and --orientation=Landscape

配置

每個API調用都有一個可選的參數。這應該是pdfkit.configuration()API 調用的一個實例. 采用configuration 選項作為初始化參數。可用的選項有:

  • wkhtmltopdf ——wkhtmltopdf二進制文件所在的位置。默認情況下pdfkit 會嘗試使用which (在類UNIX系統中) 或 where (在Windows系統中)來判斷.
  • meta_tag_prefix -- pdfkit的前綴指定 meta tags(元標簽) - 默認情況是pdfkit-

示例 :針對wkhtmltopdf不在系統路徑中(不在$PATH里面):

config = pdfkit.configuration(wkhtmltopdf='/opt/bin/wkhtmltopdf'))
pdfkit.from_string(html_string, output_file, configuration=config)

問題

  • IOError: 'No wkhtmltopdf executable found':

確保 wkhtmltopdf 在你的系統路徑中($PATH), 會通過 configuration進行了配置 (詳情看上文描述)。 在Windows系統中使用where wkhtmltopdf命令 或 在 linux系統中使用 which wkhtmltopdf 會返回 wkhtmltopdf二進制可執行文件所在的確切位置.

  • IOError: 'Command Failed'

如果出現這個錯誤意味著 PDFKit不能處理一個輸入。你可以嘗試直接在錯誤信息后面直接運行一個命令來查看是什么導致了這個錯誤 (某些版本的 wkhtmltopdf會因為段錯誤導致處理失敗)

  • 正常生成,但是出現中文亂碼

確保兩項:

1)、你的系統中有中文字體

2)、在html中加入<meta charset="UTF-8">

下面是我隨便寫的一個HTML表格:

<html>
<head><meta charset="UTF-8"></head>
<body>
<table width="400" border="1">
 <tr>
 <th align="left">Item....</th>
 <th align="right">1</th>
 </tr>
 <tr>
 <td align="left">衣服</td>
 <td align="right">$241.10</td>
 </tr>
 <tr>
 <td align="left">化妝品</td>
 <td align="right">$30.00</td>
 </tr>
 <tr>
 <td align="left">食物</td>
 <td align="right">$730.40</td>
 </tr>
 <tr>
 <th align="left">tOTAL</th>
 <th align="right">$1001.50</th>
 </tr>
</table>
</body>
</html>

下面是生成的PDF截圖

Python實現將HTML轉成PDF的方法分析

另:https://pdfcrowd.com/#convert_by_input

更多Python相關內容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python編碼操作技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節

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

AI

海宁市| 鄂尔多斯市| 蒙阴县| 连山| 南溪县| 黄浦区| 丰都县| 木兰县| 南澳县| 武汉市| 普兰县| 卓尼县| 五寨县| 垫江县| 平江县| 海阳市| 清丰县| 益阳市| 资中县| 信阳市| 平阳县| 若羌县| 灵台县| 蒙山县| 东海县| 满城县| 龙山县| 肇州县| 砚山县| 五常市| 潞西市| 阿拉善盟| 惠来县| 阿拉善左旗| 广灵县| 南澳县| 莫力| 灌南县| 新干县| 聂拉木县| 连云港市|