摘要:制作電子書準備制作電子書使用的是的這個庫,是的封裝包,因此在安裝這個之前要安裝安裝下,不過這里安裝的時候可能對應的版本不同,會出現錯誤,如果不行的話還請自己百度下,我安裝的時候是可以的下的用戶直接到官網下載穩定版本,然后直接安裝即可,但是
python制作pdf電子書 準備
安裝wkhtmltopdf制作電子書使用的是python的pdfkit這個庫,pdfkit是 wkhtmltopdf 的Python封裝包,因此在安裝這個之前要安裝wkhtmltopdf
python安裝依賴包sudo apt-get install wkhtmltopdf (ubantu下,不過這里安裝的時候可能對應的版本不同,會出現錯誤,如果不行的話還請自己百度下,我安裝的時候是可以的)
windows下的用戶直接到wkhtmltopdf官網下載穩定版本,然后直接安裝即可,但是安裝之后需要注意的是一定要將其添加到環境變量中,否則會出現找不到路徑的問題
pdfkit的用法 初級了解函數以下都是我們需要用到的庫
pip install requests
pip install BeautifulSoup4
pip install pdfkit
進階pdfkit.from_url([url,],"demo.pdf") 這個是直接傳入一個url或者一個url列表,然后通過這個函數直接將其網頁轉換成demo.pdf,注意這里只能轉換靜態文本,如果使用js一些腳本的話是不能直接轉換的
pdfkit.from_string("
這個是直接講一個字符串轉換成pdf格式的電子書,里面可以直接傳一個字符串,也可以用html標簽包裹這個字符串
pdfkit.from_file([file_name,],"demo.pdf") 這個是直接傳入一個文件或者一個列表即是多個文件,不過這里傳入的文件一般都是html格式的文件
options當然知道這個是多么枯燥,生成的電子書書也不能添加各種的樣式,下面我們將會介紹一些添加的樣式的方法
這個參數是上面函數的可選參數,其中制定了一些選項,詳情請見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", "custom-header": [ ("Accept-Encoding", "gzip") ], "cookie": [ ("cookie-name1", "cookie-value1"), ("cookie-name2", "cookie-value2"), ], "outline-depth": 10, }cover
這個參數是用來制作封面的,也是函數中的一個參數,如果想要實現的話可以先寫一個html文本,在其中嵌入幾張圖片或者文字作為封面,然后寫入出傳入函數即可
options = { "page-size": "Letter", "margin-top": "0.75in", "margin-right": "0.75in", "margin-bottom": "0.75in", "margin-left": "0.75in", "encoding": "UTF-8", "custom-header": [ ("Accept-Encoding", "gzip") ], "cookie": [ ("cookie-name1", "cookie-value1"), ("cookie-name2", "cookie-value2"), ], "outline-depth": 10, } cover="demo.html" pdfkit.from_file("demo.html","demo.pdf",cover=cover,options=options)css
這里的css也是函數中的一個可選參數,這個參數主要的作用作用就是在其中定義自己喜歡的樣式,當然這里也可以傳入一個列表,定義多個樣式css文件,當然沒有這個參數也可以實現定義自己的樣式,只需要在自己的html模板中定義內嵌的樣式,或者直接用引用外面的樣式即可,本人親試是可以的,具體的使用如下
css="demo.css" pdfkit.from_file("demo.html","demo.pdf",options=options,cover=cover,css=css)注意
這里生成pdf的時候可能出現中文的亂碼,請一定在html模板開頭指定字體utf-8->
可能在爬取生成的時候會出現ascii錯誤,只需要在py文件開頭寫下:
import sys import threading reload(sys) sys.setdefaultencoding("utf8")
實戰寫入文件的時候不想python3一樣可以指定編碼格式,這里我使用的是codecs庫,可以向python3一樣指定其中的編碼格式
注意本人爬了廖雪峰老師的python2.7的教程,并且做成了電子書,截圖如下
參考文章這里并沒有使用框架,如果有興趣的朋友可以用框架寫一個爬取全站的
這里的主要用到的是BeautifulSoup和requests,詳情可以看我的博客中的BeautifulSoup用法,后續還會更新requests的用法
源代碼請見https://github.com/chenjiabing666/liaoxuefeng_pdfkit
更多文章請移步本人博客https://chenjiabing666.github.io/http://mp.weixin.qq.com/s/LH8nEFfVH4_tvYWo46CF5Q
http://www.cnblogs.com/taceywong/p/5643978.html
http://beautifulsoup.readthedocs.io/zh_CN/latest/#id44
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44366.html
摘要:是一個基于的命令行工具,可使用和來制作精美的電子書,并非關于的教程。使用制作電子書,必備兩個文件和。今天,我就教大家如何使用快速制作應用,該應用是基于鏡像制作,可以隨意運行在任何一個安裝有的主機上。首先安裝安裝完成后,地址欄輸入即可訪問。 GitBook 是一個基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 來制作精美的電子書,GitBook 并...
摘要:其頁面如下那么我們是否可以通過來制作爬蟲來幫助我們實現自動下載這些電子書呢答案是筆者在空閑時間寫了一個爬蟲,主要利用函數和多線程來下載這些電子書。 ??近段時間,筆者發現一個神奇的網站:http://www.allitebooks.com/ ,該網站提供了大量免費的編程方面的電子書,是技術愛好者們的福音。其頁面如下: showImg(https://segmentfault.com/i...
摘要:基于轉換的電子書閱讀插件部分項目一般都是以插件閱讀文件,但存在閱讀體驗不理想的情況,所以參考手機上的電子書閱讀器,使用國外的鏈接描述制作電子書示例。 基于HTML5轉換PDF的電子書閱讀插件 html5部分 項目一般都是以pdf.js插件閱讀PDF文件,但存在閱讀體驗不理想的情況,所以參考手機上的電子書閱讀器,使用國外的鏈接描述http://fliphtml5.com制作電子書示例。...
摘要:在知乎上,你一定關注了一些不錯的專欄比如的編程教室。有需要的請在公眾號里回復爬蟲實戰源碼下載獲取知乎專欄下載器源碼,請在公眾號的編程教室里回復關鍵字知乎除了代碼外,本專欄打包好的也一并奉上,歡迎閱讀與分享。 老是有同學問,學了 Python 基礎后不知道可以做點什么來提高。今天就再用個小例子,給大家講講,通過 Python 和 爬蟲 ,可以完成怎樣的小工具。 在知乎上,你一定關注了...
閱讀 2812·2021-11-24 09:39
閱讀 3381·2021-11-19 09:40
閱讀 2253·2021-11-17 09:33
閱讀 3744·2021-10-08 10:04
閱讀 3035·2021-09-26 09:55
閱讀 1656·2021-09-22 15:26
閱讀 919·2021-09-10 10:51
閱讀 3116·2019-08-30 15:44