2016-03-24 23 views
4

私は、.docxファイル内の特定の単語を見つけて、それが発生したページ番号を返すプログラムを、Pythonで作成しようとしています。これまでのところ、python-docxのドキュメントを見ると、ページ番号や番号がどこにあるフッターにアクセスするのか見つけられませんでした。 python-docxを使ってこれを行う方法はありますか?そうでない場合は、これを行うための最良の方法は何でしょうか?ページ番号python-docx

答えて

3

ページ区切りがレンダリングエンジンによって挿入され、.docxファイル自体では決まっていないため、短い答えはいいえです。

ただし、特定のクライアントは、最後にレンダリングされたページがどこにあったかを示すために、保存されたXMLに<w:lastRenderedPageBreak>要素を配置します。

これはどのようなことですか(私はWord自体が期待していますが)、どれくらい信頼できるかはわかりませんが、それはPythonで作業したい場合にお勧めする方向です。あなたは潜在的にpython-docxを使用して(例えばw:document/w:bodyのような)必要なlxml要素への参照を取得してからXPathコマンドや何かを使って特定のページに進むことができますが、ちょっと考えていくと詳細な開発になるでしょうそれを得るためにそこに。

ネイティブのWindows MS Office APIで作業している場合、実際にWordアプリケーションが実行されるため、何か改善の余地があります。

文書をpython-docxで生成している場合、その文書をレンダリングしようとしない(その可能性もありません)ため、これらの要素は配置されません。また、いつでもw:lastRenderedPageBreakのサポートを追加する予定はありません。私はそれがどのように見えるかは全く分かりません。

'lastRenderedPageBreak'や 'python-docx page break'を検索すると、もう少し分かりやすい質問や回答が表示されます。

+0

迅速な回答ありがとうございます! – lehast22