PDFのリネームに便利なPDF Library(Python製)
最近PDFファイルのをダウンロードを頻繁にしていたのですが、その整理に困っていました。
何とかならないかといろいろ探したのですが、便利なものを見つけたので紹介します。
このソフトはPDFのテキスト部分を抜き出して表示することにより、簡単にファイルをタイトルと著者の名前がついたフォルダに仕分けできるというものです。
さらに、そのフォルダにはテキスト部分を抜き出したテキストファイルも生成されます。作者の方はもともとGoogle Desktopのインデックス用に開発したようです。
使い方は
- 起動後にPDFファイルをドラッグ&ドロップすると、最初のテキスト部分が表示されます。
- タイトル、著者名と思われる部分を選択します(手動入力も可)。
- Add PDFを押すと、「著者名;タイトル」のフォルダができ、その中にテキスト部分のファイルとリネームされたPDFが入り、元々のPDFは削除されます。
ただ私はリネーム機能があればいいので、少し改造しました。OnAddPdfの部分だけです。
フォルダを消して、リネームだけにしています。リネーム後の名前も「[著者名] タイトル」という風にしています。
def OnAddPdf(self,event): # rename pdf and dir author = str_strip_for_path( self.author.GetValue() ) title = str_strip_for_path( self.title.GetValue() ) rename_dir = os.path.join( os.path.split(self.temp_dir)[0], author + u"; " + title ) #rename_pdf = os.path.join( rename_dir, title + u".pdf") if author == u"": author = u" " rename_pdf = os.path.join( rename_dir, u"[" + author + u"] " + title + u".pdf") temp_pdf = os.path.join( rename_dir, os.path.split(self.temp_pdf)[1]) if os.path.exists(rename_dir): error_dlg = wx.MessageDialog(self.frame, "Existing directory:\n" + rename_dir, 'Existing PDF name', wx.OK | wx.ICON_ERROR) error_dlg.ShowModal() error_dlg.Destroy() return False os.rename(self.temp_dir, rename_dir) os.rename( temp_pdf, rename_pdf) # move and delete folder shutil.move(rename_pdf, PDF_LIB_DIR) shutil.rmtree(rename_dir) # clear os.remove(self.src_pdf) self.clear() self.src_pdf = None self.OnSetFocus_pdfpath("dummy")
使用する前に、PDF_LIB_DIRとPDF_TO_TXT_COMMANDを環境に合わせて書き換えてください。
私の実行環境は、
- Windows XP SP3
- Python 2.6.1
- wxPython 2.8 unicode
- xdoc2txt 1.32
でした。
Pythonにはインデントの罠があることを忘れていたのではまってしまいましたが、何とかできました。
id:tkf41さん、ありがとうございました。