表題の通りでハマったのでメモ。
PDFKitはPythonからPDFファイルを生成するためのライブラリです。もととなるHTML、あるいはURLからPDFファイルを生成することができます。
しかし、このPDFKit、場合によってHostNotFoundError
というエラーを吐くことがあります。Tracebackを見ても手掛かりらしい情報が見つからないので難儀しました。
ただこれ、原因は以下のどちらか(あるいは両方)です。
- 元となるHTMLにリンク切れのリソースがある
- 元となるHTMLに「゛」などの特殊な文字が含まれる
もし、PDFKitに通す前のHTMLファイルが残せるようであったら、そちらを確認してみましょう。リンク切れの画像などはないでしょうか?あればリンクを修正するか、そのリンクを消すようにしてみてください。
後者の方は特に、macOSなどの環境からファイルを受け取ったときに注意が必要です。macOSは、「ガギグゲゴ」等の濁点つき文字を「カキクケコ」+「゛」という二文字で表す場合があるようで、これらがHTMLファイルの名前に含まれていると、上記エラーを吐いてしまう場合があるようです1。
どうしてもmacOSからファイルを受け取らなければいけないときなどは、上記のような問題が起こらないように気をつけるようにしましょう(まあ、英語だけを使うように強制するとかができれば、楽なんでしょうが…)。
-
濁点文字について、軽く調べたらこんな記事もありました macOSの濁点問題について - Qiita ↩