Bagaimana cara mengimpor, mengekspor, dan mengedit bookmark file pdf?

21

Saya mendengar bahwa bookmark file pdf disimpan dalam teks biasa di suatu tempat di file. Saya bertanya-tanya apakah mungkin untuk mengimpor dan mengekspor bookmark file pdf ke dan dari file teks, untuk pemrosesan batch?

Jika ya, apakah ada deskripsi pada sintaks untuk mengedit file teks yang berisi penanda file pdf?

Saya berharap untuk solusi perangkat lunak gratis untuk Ubuntu 10.10 dan untuk Windows 7.

Terima kasih dan salam!

Tim
sumber

Jawaban:

21

Ada cukup beragam alat yang dapat mengekstrak bookmark dari pdf ke file teks biasa, dan sebaliknya. Beberapa di antaranya adalah sebagai berikut:

Juga, saya memiliki skrip yang dapat mengkonversi antara format banyak alat ini: bmconverter.py .

Cara lain yang sangat bagus adalah menambahkan bookmark ke pdf via pdflatex .

Michael Goerz
sumber
13

Anda bisa menggunakannya pdftkuntuk ini. Info lebih lanjut: Cara Mengekspor dan Mengimpor Bookmark PDF .

Ekspor bookmark PDF pada baris perintah seperti ini:

pdftk C:\Users\Sid\Desktop\doc.pdf dump_data output C:\Users\Sid\Desktop\doc_data.txt

Impor bookmark PDF dari file data seperti ini:

pdftk C:\Users\Sid\Desktop\doc.pdf update_info C:\Users\Sid\Desktop\doc_data.txt output C:\Users\Sid\Desktop\updated.pdf

pdftkFormat bookmark agak membosankan untuk ditulis. Sebaliknya saya membuat naskah saya sendiri menggunakan bash, sed, pdftkdan python3. Lihat di repo ini: https://github.com/SiddharthPant/booky

Jadi sekarang saya dapat membuat file teks ( bkmrks.txt) seperti ini yang hanya membutuhkan 5 menit untuk menulis bahkan untuk pdf 1000 halaman.

{
  Title1, 1
  Title2, 2
  {
    Subtitle1, 3
    Subtitle2, 4
    {
      SubSubtitle1, 5
      ...
    }
  }
}

dan kemudian gunakan skrip saya

./booky.sh pdf_file.pdf bkmrks.txt

ini secara otomatis membuat pdf ( pdf_file_new.pdf) yang memiliki bookmark saya di dalamnya.

Ini akan bekerja di sistem * nix jika Anda menggunakan mesin Windows. Kemudian instal terlebih dahulu python3dan pdftkcukup gunakan booky.pyfile dalam repo untuk mengkonversi bkmrks.txtke pdftkformat yang kompatibel

python3 booky.py < bkmrks.txt > output.txt

dan kemudian menggunakan perintah ekspor untuk menghasilkan file data yang dibuang. Hapus bookmark sebelumnya dari file itu dan masukkan konten output.txtalih - alih menggunakan tempel salinan sederhana. Dan kemudian impor data itu kembali.

Siddharth Pant
sumber
4

Jika Anda memiliki versi dokumen yang memiliki penanda dan ingin menyalinnya, cara yang lebih sederhana adalah dengan menggunakan PDF-XChange Viewer (saya menggunakan v2.5.211). Buka PDF yang memiliki penanda (sumber PDF), pilih semua penanda di panel penanda, salin menggunakan Ctrl + C, buka PDF yang tidak memiliki penanda (target PDF), dan tempel (Ctrl) + V) di panel bookmark PDF itu. PDF-Xchange Viewer menjaga properti bookmark karena berasal dari sumber PDF (termasuk format tebal / miring pada teks bookmark). Jika karena alasan tertentu beberapa bagian dari target PDF lebih rendah atau lebih tinggi karena revisi dibuat untuk dokumen, Anda dapat mengklik bookmark yang membutuhkan koreksi, gulir ke tempat di mana Anda ingin bookmark dibuka, kanan- klik bookmark lagi dan klik "Set Destination". Ulangi bagian terakhir ini sesuai kebutuhan untuk bookmark yang menyinggung. Simpan target PDF saat selesai.

Ini bekerja sangat baik untuk saya, cukup intuitif, dan saya selesai dalam beberapa menit. Dalam skenario khusus saya, seorang rekan kerja telah menghasilkan dokumen yang sangat panjang menggunakan Word for Mac yang tidak memiliki bookmark. Karena panjangnya dokumen, saya ingin bookmark yang sesuai dengan garis besar dokumen. Saya dapat meminta Word for Windows untuk menyimpan dokumen sebagai PDF dengan bookmark, tetapi beberapa perbedaan format antara Word untuk Windows dan Word untuk Mac membuang jumlah halaman cukup (khususnya, ada perbedaan dalam ruang putih di sekitar footer, dan perbedaan dalam jarak antara angka dan keterangan). Saya bisa bermain-main dengan header & footer dan ukuran angka untuk mendapatkan pagination yang benar di Word untuk Windows, kemudian disimpan ke PDF dengan bookmark. Sayangnya,

Jason
sumber
1
+1 untuk PDF-Xchange. Semakin sedikit alat yang semakin meriah
Ooker
1

