Ini solusi yang bagus. Namun Anda harus menyesuaikannya agar sesuai dengan kebutuhan Anda.
Dalam contoh saya, saya menghapus halaman pertama PDF, dan kemudian saya perlu memperbarui bookmark untuk menunjuk ke lokasi yang benar.
hapus halaman 1 dari in.pdf:
pdftk A=in.pdf cat A2-end output temp.pdf
buat file in.info dari in.pdf:
pdftk in.pdf dump_data > in.info
in.info perlu diperbaiki dalam kasus saya, karena saya akan menghapus halaman.
Jadi, saya perlu mengurangi BookmarkPageNumber sebanyak satu agar bookmark mengarah ke halaman yang benar.
kode php:
$file = "in.info";
$data = file_get_contents($file);
foreach (explode("\n", $data) as $row) {
$tmp = explode(": ", $row);
if ($tmp[0] == "BookmarkPageNumber") {
if ($tmp[1] != "1") $tmp[1]--;
echo $tmp[0].": ".$tmp[1]."\n";
} else {
echo $row."\n";
}
}
buat final out.pdf:
pdftk temp.pdf update_info in2.info output out.pdf
diuji bekerja pada debian menggunakan pdftk 2.01
#!/usr/bin/python output = open('res.info','w') with open('temp.info','r') as f: for line in f: if line.startswith("BookmarkPageNumber"): output.write( "BookmarkPageNumber: "+ str(int(line.split()[1])+1)+"\n") else: output.write(line)
Yang perlu Anda lakukan
pdftk in.pdf dump_data > in.info
, lalu tambahkanupdate_info
parameter saat membuatout.pdf
. Mengutip dariman pdftk
:sumber
dump_data_utf8
untukupdate_info_utf8
bekerja, tentu saja.pdftk in.pdf dump_data > in.info
,pdftk in.pdf cat 1-22 43 23-42 44-end output out.pdf
danpdftk out.pdf update_info in.info output out1.pdf
Masih ada bookmark diout1.pdf
. `Membaca halaman manual dengan hati-hati, dikatakan bahwa
update_info
mengambil data dalam format apa pun yangdump_data
dihasilkan. Itu mungkin harus disesuaikan sesuai dengan pengocokan halaman. Kedengarannya tidak mungkin , tetapi otomatis tidak.Situs PDFtk hanya memberikan klik di atas dan membuat / mengedit bookmark sebagai hasilnya. Semua Google tahu tentang masalah bookmark dalam PDF dan reorganisasi, adalah hit pada operasi di atas dan eksposisi liris pada keajaiban yang mereka tawarkan, dan utas ini ;-).
Jadi sepertinya itu tidak bisa dilakukan. Komentar menyarankan beberapa kemungkinan, yang tidak berfungsi ketika dicoba.
sumber
"pdfmod" adalah alat grafis sederhana yang memungkinkan untuk menghapus satu atau halaman mode dari PDF yang ada. Itu hanya masalah beberapa klik. Ini juga menjaga informasi konten dan tautan silang dalam pdf.
"pdftk" berfungsi dengan baik dan saya telah menggunakannya untuk waktu yang lama tetapi saya kehilangan konten setelah menghapus satu atau dua halaman dari pdf. File pdf yang diuji dalam "pdftk" dan "pdfmod" dibuat dari openoffice.
https://apps.fedoraproject.org/packages/pdfmod
sumber
pdfmod
tampaknya lebih baik daripadapdftk
saat melestarikan metadata. Perbedaanexiftool
keluaran menunjukkan bahwapdfmod
mempertahankan metadata, tetapipdftk
tidak mempertahankan semuanya, bahkan jika Anda menggunakandump_data_utf8
&update_info_utf8
.