PDFデータを出すって言ってPythonコードを出された側の気持ちたるや
CopilotさんがPDFで出すって言い出した


印刷用ガイドを作成しました。
⬇️ 以下のカードからPDFファイルをダウンロードできます。
て来たんだけど、カードがない。
メッセージの上に『私の考えを見る』
「これかな?」と押したところでPythonコードが出ただけだった。

ということで
CopilotからもらったPythonデータをPDFにするよ!
Copilotに確認してみた


そもそも「PDFにして」なんて、一言も言ってない件
オラぁ「印刷する」って言っただけだよおおお
親切から来た余計なお世話で、足掛け払いを食らった気持ち。

『私の考えを見る』はスマホからで、PC版Copilotでは『自分の思考を見る』。
なんだかAndroid版の方が賢い気がする。
CopilotからもらったPythonコードをPDFにする方法
以降、Windows使いの自分ベースでの話です。
とはいえ、Linux/macユーザの役に立たないかと聞かれたら、まぁ、使えないこともないです。人によります。
CopilotのPythonコードを保存
Pythonファイルを作成する
『C:\www\test』など、適当に実行しやすい場所を用意する。
そこで『右クリック』→『新規作成』→『テキストドキュメント』で
『test.py
』など、打ち込みやすい名前をつけて保存する。
今回の環境例
保存ディレクトリ:C:\www\test
保存ファイル名:test.py
test.py.txt
みたいに『.txt』が付いたら、『名前の変更』でその部分は消して下さい。2個もらったコード、ほぼ同じ
文章の途中で改行されている部分が、
実際に改行されているか、改行コード(\n
)になっているかくらい。
実際『改行』になってるものは確実にエラーになる。
なので、改行コード(\n
)になっている方を使うことをオススメします。
ソースを一部修正する
つまるところ『パスを無くす』処理。
フォント指定
# Register fonts pdf.add_font('Japanese', '', '/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf', uni=True) pdf.set_font('Japanese', '', 12)
これがフォントを指定している部分なのだけど
pdf.add_font('Japanese', '', '/usr/share/fonts/opentype/ipafont-gothic/ipag.ttf', uni=True)
を⇩下記に変更する
pdf.add_font('Japanese', '', 'ipag.ttf', uni=True)
保存場所指定
# Save PDF output_path = '/mnt/data/保存ファイル.pdf' pdf.output(output_path) print(f"PDFガイドを保存しました: {output_path}")
これが保存している部分なのだけど
output_path = '/mnt/data/保存ファイル.pdf'
を⇩下記に変更する
output_path = './保存ファイル.pdf'
フォントの準備
PythonのPDF、日本語フォント指定しないと文字出ないから、準備が要る。
フォントをダウンロード
公式サイトからZIPファイルをダウンロードする。

TTFファイルが欲しいのだけど、どれか分からないから4種セットをダウンロード。
フォントを設置
ダウンロードしたZIPを解凍して、必要なTTFを先ほど作ったPythonファイルと同じ場所に置く。
例で言えば『C:\www\test』
先ほど修正した.pyファイルに『ipag.ttf』とあった通り『ipag.ttf』を置く
Pythonとプラグインをインストール
めんどくさがりWindows使いはストアへ行けー
※東大へ行けーのノリの阿部寛ボイスで⇧
めんどくさがりは、Microsoft Storeをお使い下さい。
■4つメニューか、🔍️から『すとあ』で出てくる『白めの買い物バック』みたいなアイコン⇩のものです。
めんどくさがり以外も

て人は、迷わず使って下さい。

自動でパスを通してくれない。
すっとすぐにコマンドから使えんので、正直めんどくさい。
コマンドプロンプトからプラグイン入れる
コマンドプロンプトを起動
🔍️から『こまんど』で出てくる黒いこんな感じ⇩のアイコンです。
1個1個、打ち込んではEnter↵(ッターン)して、お待ち下さい。
pip install reportlab
pip install fpdf
pip install fpdf2
いざ実行
コマンドプロンプトを起動
🔍️から『こまんど』で出てくる黒いこんな感じ⇩のアイコンです。
保存場所まで移動
保存したPythonファイルがある場所まで移動します。
cd 保存したディレクトリ
GUIじゃないからめんどくさいね
例に合わせるならこう⇩
cd C:\www\test
PDF化実行
Pythonで.pyファイルを実行する。
Python 実行ファイル.py
例に合わせるならこう⇩
Python test.py
するとディレクトリにPDFファイルが出来ている。
あとはもうWindowsで確認できるから、普通に読んでみてほしい。
苦労した割に、微妙な結果

なーんて言っておいてさ
文字が重なりまくり、表の枠からはみ出まくり、印刷範囲から抜けまくり。
一言でいうと、読めたもんじゃねえ。
まぁ、プログラムで作ったらなるあるある
納得の結末ではあったよね
時間がなくて、さっさと使うためにまとめをお願いしたのに、
実行して結果を確認、ブログにまとめて3時間。
本末転倒感は否めない。

次からは『notion用に出力して』ってお願いしようと思います。かしこ
おまけ:PythonでPDFコード
Copilotはこんな感じのPythonファイルを作ってくるよ例
きっとPythonでPDF初心者は欲しいと思って…。
今回作った環境で、すぐ実行できるように一部修正済み。

from fpdf import FPDF import os pdf = FPDF() pdf.add_page() # Register fonts pdf.add_font('Japanese', '', 'ipag.ttf', uni=True) pdf.set_font('Japanese', '', 12) # Title pdf.set_font_size(16) pdf.cell(0, 10, 'ファイル保存テスト用', ln=True, align='C') pdf.set_font_size(12) pdf.ln(5) # Table header pdf.set_font_size(14) pdf.cell(0, 10, 'テーブルで出してみた例', ln=True) pdf.set_font_size(12) # Table columns columns = ['サービス', '内容', 'XXX', 'YYY', 'ZZZ'] col_widths = [30, 50, 30, 30, 50] pdf.set_fill_color(200, 220, 255) for i, col in enumerate(columns): pdf.cell(col_widths[i], 8, col, border=1, align='C', fill=True) pdf.ln() # Table rows rows = [ ['ココナラ', '自分でサービス販売する場所作れる', 'なんやかんやなんやかんや', 'もげもげもげもげ', 'プロフィールと実績の見せ方が重要'], ['クラウドワークス', '依頼を受けたり依頼をしたり', '昔むかし浦島が助けた亀に連れられて', 'なんやかんやなんやかんや', '単価と作業時間のバランスに注意'], ['メルカリ', '不用品販売したりハンドメイド販売したり', 'もげもげもげもげ', '鉞担いだ金太郎、熊に跨がりお馬の稽古', '送料・梱包・価格設定に注意'] ] for row in rows: for i, item in enumerate(row): pdf.cell(col_widths[i], 8, item, border=1) pdf.ln() pdf.ln(5) # Save PDF output_path = './保存ファイル.pdf' pdf.output(output_path) print(f"PDFガイドを保存しました: {output_path}")
コメント