Como preservar os marcadores ao reorganizar as páginas de um arquivo PDF com ferramentas como o pdftk?

12

Estou usando pdftk para reorganizar as páginas de um arquivo PDF com marcadores / contornos, mas depois disso, o arquivo de saída perdeu os marcadores do original.

Meu comando é pdftk in.pdf cat 1-22 43 23-42 44-end output out.pdf .

Eu queria saber como manter os favoritos enquanto reorganizo as páginas?

    
por Tim 20.07.2011 / 16:31

4 respostas

8

Aqui está uma solução de trabalho. No entanto, você precisará ajustá-lo para atender às suas necessidades.

No meu exemplo, removi a primeira página de um PDF e, em seguida, precisei atualizar os marcadores para apontar para os locais corretos.

  1. remova a página 1 de in.pdf:

    pdftk A=in.pdf cat A2-end output temp.pdf
    
  2. crie um arquivo in.info a partir de in.pdf:

    pdftk in.pdf dump_data > in.info
    
  3. in.info precisa ser corrigido no meu caso, já que vou remover uma página.

    Assim, eu preciso diminuir BookmarkPageNumber por um para os marcadores para levar à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";
        }
    }
    
  4. criar final out.pdf:

    pdftk temp.pdf update_info in2.info output out.pdf
    

testado trabalhando no debian usando o pdftk 2.01

    
por 21.02.2014 / 22:49
6

Você precisa fazer pdftk in.pdf dump_data > in.info e, em seguida, adicionar o parâmetro update_info ao gerar o out.pdf . Citando de man pdftk :

update_info <info data filename | - | PROMPT>

Changes the metadata stored in a single PDF's Info dictionary to match the input data file. The input data file uses the same syntax as the out‐ put from dump_data. Non-ASCII characters should be encoded as XML numerical entities. This does not change the metadata stored in the PDF's XMP stream, if it has one. For example:

             pdftk in.pdf update_info in.info output out.pdf

  update_info_utf8 <info data filename | - | PROMPT>

Same as update_info except that the input is encoded as UTF-8.

    
por 20.07.2011 / 17:18
5

Lendo com atenção a página de manual , ela diz que update_info recebe dados em qualquer formato dump_data gera. Isso presumivelmente teria que ser ajustado de acordo com o embaralhamento da página. Não parece impossível , mas automático não é.

O site PDFtk fornece apenas o hit acima e cria / edita marcadores como resultados. Todo o Google sabe sobre o assunto de bookmarks em PDF e reorganizaçã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.

    
por 18.02.2013 / 21:33
1

"pdfmod" é uma ferramenta gráfica simples que permite remover uma ou várias páginas de um PDF existente. É apenas uma questão de alguns cliques. Também preserva as informações de conteúdo e as ligações cruzadas no pdf.

"pdftk" funciona bem e eu estava usando por muito tempo, mas perdi o conteúdo depois de remover uma ou duas páginas do pdf. Esses arquivos pdf que são testados em "pdftk" e "pdfmod" são criados a partir do openoffice.

link

    
por 28.07.2015 / 14:34

Tags