PDFの例:「スミス#00 $ Consolidated_Performance.pdf」- Pythonの
目標は、ファイル名に基づいて、各PDFのページ1にブックマークを追加することです。
(例のブックマーク名は「連結業績」になります)
import os
from openpyxl import load_workbook
from PyPDF2 import PdfFileMerger
cdir = "Directory of PDF" # Current directory
pdfcdir = [filename for filename in os.listdir(cdir) if filename.endswith(".pdf")]
def addbookmark(f):
output = PdfFileMerger()
name = os.path.splitext(os.path.basename(f))[0] # Split filename from .pdf extension
dp = name.index("$") + 1 # Find position of $ sign
bookmarkname = name[dp:].replace("_", " ") # replace underscores with spaces
output.addBookmark(bookmarkname, 0, parent=None) # Add bookmark
output.append(open(f, 'rb'))
output.write(open(f, 'wb'))
for f in pdfcdir:
addbookmark(f)
個々のPDFファイルに適用された場合、UDFが正常に動作しますが、の下部にあるループに入れたときに、それは、ブックマークを追加しませんコード。 pdfcdir内のすべてのPDFをUDFループする方法に関するアイデアはありますか?
確かに1つだけの質問です。 UDFとは何ですか? – kindall
@kindall私はそれは[ユーザー定義の関数](https://en.wikipedia.org/wiki/User-defined_function)ですが、正しく使用されていない可能性があります。この質問と関連して、 'output.append(open(f、 'rb'))'と 'output.write(open(f、 'wb'))'はあまり意味がありません。 – roganjosh
ああ。オハイオ州で育った私は、United Dairy Farmersを考えていた。 – kindall