回答:
PDFからブックマークをプレーンテキストファイルに抽出したり、その逆を行うことができる非常にさまざまなツールがあります。その一部は次のとおりです。
また、これらのツールの多くのフォーマット間で変換できるスクリプトがあります: bmconverter.py。
別の非常に良い方法は、pdflatexを介してpdfにブックマークを追加することです。
pdftk
これに使用できます。詳細:PDFブックマークをエクスポートおよびインポートする方法。
次のように、コマンドラインでPDFブックマークをエクスポートします。
pdftk C:\Users\Sid\Desktop\doc.pdf dump_data output C:\Users\Sid\Desktop\doc_data.txt
次のようなデータファイルからPDFブックマークをインポートします。
pdftk C:\Users\Sid\Desktop\doc.pdf update_info C:\Users\Sid\Desktop\doc_data.txt output C:\Users\Sid\Desktop\updated.pdf
pdftk
ブックマーク形式は書くのが少し面倒です。代わりに私が使用して独自のスクリプトを作成しbash
、sed
、pdftk
とpython3
。このレポで確認してください:https : //github.com/SiddharthPant/booky
そのbkmrks.txt
ため、1000ページのPDFの場合でも5分しかかからないこのようなテキストファイル()を作成できます。
{
Title1, 1
Title2, 2
{
Subtitle1, 3
Subtitle2, 4
{
SubSubtitle1, 5
...
}
}
}
そして、私のスクリプトを使用します
./booky.sh pdf_file.pdf bkmrks.txt
これによりpdf_file_new.pdf
、ブックマークを含むpdf()が自動的に作成されます。
代わりにWindowsマシンを使用している場合、これは* nixシステムで機能します。そして、最初のインストールpython3
とpdftk
ちょうど使いbooky.py
変換するために、レポでファイルをbkmrks.txt
にpdftk
互換性のある形式
python3 booky.py < bkmrks.txt > output.txt
次に、exportコマンドを使用して、ダンプされたデータファイルを生成します。そのファイルから以前のブックマークを削除し、output.txt
代わりに単純なコピーペーストを使用してコンテンツを挿入します。そして、そのデータをインポートして戻します。
ブックマークがあるドキュメントのバージョンがあり、それらをコピーしたい場合、もっと簡単な方法はPDF-XChange Viewerを使用することです(v2.5.211を使用しました)。ブックマークのあるPDF(ソースPDF)を開き、ブックマークペインですべてのブックマークを選択し、Ctrl + Cを使用してコピーし、ブックマークのないPDF(ターゲットPDF)を開き、貼り付けます(Ctrl + V)そのPDFのブックマークペイン。PDF-Xchangeビューアーは、ブックマークのプロパティをソースPDFからのとおりに保持します(ブックマークテキストの太字/斜体の書式設定を含む)。何らかの理由で、対象PDFの一部のセクションがドキュメントの改訂により低くまたは高くなっている場合、修正が必要なブックマークをクリックし、ブックマークを開きたいページの場所までスクロールします。ブックマークをもう一度クリックして、「宛先の設定」をクリックします。問題のブックマークについては、必要に応じてこの最後の部分を繰り返します。終了したら、ターゲットPDFを保存します。
これは私にとってはうまくいき、非常に直感的で、数分で完了しました。私の特定のシナリオでは、同僚がブックマークを持たないWord for Macを使用して非常に長い文書を作成していました。ドキュメントの長さのため、ドキュメントのアウトラインに対応するブックマークが必要でした。Word for Windowsで文書をブックマーク付きのPDFとして保存することはできましたが、Word for WindowsとWord for Macのフォーマットの違いにより、ページ数が大幅に減りました(特に、フッターの周りの空白に違いがあり、違いがありました)数字とキャプションの間隔で)。Word for Windowsでページネーションを正しくするためにヘッダーとフッター、および図のサイズをいじり、PDFにブックマークを付けて保存することができました。残念ながら、
PDFファイルの仕様は、Adobeから無料でダウンロード可能なPDFとして入手できます-少なくとも前回チェックしたときです。ただし、ほとんどのPDFファイルには、ほとんどの圧縮可能なデータが圧縮されています。昔々、基本的にはプレーンテキスト版のPDFがあり、もしそうであれば今でも有効ですが、実際にその形式でファイルを取得することは問題になるかもしれません。
私はまだやっていませんが、可能性の高い可能性の1つは(支払いを希望する場合)、Acrobat Proを購入し、そのアプリケーションに組み込まれているJavascriptスクリプト機能を使用することです。始めるには...
http://acrobatusers.com/tutorials/2008/10/auto_bookmark_creation
このチュートリアルでは、Acrobat 7.0 Pro(Creative Suite CS2に含まれるバージョン)でJavascriptを使用してブックマークを自動的に作成する方法を示します。それは少し古くなっていますが、同じ手法は新しいバージョンでもうまくいくはずです。
Adobeアプリケーションには、Javascript(標準ではJavascriptにはないもの)を使用してテキストファイルを読み書きするためのライブラリが含まれているため、独自のインポート/エクスポートスクリプトを作成することは可能ですが、これらのスクリプトを堅牢にすることは簡単ではありません。
HandyOutline。1ドラッグ、1クリック、完了。https://sourceforge.net/projects/handyoutlinerfo/。無料です。サブブックマークをインデントします。PDFリーダー/エディターは必要ありません。また、すべての詳細をテキスト(テキストにコピーして完全に機能するワードドキュメントに整頓するためにマクロを書き込む)またはXMLにエクスポートして、PDFにインポートします。開発者は寄付に値します。
PDF-Xchangeエディター(PDFViewerに置き換わりました)ランダムに複製/欠落したブックマークをテキストにエクスポート
JPDFにはJavaが必要で、フォーマットガベージがエクスポートされ、名前のみを取得するためにクリーニングできませんでした
PDFtkは指示を見るだけで頭痛の種になりました
:-)
PDFからすべてのブックマークをテキストファイルに読み込むには、次のコマンドでこのコマンドを使用できますpdftk
。
pdftk input.pdf dump_data output output.txt
次に、Notepad ++で正規表現を使用して、余分な部分を削除しました。以下を空の文字列に(順番に)置き換えた後、ブックマークのリストになりました(テキストエディターで正規表現を使用して置き換えることを忘れないでください)。
BookmarkLevel.*
BookmarkPageNumber.*
BookmarkBegin.*
\n\s+\n
数字を削除する場合は、次の式を置き換えます。
BookmarkTitle: A8.\d.\d+\s