小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

文末福利|使用Python轉(zhuǎn)換PDF,Word/Excel/PPT/md/HTML都能轉(zhuǎn)!

 O聽(tīng)_海_軒O 2020-08-26

往期精選

Python辦公自動(dòng)化|從Word到Excel
Python辦公自動(dòng)化|從Excel到Word
Python辦公自動(dòng)化|對(duì)比文件,光速完成
Python辦公自動(dòng)化|Excel表格,自動(dòng)更新
同一個(gè)操作執(zhí)行兩次,就要考慮自動(dòng)化!

大家好,又到了Python辦公自動(dòng)化專題。

今天講的是各位一定會(huì)接觸到的PDF轉(zhuǎn)換,關(guān)于各種格式的文件轉(zhuǎn)換為PDF有很多第三方工具與網(wǎng)站可以實(shí)現(xiàn),但是使用Python的好處不僅可以批量轉(zhuǎn)換,同時(shí)一旦腳本寫(xiě)完了以后就可以一鍵執(zhí)行,徹底解放雙手,那么本文就來(lái)盤一盤如何使用Python來(lái)將Word/Excel/PPT/Markdown/Html等各種格式的文件轉(zhuǎn)換為PDF!

Word轉(zhuǎn)PDF

Word轉(zhuǎn)PDF應(yīng)該是最常見(jiàn)的需求了,畢竟使用PDF格式可以更方便展示文檔,雖然在Word中可以直接導(dǎo)出為PDF格式,但是使用Python可以批量轉(zhuǎn)換,更加高效。

目前在Python中針對(duì)Word轉(zhuǎn)換為PDF的庫(kù)有很多,比如win32就可以調(diào)用word底層vba,將word轉(zhuǎn)成pdf,或者comtypes等,但是這些常用的庫(kù)僅能在Windows機(jī)器上運(yùn)行,所以為了照顧mac用戶本文使用一個(gè)比較小眾的庫(kù)docx2pdf,看名字就能知道這是專門用于word轉(zhuǎn)pdf,安裝很簡(jiǎn)單

pip install docx2pdf

使用也比win32等庫(kù)更簡(jiǎn)潔,一行代碼導(dǎo)入一行代碼轉(zhuǎn)換即可

from docx2pdf import convert
convert('input.docx''output.pdf')

但是有人就會(huì)說(shuō)雖然簡(jiǎn)單,但是這個(gè)操作word本身就可以完成,好的接下來(lái)放大招,我們可以使用下面的代碼找到當(dāng)前或者指定文件夾下的全部word文件

#查找當(dāng)前目錄下的全部word文件
import os
import glob
from pathlib import Path

path = os.getcwd() + '/'
p = Path(path) #初始化構(gòu)造Path對(duì)象
FileList=list(p.glob('**/*.docx')) 

接下來(lái)只要寫(xiě)一個(gè)循環(huán)就可以將該目錄下的全部word一次性轉(zhuǎn)換為PDF

for file in FileList:
    convert(file,f'{file}.pdf')

就這樣,不到10行代碼,只要一秒,指定文件夾中5份Word就輕松轉(zhuǎn)換為PDF,現(xiàn)在還能使用我們之前自動(dòng)化系列文章寫(xiě)過(guò)的批量合并PDF結(jié)合一鍵合并這5份PDF!

Excel轉(zhuǎn)PDF

Excel轉(zhuǎn)PDF可能平時(shí)用的不多,但是作為Office全家桶中的重要工具,并且轉(zhuǎn)換完的表格可以復(fù)制所以我們也講一下。使用到的工具既不是常用的openpyxl也不是pandas,而是另一個(gè)專門用于處理PDF的庫(kù)fpdf

import pandas as pd
import numpy as np
df_1 = pd.DataFrame(np.random.randn(102), columns=list('AB'))

為了方便講解我們使用Pandas和NumPy來(lái)創(chuàng)建一個(gè)示例數(shù)據(jù)文件,當(dāng)然也可以使用從本地讀取

現(xiàn)在可以使用下面的代碼將這個(gè)表格轉(zhuǎn)換為PDF

from fpdf import FPDF
pdf = FPDF()
pdf.add_page()
pdf.set_xy(00)
pdf.set_font('arial''B'14)
pdf.cell(60)
pdf.cell(7010'Excel to PDF'02'C')
pdf.cell(-40)
pdf.cell(5010'Index Column'10'C')
pdf.cell(4010'A'10'C')
pdf.cell(4010'B'12'C')
pdf.cell(-90)
pdf.set_font('arial'''12)
for i in range(0, len(df_1)):
    col_ind = str(i)
    col_a = str(df_1.A.iloc[i])
    col_b = str(df_1.B.iloc[i])
    pdf.cell(5010'%s' % (col_ind), 10'C')
    pdf.cell(4010'%s' % (col_a), 00'C')
    pdf.cell(4010'%s' % (col_b), 02'C')
    pdf.cell(-90)
pdf.output('Excel2PDF.pdf''F')


,其實(shí)思路和openpyxl類似,遍歷每一個(gè)單元格并寫(xiě)入數(shù)據(jù)只不過(guò)現(xiàn)在是往PDF文件中寫(xiě)入。

