見出し画像

『退屈なことはPythonにやらせよう』15章 PDFとWordの操作のらくがき帳📝

こんにちは。aliceです。
まだまだ暑い日が続きますが、涼しいと感じるときが増えました。
これからは朝にあたたかいお茶を飲む時期になるのだなーと思うとちょっと嬉しいです。

ホッとしましょう🍵

さて、今回はPDFとWordの操作のらくがき帳です。
いつものように、WordはWordでやりたいので、まぁ見なかったことにして、PDFで遊びました。

Wordの見出しとか、実はあまり使っていません(スルー対象)

でもPDFの操作は楽しくて、もれなく沼から抜け出せなさそうになりました。なので、あっさりと通過することにしました。

退屈Pythonすごろく?も、いろんな沼が用意されていて楽しいですね。


前回のらくがき帳📝


では、以下らくがきです。


15章 英語版🔤


GitHub💖


15.1.1 PDFからテキストを抽出する


本ではPyPDF2ライブラリを使っていますが、PyMuPDFライブラリを使ってみました。

import fitz

file_name = 'recipe.pdf'
doc = fitz.open(file_name)
text = ''
for page in doc:
    text += page.get_text()

print(text)


テキストを抽出しました📝


15.1.3.4 PDFを暗号化する


パスワードにも種類があることを知りました。
*ユーザーパスワード:PDFの編集権限を可能にするもの
*オーナーパスワード:印刷やコメント、テキスト抽出などを可能にするもの

PDFを印刷不可設定で作成するということをやりたかったのでやってみました。
できたけど沼りました。

import fitz

# 処理対象のPDFファイル名を指定します
file_name = 'recipe.pdf'

# アクセス許可設定のための変数です。
# accessibility関連のアクセス許可を与えることを意味します
# https://pymupdf.readthedocs.io/en/latest/vars.html#document-permissions
permission = fitz.PDF_PERM_ACCESSIBILITY

# 暗号化方法の設定のための変数です。
# 256ビットAES暗号化を使用することを指定します
# https://pymupdf.readthedocs.io/en/latest/vars.html#document-encryption
encryption = fitz.PDF_ENCRYPT_AES_256

# PDFファイルを開きます
doc = fitz.open(file_name)

# 新しいPDFファイルを保存します
# owner_pw は所有者パスワードを設定します。必要に応じて変更してください
# encryption で暗号化方法を指定し、permissions でアクセス許可を指定します
doc.save('recipe2.pdf', owner_pw='password', encryption=encryption, permissions=permission)


印刷できなくなりました。


15.2 プロジェクト:多数のPDFから指定したページを結合する


複数のPDFファイルの2ページ以降を結合します。
PDFの操作はPyShimpleGUIを使うといろんなことができそうですね。
この本が終わったらやってみたい😃

from pathlib import Path

import fitz  # PyMuPDFのモジュール

# PDFファイルを取得したいディレクトリのパスを指定
dir_path = r'C:\my_python\boring_stuff_with_python\15pdf\pdf'
directory_path = Path(dir_path)

# 指定したディレクトリ内のすべてのPDFファイルを取得
input_pdf_files = list(directory_path.glob("*.pdf"))

# 出力するPDFファイルのパスを指定
output_pdf_path = "output.pdf"

# ページを追加する新しいPDFドキュメントを作成
output_pdf = fitz.open()

# 各入力PDFファイルからページを読み込んで新しいPDFに追加
for input_pdf_path in input_pdf_files:
    input_pdf = fitz.open(input_pdf_path)
    output_pdf.insert_pdf(input_pdf, from_page=1)  # 1ページ目から最後までを追加
    input_pdf.close()

# 新しいPDFファイルを保存
output_pdf.save(output_pdf_path)
output_pdf.close()

print('完了しました')


15.3.1 Word文書を読み込む


Word文書をPDFにします。
docx2pdfライブラリを使いました。

import docx2pdf

# Word文書をPDFに変換する
docx_file = "腸活レシピ.docx"  # 変換したいWord文書のファイル名を指定
docx2pdf.convert(docx_file)

あっさりです。

これを仕事中にやって「むーん」となった話をそのうちnoteに書きたいです。


つづき。


この記事が気に入ったらサポートをしてみませんか?