有什么方法可以将庞大的CSV文件拆分为多个PDF?

时间:2019-08-02 14:55:22

标签: python windows pandas read.csv

我正在尝试将一个大型CSV文件拆分为几个较小的PDF文件。在生成PDF时需要一些帮助。

我可以将其拆分为多个CSV或html文件。但不确定是否存在将数据框直接转换为PDF或将HTML转换为PDF的方法。我在这里

import pandas as pd
import glob

path = r'C:\Users\ZhangZ01\Desktop\test\NT_combine.csv'
csv = glob.glob(path + "/*.csv")
df = pd.read_csv(path, index_col= None, header=0)
## Split data by "CUSTOMER_ID"
for i, g in df.groupby('CUSTOMER_ID'):
    g.to_html(r'C:\Users\ZhangZ01\Desktop\test\{}.html'.format(i), header=True, index_names = False)

我在网上做了一些搜索,有人说我可以使用pdfKit,但Windows用户似乎无法使用它。

我该如何解决问题?

2 个答案:

答案 0 :(得分:1)

pdfKit也可用于Windows,您所需要做的就是:

1:pip安装pdfKit

2:然后转到this link下载pdfKit工作所需的 wkhtmlox 的合适版本

3:将PATH_OF_wkhtmlox / bin添加到您的sys变量路径

然后我在您的python脚本中添加以下行:

pdfkit.from_url('your-url.html', 'your_pdf.pdf')

别忘了import pdfkit

答案 1 :(得分:0)

我不知道您是否绝对需要从html转换,但如果不需要,则可以使用fpdf:

from fpdf import FPDF

data = [
  ["hello there", 3, 12],
  ["something", 312, 66],
  ["earsfg", 303, 95],
  ["earsfg", 303, 95],
  ["earsfg", 303, 95],
]

# prepare pdf
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=18)

# write some data
for idx, line in enumerate(data):
  lineStr = "[{0}] {1}, {2}".format(line[0], line[1], line[2])
  pdf.cell(200, 8, txt=lineStr, ln=1, align="L")  

pdf.output("output.pdf")

还有更深入的教程here