PPT轉(zhuǎn)PDF

本節(jié)介紹一下PPT如何轉(zhuǎn)換為PDF,但是我搜了一大圈都沒(méi)有MAC用戶可以實(shí)現(xiàn)的方法,所以只能針對(duì)Windows去操作,使用到的就是在word2pdf中講到的comtypes

import sys
import os
import comtypes.client
#設(shè)置路徑
input_file_path = sys.argv[1]
output_file_path = sys.argv[2]
input_file_path = os.path.abspath(input_file_path)
output_file_path = os.path.abspath(output_file_path)
#創(chuàng)建PDF
powerpoint = comtypes.client.CreateObject('Powerpoint.Application')
powerpoint.Visible = 1
slides = powerpoint.Presentations.Open(input_file_path)
#保存PDF
slides.SaveAs(output_file_path, 32)
slides.Close()

相關(guān)參數(shù)與細(xì)節(jié)可以查閱comtypes官方文檔,因?yàn)槲沂莔ac所以沒(méi)有過(guò)多研究,在成功轉(zhuǎn)換之后就可以和我們之前的批量操作與合并進(jìn)行結(jié)合實(shí)現(xiàn)自動(dòng)化了!

md轉(zhuǎn)pdf

關(guān)于markdown轉(zhuǎn)pdf,幾乎所有markdown編輯器都支持導(dǎo)出為pdf格式,本以為這個(gè)需求并不高,但是研究了一圈發(fā)現(xiàn)很多老外造了很多md轉(zhuǎn)pdf的輪子,比如md2pdf、markdown2pdf、md2pdf-client等。因?yàn)榇蠖鄶?shù)博客使用的是markdown格式,使用這些庫(kù)可以很好的將博客文章批量轉(zhuǎn)換為PDF文檔存儲(chǔ)。

早起都試了一圈,找到一個(gè)語(yǔ)法最簡(jiǎn)單的markdown2pdf3,直接pip安裝即可,使用兩行代碼即可將一個(gè)md文件轉(zhuǎn)換為pdf

from markdown2pdf3 import *
convert_markdown_to_pdf('test.md'#你的markdown文件路徑

但是要注意的是如果有中文,還需要進(jìn)行一些額外的設(shè)置,可以查閱官方文檔,不過(guò)現(xiàn)在就能和之前講的Word轉(zhuǎn)PDF結(jié)合,批量轉(zhuǎn)換指定路徑下的全部markdown文件為pdf,比如可以使用下面的代碼找到當(dāng)前文件夾下的全部md文件

import os
import glob
from pathlib import Path

path = os.getcwd() + '/'
p = Path(path) #初始化構(gòu)造Path對(duì)象
FileList=list(p.glob('**/*.md')) 

html轉(zhuǎn)pdf

關(guān)于html也就是網(wǎng)頁(yè)轉(zhuǎn)為PDF是來(lái)問(wèn)我最多的問(wèn)題,其實(shí)很簡(jiǎn)單,之前在Selenium爬取公眾號(hào)全部文章這篇文章中就提到使用PDFKIT即可,但是并不是直接pip安裝pdfkit就行,我們需要提前進(jìn)入下面的網(wǎng)站選擇自己電腦系統(tǒng)對(duì)應(yīng)的wkhtmltopdf下載安裝

https:///downloads.html

安裝完使用pip安裝pdfkit

pip install pdfkit

現(xiàn)在我們就能使用兩行代碼轉(zhuǎn)換指定網(wǎng)頁(yè)為PDF格式,比如將我的第一篇自動(dòng)化文章轉(zhuǎn)為PDF

看起來(lái)效果還是非常好的,所有格式包括代碼都完整的保存了下來(lái),接下來(lái)怎么做就不用我多說(shuō)了,比如你想下載一個(gè)公眾號(hào)所有文章為PDF格式,那就先將歷史文章URL提取出來(lái),接著使用pdfkit轉(zhuǎn)換即可,而這兩步驟我們都已經(jīng)詳細(xì)講解過(guò)了!

文末說(shuō)兩個(gè)福利

1.本周依舊給常讀與常分享用戶贈(zèng)書(shū),目前分享榜單已經(jīng)送至第八名,也就是本周只要進(jìn)入分享榜單即可獲得贈(zèng)書(shū),本周贈(zèng)書(shū)與爬蟲(chóng)相關(guān),其中包括之前送過(guò)的反爬蟲(chóng)原理與繞過(guò)實(shí)戰(zhàn)

2.當(dāng)當(dāng)網(wǎng)為早起Python讀者申請(qǐng)了一批優(yōu)惠碼【QTX8B8】,使用該優(yōu)惠碼購(gòu)買當(dāng)當(dāng)網(wǎng)自營(yíng)圖書(shū)可以120買300的書(shū),相當(dāng)于4折,如果使用了早起的優(yōu)惠碼購(gòu)書(shū)可以聯(lián)系早小起,將會(huì)在活動(dòng)結(jié)束后進(jìn)行單獨(dú)贈(zèng)書(shū)與免單抽獎(jiǎng)。使用方法與詳情可以點(diǎn)擊進(jìn)入昨天的詳細(xì)推文!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多