📜  如何使用Python将 CSV 文件转换为 PDF 文件?

📅  最后修改于: 2022-05-13 01:54:28.888000             🧑  作者: Mango

如何使用Python将 CSV 文件转换为 PDF 文件?

在本文中,我们将学习如何将 CSV 文件格式转换为 PDF 文件格式。这个简单的任务可以使用两个步骤轻松完成:

  1. 首先,我们使用Pandas将我们的 CSV 文件转换为 HTML
  2. 在第二步中,我们使用 PDFkit Python API 将我们的 HTML 文件转换为 PDF 文件格式。

方法:

1.使用 Pandas Framework 将 CSV 文件转换为 HTML。

Pandas 是一种快速、强大、灵活且易于使用的开源数据分析和操作工具,建立在Python编程语言之上。

使用的 CSV 文件:



对于本教程的这一部分,我们将使用:

  1. pandas.read_csv(): read_csv 是一个重要的 Pandas函数,用于读取 CSV 文件并对其进行操作。我们将使用它来读取我们的输入 CSV 文件。
  2. .to_html():借助DataFrame.to_html()方法,我们可以通过DataFrame.to_html()方法获取数据帧的html格式。该函数以CSV文件作为输入,进行转换,并保存到本地以 HTML 文件格式。

使用的 HTML 文件: MyCSV

2.使用 PDFKit Python API 将 HTML 文件转换为 CSV



在Python有很多生成 PDF 的方法。 pdfkit 是更好的方法之一,因为它将 HTML 呈现为具有各种图像格式、HTML 表单和其他复杂可打印文档的 PDF。

我们可以通过 3 种方式使用 pdfkit 创建 PDF 文档。他们是 :

  • 来自网址
  • 来自 HTML 文件
  • 从字符串。

2.1.从 URL 生成 PDF:以下脚本为我们提供了来自网站 URL 的 pdf 文件。

import pdfkit
pdfkit.from_url('http://www.geeksforgeeks.org', 'Output.pdf')

2.2.从文件生成 PDF:以下脚本为我们提供了来自 HTML 文件的 pdf 文件。

import pdfkit
pdfkit.from_file('LocalHTMLFile.html', 'Output.pdf')

2.3.生成字符串PDF:下面的脚本让我们从一个字符串的PDF文件。

import pdfkit
pdfkit.from_string('Geeks For Geeks', 'Output.pdf')

由于我们已经将 CSV 文件转换为 HTML,我们将使用第一种方法,即从 URL 生成 PDF,其中我们可以提供任何网站的地址或任何本地 HTML 文件。

如果已经在机器上安装了 wkhtmltopdf,我们可以直接使用以下语法:

否则,我们还需要安装 wkhtmltopdf 以使脚本在我们的 PC 上运行,并将安装的文件 wkhtmltopdf.exe 的路径设置为我们的 PC 的环境变量,我们现在可以跳过脚本中的配置部分。

或者

我们也可以为已安装的 wkhtmltopdf.exe 文件设置配置,并将配置变量传递给 pdfkit.from_url函数:

路径配置

path_wkhtmltopdf = r'D:\Softwares\wkhtmltopdf\bin\wkhtmltopdf.exe'

config = pdfkit.configuration(wkhtmltopdf=path_wkhtmltopdf)

使用 pdfkit 将 HTML 文件转换为 PDF

pdfkit.from_url(“MyCSV.html”, “FinalOutput.pdf”, configuration=config)

执行:

文件夹中的初始文件

文件夹中的初始文件

Python
import pandas as pd
import pdfkit
  
# SAVE CSV TO HTML USING PANDAS
csv = 'MyCSV.csv'
html_file = csv_file[:-3]+'html'
  
df = pd.read_csv(csv_file, sep=',')
df.to_html(html_file)
  
# INSTALL wkhtmltopdf AND SET PATH IN CONFIGURATION
# These two Steps could be eliminated By Installing wkhtmltopdf -
# - and setting it's path to Environment Variables
path_wkhtmltopdf = r'D:\Softwares\wkhtmltopdf\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkhtmltopdf)
  
# CONVERT HTML FILE TO PDF WITH PDFKIT
pdfkit.from_url("MyCSV.html", "FinalOutput.pdf", configuration=config)


在Python脚本之上运行后:

运行 Python 脚本后同一目录中的文件

最终输出: