Aqui está uma solução funcional. No entanto, você precisará ajustá-lo para atender às suas necessidades.
No meu exemplo, removi a primeira página de um PDF e precisei atualizar os indicadores para apontar para os locais corretos.
remova a página 1 do arquivo in.pdf:
pdftk A=in.pdf cat A2-end output temp.pdf
crie um arquivo in.info a partir de in.pdf:
pdftk in.pdf dump_data > in.info
O in.info precisa ser corrigido no meu caso, pois removerei uma página.
Assim, preciso diminuir o BookmarkPageNumber em um para que os indicadores levem às páginas corretas.
código 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";
}
}
create final out.pdf:
pdftk temp.pdf update_info in2.info output out.pdf
testado trabalhando no debian usando o 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)
Você precisa fazer
pdftk in.pdf dump_data > in.info
, em seguida, adicione oupdate_info
parâmetro ao gerar oout.pdf
. Citação deman pdftk
:fonte
dump_data_utf8
paraupdate_info_utf8
trabalhar, é claro.pdftk in.pdf dump_data > in.info
,pdftk in.pdf cat 1-22 43 23-42 44-end output out.pdf
epdftk out.pdf update_info in.info output out1.pdf
Ainda não há favoritos noout1.pdf
. `Lendo a página de manual com cuidado, ele diz que
update_info
aceita dados em qualquer formatodump_data
gerado. Presumivelmente, isso teria que ser ajustado de acordo com a página aleatória. Não parece impossível , mas automático não é.O site PDFtk fornece apenas o resultado acima e a criação / edição de marcadores como resultados. Todo o Google sabe sobre a questão dos marcadores em PDF e da reorganização, são hits nas operações acima e exposições líricas sobre as maravilhas que eles oferecem, e este tópico ;-).
Então parece que não pode ser feito. Os comentários sugerem algumas possibilidades, que não funcionaram quando tentadas.
fonte
"pdfmod" é uma ferramenta gráfica simples que permite remover uma ou páginas de modo de um PDF existente. É apenas uma questão de alguns cliques. Ele também preserva as informações do conteúdo e a reticulação no pdf.
O "pdftk" funciona bem e eu o uso há muito tempo, mas perdia o conteúdo depois de remover uma ou duas páginas do pdf. Os arquivos pdf testados em "pdftk" e "pdfmod" são criados no openoffice.
https://apps.fedoraproject.org/packages/pdfmod
fonte
pdfmod
parece melhor do quepdftk
quando se trata de preservar metadados. Um diff deexiftool
saída mostra quepdfmod
preserva os metadados, maspdftk
não preserva tudo, mesmo se você usardump_data_utf8
&update_info_utf8
.