python word转pdf准确率高吗_Python能把word转PDF!还有一招哦,把HTML转PDF呢!

然后扩散一下之前一个比赛的结果(华章计算机抖音大赛)。

顺便谈谈自己对今后送书的一个想法。

另外之前的送书活动,有中奖的读者没有联系我,所以这回一并送出。

明天还会送两本书,大家也可以关注一下。

/ 01 / HTML转PDF

主要用到的库有pdfkit及wkhtmltopdf。

安装我就不说了,网上也是一堆教程,通过下面的代码也能略知一二。

需要注意的点就是,把网页转PDF的时候,需要将网页的图片下载下来,保存在本地。

然后生成网页时调用本地的图片,这样就不会出现在PDF中图片缺失的情况。

本次没有去设置详细的PDF参数,所以生成的PDF排版并不是很友好,不过还是能凑合看的。

具体转换代码如下。

完整代码加群:683380553 获取!

import pandas as pd

import requests

import pdfkit

import os

import re

读取数据并清洗

df = pd.read_csv(‘article.csv’, header=None, names=[‘title’, ‘digest’, ‘article_url’, ‘date’], encoding=’gbk’)

df[‘date’] = pd.to_datetime(df.date.values, unit=’s’, utc=True).tz_convert(‘Asia/Shanghai’)

df_date = df[‘date’].astype(str).str.split(‘ ‘, expand=True)

df[‘day’] = df_date[0]

获取目录的绝对路径

fileDir = os.path.abspath(os.path.dirname(‘F:\article_pdf’))

headers = {

“User-Agent”: “Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 MicroMessenger/6.5.2.501 NetType/WIFI WindowsWechat QBCore/3.43.901.400 QQBrowser/9.0.2524.400”,

}

proxies = {

“https”: None,

“http”: None,

}

设置转PDF参数

options = {

“page-size”: “Letter”,

“encoding”: “UTF-8”,

“custom-header”: [

(“Accept-Encoding”, “gzip”)

]

}

调用wkhtmltopdf

confg = pdfkit.configuration(wkhtmltopdf=r”C:\Users\Administrator\wkhtmltox-0.12.5-1.mxe-cross-win64\wkhtmltox\bin\wkhtmltopdf.exe”)

for title, url, date in zip(df[‘title’], df[‘article_url’], df[‘day’]):

print(title, url, date)

# 替换特殊符号

title = re.sub(‘[/::?”<>|]’, ”, title)

title = title.replace(‘\’, ‘‘)

# html文件名

html_name = ‘{}/{}.html’.format(‘F:\article_pdf’, date + ‘‘ + title)

res = requests.get(url, headers=headers, proxies=proxies, timeout=3)

html = res.text

# 用?来控制正则贪婪和非贪婪匹配;(.?) 小括号来控制是否包含匹配的关键字

pattern = re.compile(r’data-src=”http.?”‘)

result = pattern.findall(html)

picCnt = 0

for i in result:

picCnt = picCnt + 1

url = re.findall(r'”(.?)”‘, i)[0]

# 图片名

picture_name = ‘{}/{}.png’.format(‘F:\article_pdf’, str(picCnt))

# 调用本地图片

html = html.replace(url, picture_name)

# 获取图片内容

r = requests.get(url)

with open(picture_name, “wb+”) as f:

f.write(r.content)

# 保存html文件

html = html.replace(‘data-src’, ‘src’)

fd = open(html_name, ‘w’, encoding=”utf-8″)

fd.write(html)

fd.close()

pdf_name = ‘{}/{}.pdf’.format(‘F:\article_pdf’, date + ‘_’ + title)

try:

# html转pdf

pdfkit.from_file(html_name, pdf_name, options=options)

except:

pass

私信小编001 获取详细教程!

最后成功生成所有文章的PDF。

image

这里不知是为何,生成PDF的时间挺长的,平均一个PDF耗时三分钟。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值