LoginSignup
1
0

PythonでCSVファイルをPDFドキュメントに変換する方法

Posted at

CSVは構造化データをシンプルなテキスト形式で保存および交換するのに優れていますが、プレゼンテーションやフォーマット機能が不足しています。一方、PDFは異なるデバイスやプラットフォーム間で一貫した視覚表現を保証し、画像やハイパーリンクの埋め込みが可能で、簡単に共有、印刷、アーカイブできます。さらに、PDFは暗号化オプションを通じてより高いレベルのセキュリティを提供し、機密データの配布に適しています。Pythonを使用することで、この変換プロセスを自動化し、ワークフローの生産性とドキュメント管理の柔軟性を向上させることができます。本記事では、Pythonコードを使用してCSVファイルをPDFドキュメントに変換する方法について説明します。

この記事で使用する方法には、Spire.XLS for Pythonが必要です。PyPIからインストールできます:pip install Spire.XLS

無料ライセンスを申請する

PythonでCSVをPDFに変換する

このライブラリを使用すると、Workbook.LoadFromFile()メソッドを使ってCSVファイルを読み込み、Workbook.SaveToFile()メソッドを使ってPDFドキュメントとして保存できます。
CSVファイルにはフォーマット設定が含まれていないため、適切にフォーマットされた変換結果を得るために、行や列の自動調整などの基本的なフォーマットを行ってからPDFドキュメントとして保存することをお勧めします。
Pythonを使用してCSVファイルをPDFドキュメントに変換する具体的な手順は以下の通りです:

  1. 必要なモジュールをインポートします。
  2. Workbookクラスのオブジェクトを作成し、Workbook.LoadFromFile()メソッドを使用してExcelファイルを読み込みます。
  3. Workbook.Worksheets.get_Item()メソッドを使用して最初のシートを取得します。
  4. CSVファイルを1ページのPDFに変換するために、変換モードをSheetFitToPageに設定します。
  5. 変換結果を改善するために基本的なフォーマット設定を行います。
  6. Workbook.SaveToFile()メソッドを使用してCSVファイルをPDFドキュメントとして保存します。
  7. リソースを解放します。

コード例

from spire.xls import *
from spire.xls.common import *

# Workbookオブジェクトを作成
workbook = Workbook()

# CSVファイルを読み込む
workbook.LoadFromFile("Sample.csv", ",")

# 最初のシートを取得
sheet = workbook.Worksheets.get_Item(0)

# CSVファイルを1ページのPDFに変換するためにページフィッティングを設定
workbook.ConverterSetting.SheetFitToPage = True

# フォント形式を設定
sheet.AllocatedRange.Style.Font.FontName = "HarmonyOS Sans SC"
sheet.AllocatedRange.Style.Font.Size = 12

# 行と列の自動調整
sheet.AllocatedRange.AutoFitRows()
sheet.AllocatedRange.AutoFitColumns()

# CSVファイルをPDFファイルとして保存
workbook.SaveToFile("output/CSVtoPDF.pdf", FileFormat.PDF)
workbook.Dispose()

結果
PythonでCSVをPDFに変換

この記事では、Pythonを使用してCSVファイルをPDFドキュメントに変換する方法を示しています。

その他のスプレッドシート処理スキルについては、Spire.XLS for Pythonのチュートリアルをご覧ください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0