Spesifikasi untuk file PDF tersedia sebagai PDF yang dapat diunduh secara bebas dari Adobe - atau setidaknya itu yang terakhir kali saya periksa. Namun, sebagian besar file PDF memiliki data terkompresi yang paling banyak. Mungkin ada versi PDF pada dasarnya plaintext sekali waktu, dan jika demikian itu masih akan valid sekarang, tetapi sebenarnya mendapatkan file dalam bentuk itu mungkin menjadi masalah.

Meskipun saya belum melakukannya, satu kemungkinan yang sangat mungkin (jika Anda bersedia membayar) adalah membeli Acrobat Pro, dan menggunakan kemampuan scripting Javascript yang dibangun ke dalam aplikasi itu. Untuk memulainya ...

http://acrobatusers.com/tutorials/2008/10/auto_bookmark_creation

Tutorial ini menunjukkan cara membuat bookmark secara otomatis menggunakan Javascript di Acrobat 7.0 Pro (versi yang termasuk dalam Creative Suite CS2). Meskipun sudah agak tua, teknik yang sama harus bekerja dengan baik untuk versi yang lebih baru.

Aplikasi Adobe memang menyertakan pustaka untuk membaca / menulis file teks menggunakan Javascript (sesuatu yang Javascript tidak miliki sebagai standar), sehingga dimungkinkan untuk menulis skrip impor / ekspor Anda sendiri, meskipun tidak sepele untuk membuat skrip tersebut kuat.

Steve314
sumber
Terima kasih! Apakah ada versi Linux dari Acrobat Pro?
Tim
Maaf - saya sangat meragukannya. AFAIK itu Mac atau Windows, dan Adobe tidak mungkin mendukung Linux kecuali sejumlah besar profesional kreatif (1) mulai menggunakan platform itu, dan (2) menunjukkan bahwa mereka bersedia membayar banyak untuk perangkat lunak berpemilik daripada menggunakan FOSS alternatif. Sepertinya tidak mungkin. Untuk solusi gratis, Anda dapat mencoba perpustakaan seperti blog.rubypdf.com/2007/12/12/… (untuk Ruby). Saya kurang tahu tentang ini - saya baru saja menemukannya di Google.
Steve314
1

Untuk mengekspor bookmark, saya mengikuti pendekatan berbeda yang membutuhkan penggunaan Microsoft OneNote:

Saya membuka pembaca PDF (saya menggunakan versi gratis Foxit) dengan struktur bookmark terlihat dan kemudian, di OneNote, saya meminta untuk mengambil snapshot, dan pilih struktur bookmark Foxit.

Kembali ke OneNote, saya memilih opsi "Salin teks dari gambar" (dalam menu yang muncul setelah mengklik kanan gambar foto), dan saya menempelkannya di samping, untuk memperbaiki lekukan (biasanya dengan peluru).

C. Delgado
sumber
1

HandyOutline. 1 seret, 1 klik, selesai. https://sourceforge.net/projects/handyoutlinerfo/ . Bebas. Indentasi sub-penanda. Tidak memerlukan pembaca / editor PDF. Juga edit, ekspor semua detail ke teks (salin ke kata tulis makro untuk merapikannya ke dokumen kata yang berfungsi penuh) atau XML, repaginate, impor ke PDF. Dev layak mendapat donasi.

PDF-Xchange Editor (menggantikan PDFViewer) bookmark yang digandakan / tidak terjawab yang diekspor ke teks

JPDF membutuhkan Java, mengekspor format sampah, tidak bisa membersihkannya untuk mendapatkan nama saja

PDFtk memberi saya sakit kepala hanya dengan melihat petunjuknya

:-)

Sepotong kue
sumber
Senang bahwa ini ekspor ke XML, bukan format yang lebih istimewa. Antarmuka seret dan lepas untuk ekspor juga tidak bisa lebih sederhana. Saya hanya berharap bisa melakukan beberapa sekaligus.
Evan Donovan
0

Saya menemukan solusi lain yang agak "bodoh" untuk menyalin semua bookmark dalam PDF sebagai teks untuk digunakan di tempat lain. Di Acrobat Pro (untuk Mac OS) tidak ada cara untuk memilih semua bookmark dan menyalin / menempelnya di Wordprocessor. Namun Anda dapat mengekspor seluruh PDF sebagai file HTML dengan opsi "satu halaman HTML tunggal + tambahkan bingkai navigasi berdasarkan bookmark". Kemudian buka HTML di browser, pilih semua teks dalam bingkai navigasi dan salin / tempel ke pengolah kata ...

Johan Morris
sumber
0

Untuk membaca semua bookmark dari PDF ke file teks, Anda dapat menggunakan perintah ini dengan pdftk:

pdftk input.pdf dump_data output output.txt

Saya kemudian menggunakan regex pada Notepad ++ untuk menghapus bagian tambahan. Berikut ini saya diganti dengan string kosong (berurutan), dan kemudian saya berakhir dengan daftar bookmark (jangan lupa ganti menggunakan regex di editor teks Anda):

BookmarkLevel.*
BookmarkPageNumber.*
BookmarkBegin.*
\n\s+\n

Jika Anda ingin menghapus angka, ganti ungkapan ini:

BookmarkTitle: A8.\d.\d+\s
Fisikawan Kuantum
sumber