主页 > 知识库 > python pdfkit 中文乱码问题的解决方案

python pdfkit 中文乱码问题的解决方案

热门标签:电话运营中心 客户服务 硅谷的囚徒呼叫中心 呼叫中心市场需求 语音系统 百度AI接口 Win7旗舰版 企业做大做强

使用python pdfkit生成pdf文件中遇到中文乱码问题

1.生成的文件名不能带有中文字符

2.生成的pdf内容中文为乱码

生成的文件名不能带有中文字符

解决方法:

我暂时想到的处理方式是先生成英文文件名,再将这个文件重命名为中文的文件名

#coding=utf8
import os
import pdfkit
from uuid import uuid1
ret = 'html>head>meta charset="UTF-8">/head>body>h1>测试pdf内容部分/h1>/body>/html>'.decode('utf8')
file_name = str(uuid1())
pdfkit.from_string(ret, file_name) # file_name不能带有中文 如果有会报错
file_name_new = '测试.pdf'
os.rename(file_name, file_name_new)

生成的pdf内容中文为乱码

原因1:

因为pdfkit生成pdf功能其实调用的是webkit的子模块wkhtmltopdf(通过命令行方式),所以pdfkit生成中文乱码其实是wkhtmltopdf中文乱码导致的;而wkhtmltopdf中文乱码是因为系统中不存在中文字体导致的

解决方法:

在系统中添加中文字体

我的本地电脑是ubuntu14.04的字体文件保存在/usr/share/fonts下(包含了中文字体文件具体哪一个我也不知道汗。),我的服务器是redhat系统(没有中文字体),所以在我的电脑上操作如下:

cd /usr/share/fonts
zip -r fonts.zip ./*
scp fonts.zip 服务器用户名@服务器ip:/usr/share/fonts

在服务器上操作如下:

cd /usr/share/fonts
unzip fonts.zip
fc-cache -fv
fc-list # 查看新添加的字体

你需要找一台有安装了中文字体的电脑复制一份字体文件(就是/usr/share/fonts下的文件),然后如我以上操作就可以了。

原因2:

需要在html的字符集设置为utf8

head>meta charset="UTF-8">/head>

补充:python写入html文件中文乱码-解决办法

使用open函数将爬虫爬取的html写入文件,有时候在控制台不会乱码,但是写入文件的html中的中文是乱码的

案例分析

看下面一段代码:

# 爬虫未使用cookie
from urllib import request
if __name__ == '__main__':
 url = "http://www.renren.com/967487029/profile"
 rsp = request.urlopen(url)
 html = rsp.read().decode()
 with open("rsp.html","w")as f:
 # 将爬取的页面
 print(html)
 f.write(html)

看似没有问题,并且在控制台输出的html也不会出现中文乱码,但是创建的html文件中

解决方案

使用open方法的一个参数,名为encoding=” “,加入encoding=”utf-8”即可

# 爬虫未使用cookie
from urllib import request
if __name__ == '__main__':
 url = "http://www.renren.com/967487029/profile"
 rsp = request.urlopen(url)
 html = rsp.read().decode()
 with open("rsp.html","w",encoding="utf-8")as f:
 # 将爬取的页面
 print(html)
 f.write(html)

运行结果

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文章:
  • python解析PDF程序代码
  • python实现csdn全部博文下载并转PDF
  • Python合并多张图片成PDF
  • Python提取PDF指定内容并生成新文件
  • 详解用Python把PDF转为Word方法总结
  • python操作mysql、excel、pdf的示例
  • python 三种方法提取pdf中的图片
  • Python实现给PDF添加水印的方法
  • Python读取pdf表格写入excel的方法
  • Python 多张图片合并成一个pdf的参考示例

标签:济南 山西 长沙 山西 喀什 安康 崇左 海南

巨人网络通讯声明:本文标题《python pdfkit 中文乱码问题的解决方案》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266