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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

使用 Python 制作属于自己的 PDF 电子书

發(fā)布時(shí)間:2025/3/20 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 Python 制作属于自己的 PDF 电子书 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天分享的則是如何將 HTML 保存為 PDF。

熟練利用好這招,可以試著自己把精品網(wǎng)頁內(nèi)容做成 PDF 電子書。
主要使用的是wkhtmltopdf的Python封裝——pdfkit

安裝

1. Install python-pdfkit:

pip install pdfkit

2. Install wkhtmltopdf:

sudo apt-get install wkhtmltopdf sudo yum intsall wkhtmltopdf brew install Caskroom/cask/wkhtmltopdf

使用

一個(gè)簡單的例子:

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助, 群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! '''import pdfkitpdfkit.from_url('http://google.com', 'out.pdf')pdfkit.from_file('test.html', 'out.pdf')pdfkit.from_string('Hello!', 'out.pdf')

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

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

也可以傳遞一個(gè)打開的文件:

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

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

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

你可以制定所有的 wkhtmltopdf 選項(xiàng). 你可以移除選項(xiàng)名字前面的 ‘–’ .如果選項(xiàng)沒有值, 使用 None, Falseor * 作為字典值:

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助, 群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! '''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)

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

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

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

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助, 群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! '''toc = {'xsl-style-sheet': 'toc.xsl'}cover = 'cover.html'pdfkit.from_file('file.html', options=options, toc=toc, cover=cover)

當(dāng)你轉(zhuǎn)換文件、或字符串的時(shí)候,你可以通過css選項(xiàng)指定擴(kuò)展的 CSS 文件。

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助, 群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! '''# 單個(gè) CSS 文件css = 'example.css'pdfkit.from_file('file.html', options=options, css=css)# Multiple CSS filescss = ['example.css', 'example2.css']pdfkit.from_file('file.html', options=options, css=css)

你也可以通過你的HTML中的meta tags傳遞任意選項(xiàng):

body = """Hello World!"""pdfkit.from_string(body, 'out.pdf') #with --page-size=Legal and --orientation=Landscape

配置

每個(gè)API調(diào)用都有一個(gè)可選的參數(shù)。這應(yīng)該是 pdfkit.configuration()API 調(diào)用的一個(gè)實(shí)例. 采用configuration 選項(xiàng)作為初始化參數(shù)。可用的選項(xiàng)有:

wkhtmltopdf —— wkhtmltopdf二進(jìn)制文件所在的位置。默認(rèn)情況下 pdfkit 會嘗試使用 which (在類UNIX系統(tǒng)中) 或 where (在Windows系統(tǒng)中)來判斷.

meta_tag_prefix – pdfkit的前綴指定 meta tags(元標(biāo)簽) - 默認(rèn)情況是 pdfkit-
示例 :針對 wkhtmltopdf不在系統(tǒng)路徑中(不在 $PATH里面):

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

問題

IOError: 'No wkhtmltopdf executable found':

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

IOError: 'Command Failed'

如果出現(xiàn)這個(gè)錯(cuò)誤意味著 PDFKit不能處理一個(gè)輸入。你可以嘗試直接在錯(cuò)誤信息后面直接運(yùn)行一個(gè)命令來查看是什么導(dǎo)致了這個(gè)錯(cuò)誤 (某些版本的 wkhtmltopdf會因?yàn)槎五e(cuò)誤導(dǎo)致處理失敗)

正常生成,但是出現(xiàn)中文亂碼

確保兩項(xiàng):
1)、你的系統(tǒng)中有中文字體
2)、在html中加入**

下面是我隨便寫的一個(gè)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截圖


另也可直接使用:https://pdfcrowd.com/#convertbyinput

總結(jié)

以上是生活随笔為你收集整理的使用 Python 制作属于自己的 PDF 电子书的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 成人亚洲一区二区 | 自拍99| 国产高清黄色 | 黄色网址大全免费 | 欧美日韩一区二区三 | 欧美三根一起进三p | 越南性xxxx精品hd | 天天综合在线视频 | 亚洲乱亚洲乱妇 | 黑人操中国女人视频 | 制服诱惑一区 | 国产清纯白嫩初高中在线观看性色 | 免费污片在线观看 | 国产视频久久久久久久 | 国产第一亚洲 | 亚洲高清福利 | 久久国产一区二区 | 中文字幕av无码一区二区三区 | 黄色大全免费看 | 国产人成无码视频在线观看 | 五月婷婷久久综合 | 2018av在线 | 九九夜| 少妇乱淫36部 | 国产精品青青草 | 波多野结衣乳巨码无在线观看 | 国产www| 亚洲av无码乱码在线观看富二代 | 欧洲成人在线观看 | 69xx欧美| 国产手机在线 | 国产全是老熟女太爽了 | 日本高清视频在线 | 99re国产| 欧美又大又硬又粗bbbbb | 中文字幕一区二区人妻电影 | 成人一二三区 | 国产精品一区二区在线观看 | 99视频网站 | 亚洲综合一二三区 | 公侵犯一区二区三区 | 久久久麻豆 | 久久99免费| 久久99久久99精品免观看粉嫩 | 国产精品 欧美 日韩 | 亚洲20p | 草草影院在线观看视频 | 97免费超碰 | 精品少妇一区二区 | 成人特级片 | 欧美bbbbb性bbbbb视频 | av天天操| 大肉大捧一进一出好爽动态图 | 欧美精品网| 久久精品国产亚洲av无码娇色 | 致单身男女免费观看完整版 | 深夜福利在线播放 | 91原创视频 | 网站免费在线观看 | 国产农村妇女毛片精品 | 正在播放老肥熟妇露脸 | 91亚洲综合 | 99热在线这里只有精品 | 国产视频一区在线观看 | 免费在线观看不卡av | 国内自拍真实伦在线观看 | www.99av | 欧洲精品久久久 | 自拍偷拍欧美激情 | 裸体美女免费视频网站 | 邻居少妇张开腿让我爽了在线观看 | 国产黄频 | 九久久 | 午夜一区二区三区在线 | 日本中文字幕不卡 | 成人亚洲天堂 | 成年人黄国产 | 91性色| www.天堂在线 | 涩涩网站在线观看 | 国产无套精品一区二区三区 | 美女视频在线免费观看 | 国产成a人亚洲精品 | 97超碰在线免费观看 | av男人的天堂在线 | 国产一区二区三区www | 久久夜夜操妹子 | av资源共享| 亚洲一区二区偷拍 | 日本裸体网站 | 日本黄网站 | 日韩av在线一区二区三区 | 国产精品久久久久久久免费看 | 欧美三级少妇高潮 | 黄色一几片 | jiizzyou性欧美老片 | 少妇做爰免费理伦电影 | 日韩欧美视频免费观看 | 国产成人在线免费视频 |