Oto działające rozwiązanie. Musisz jednak dostosować go do swoich potrzeb.
W moim przykładzie usunąłem pierwszą stronę pliku PDF, a następnie potrzebowałem zaktualizować zakładki, aby wskazywały prawidłowe lokalizacje.
usuń stronę 1 z in.pdf:
pdftk A=in.pdf cat A2-end output temp.pdf
utwórz plik in.info z in.pdf:
pdftk in.pdf dump_data > in.info
in.info musi zostać poprawiony w moim przypadku, ponieważ usunę stronę.
Dlatego muszę zmniejszyć BookmarkPageNumber o jeden, aby zakładki prowadziły do właściwych stron.
kod 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";
}
}
utwórz końcowy out.pdf:
pdftk temp.pdf update_info in2.info output out.pdf
przetestowany na Debianie przy użyciu 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)
Musisz to zrobić
pdftk in.pdf dump_data > in.info
, a następnie dodaćupdate_info
parametr podczas generowaniaout.pdf
. Cytowanie zman pdftk
:źródło
dump_data_utf8
doupdate_info_utf8
do pracy, oczywiście.pdftk in.pdf dump_data > in.info
,pdftk in.pdf cat 1-22 43 23-42 44-end output out.pdf
apdftk out.pdf update_info in.info output out1.pdf
Nadal nie ma zakładki wout1.pdf
. `Uważnie czytając stronę podręcznika , mówi, że
update_info
pobiera dane w dowolnymdump_data
generowanym formacie . Prawdopodobnie należałoby to dostosować zgodnie z tasowaniem strony. Nie brzmi to niemożliwe , ale nie jest automatyczne.Witryna PDFtk podaje tylko powyższe trafienie i tworzenie / edytowanie zakładek jako wyników. Wszystko, co Google wie o kwestii zakładek w PDF i reorganizacji, to trafienia w powyższe operacje i liryczne ekspozycje na temat cudów, które oferują, i ten wątek ;-).
Wygląda na to, że nie da się tego zrobić. Komentarze sugerują pewne możliwości, które nie działały podczas próby.
źródło
„pdfmod” to proste narzędzie graficzne, które pozwala usunąć jedną lub kilka stron z istniejącego pliku PDF. To tylko kwestia kilku kliknięć. Zachowuje również informacje o zawartości i linkowanie w pliku pdf.
„pdftk” działa dobrze i używałem go przez długi czas, ale traciłem zawartość po usunięciu jednej lub dwóch stron z pliku pdf. Te pliki pdf, które są testowane w „pdftk” i „pdfmod” są tworzone z openoffice.
https://apps.fedoraproject.org/packages/pdfmod
źródło
pdfmod
wydaje się lepszy niż wpdftk
przypadku zachowania metadanych. Różnicaexiftool
wyników pokazuje, żepdfmod
zachowuje metadane, alepdftk
nie zachowuje wszystkiego, nawet jeśli używaszdump_data_utf8
&update_info_utf8
.