Como importar, exportar e editar os favoritos de um arquivo pdf?

21

Ouvi dizer que os favoritos de um arquivo PDF são armazenados em texto sem formatação em algum lugar do arquivo. Eu queria saber se é possível importar e exportar favoritos de um arquivo pdf para e de um arquivo de texto, para processamento em lote?

Se sim, existe alguma descrição na sintaxe para editar o arquivo de texto que contém os favoritos de um arquivo pdf?

Eu esperava soluções de software livre para o Ubuntu 10.10 e para o Windows 7.

Obrigado e cumprimentos!

Tim
fonte

Respostas:

21

Existe uma variedade de ferramentas que podem extrair favoritos de um pdf para um arquivo de texto sem formatação e vice-versa. Alguns dos quais são os seguintes:

Além disso, tenho um script que pode converter entre os formatos de muitas dessas ferramentas: bmconverter.py .

Outra maneira muito legal é adicionar marcadores a um pdf via pdflatex .

Michael Goerz
fonte
13

Você pode usar pdftkpara isso. Mais informações: Como exportar e importar indicadores PDF .

Exporte os marcadores em PDF na linha de comando, assim:

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

Importe marcadores PDF de um arquivo de dados como este:

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

pdftkformato de marcador é um pouco tedioso para escrever. Em vez disso eu criei o meu próprio script usando bash, sed, pdftke python3. Confira neste repositório: https://github.com/SiddharthPant/booky

Então agora eu posso criar um arquivo de texto ( bkmrks.txt) como este, que leva apenas 5 minutos para escrever, mesmo para um pdf de 1000 páginas.

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

e depois usar meu script

./booky.sh pdf_file.pdf bkmrks.txt

isso cria automaticamente um pdf ( pdf_file_new.pdf) que contém meus favoritos.

Isso funcionará nos sistemas * nix se você estiver em uma máquina Windows. Em seguida, instale python3e pdftkuse o booky.pyarquivo no repositório para converter bkmrks.txtpara um pdftkformato compatível

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

e use o comando export para gerar um arquivo de dados despejado. Remova os favoritos anteriores desse arquivo e insira o conteúdo output.txtusando uma pasta de cópia simples. E depois importe esses dados de volta.

Siddharth Pant
fonte
4

Se você possui uma versão de um documento que possui marcadores e deseja copiá-los, uma maneira muito mais simples é usar o PDF-XChange Viewer (usei a versão 2.5.211). Abra o PDF que possui os indicadores (o PDF de origem), selecione todos os indicadores no painel de indicadores, copie-os usando Ctrl + C, abra o PDF que não possui os indicadores (o PDF de destino) e cole-os (Ctrl + V) no painel de favoritos desse PDF. O PDF-Xchange Viewer preserva as propriedades do marcador como eram do PDF de origem (incluindo qualquer formatação em negrito / itálico no texto do marcador). Se, por algum motivo, algumas das seções do PDF de destino forem inferiores ou superiores devido a revisões feitas no documento, você poderá clicar no marcador que precisa de correção, role até a página na qual deseja que o marcador seja aberto, à direita. clique no marcador novamente e clique em "Definir destino". Repita esta última parte conforme necessário para qualquer marcador incorreto. Salve o PDF de destino quando terminar.

Isso funcionou muito bem para mim, foi bastante intuitivo e eu terminei em alguns minutos. No meu cenário específico, um colega de trabalho havia produzido um documento muito longo usando o Word para Mac que não tinha marcadores. Devido ao tamanho do documento, eu queria marcadores correspondentes ao contorno do documento. Eu consegui que o Word for Windows salvasse o documento como PDF com marcadores, mas algumas diferenças de formatação entre o Word para Windows e o Word para Mac diminuíram bastante a contagem de páginas (em particular, houve diferenças no espaço em branco ao redor dos rodapés e diferenças no espaçamento entre as figuras e a legenda). Eu era capaz de brincar com os cabeçalhos e rodapés e os tamanhos das figuras para obter a paginação correta no Word for Windows e depois salvá-los em PDF com marcadores. Infelizmente,

Jason
fonte
11
+1 para PDF-Xchange. Quanto menos ferramentas, melhor
Ooker 26/10
1

A especificação para arquivos PDF está disponível como PDF para download gratuito da Adobe - ou pelo menos foi a última vez que verifiquei. No entanto, a maioria dos arquivos PDF possui os dados mais compactáveis ​​neles compactados. Provavelmente, havia uma versão basicamente em PDF de texto simples, e se assim for, ainda será válida agora, mas obter um arquivo dessa forma pode ser um problema.

Embora eu não tenha feito isso, uma possibilidade muito provável (se você estiver disposto a pagar) é comprar o Acrobat Pro e usar os recursos de script Javascript embutidos nesse aplicativo. Para começar ...

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

Este tutorial mostra como criar favoritos automaticamente usando Javascript no Acrobat 7.0 Pro (a versão incluída no Creative Suite CS2). Embora isso esteja ficando um pouco antigo, a mesma técnica deve funcionar bem para versões mais recentes.

Os aplicativos da Adobe incluem uma biblioteca para leitura / gravação de arquivos de texto usando Javascript (algo que o Javascript não possui como padrão); portanto, é possível gravar seus próprios scripts de importação / exportação, embora não seja trivial para torná-los robustos.

Steve314
fonte
Obrigado! Existe uma versão Linux do Acrobat Pro?
28411 Tim
Desculpe - duvido muito. AFAIK é uma coisa para Mac ou Windows, e é improvável que a Adobe ofereça suporte ao Linux, a menos que um grande número de profissionais criativos (1) comece a usar essa plataforma e (2) mostre que está disposto a pagar muito por software proprietário, em vez de usar o FOSS alternativas. Parece improvável. Para uma solução gratuita, você pode tentar uma biblioteca como blog.rubypdf.com/2007/12/12/… (para Ruby). Sei ainda menos sobre isso - acabei de encontrá-lo no Google.
precisa saber é o seguinte
1

Para exportar indicadores, sigo uma abordagem diferente que requer o uso do Microsoft OneNote:

Abro o leitor de PDF (uso a versão gratuita do Foxit) com a estrutura de favoritos visível e, em seguida, no OneNote, peço para tirar uma captura instantânea e selecione a estrutura de favoritos do Foxit.

De volta ao OneNote, seleciono a opção "Copiar texto da imagem" (no menu que aparece após clicar com o botão direito do mouse na imagem da captura instantânea) e colo-a na lateral, para corrigir o recuo (geralmente com marcadores).

C.Delgado
fonte
1

HandyOutline. 1 arraste, 1 clique, pronto. https://sourceforge.net/projects/handyoutlinerfo/ . Livre. Recuos sub-marcadores. Não requer nenhum leitor / editor de PDF. Edite também, exporte todos os detalhes para o texto (copie para o Word, escreva uma macro para organizá-la em um documento do Word totalmente funcional) ou XML, repagine e importe para PDF. Dev merece doações.

Marcadores PDF-Xchange Editor (substituído PDFViewer) duplicados / perdidos aleatoriamente exportados para texto

O JPDF exigia Java, lixo de formatação exportado, não pôde limpá-lo para obter apenas os nomes

O PDFtk me deu dor de cabeça só de olhar para as instruções

:-)

Piecevcake
fonte
Adoro que este exporte para XML, em vez de um formato mais idiossincrático. A interface de arrastar e soltar para exportações também não poderia ser mais simples. Eu só queria que ele pudesse fazer vários de uma só vez.
Evan Donovan
0

Encontrei outra solução bastante "estúpida" para copiar todos os favoritos em um PDF como texto para uso em outros lugares. No Acrobat Pro (para Mac OS), não há como selecionar todos os favoritos e copiá-los / colá-los em um processador de texto. No entanto, você pode exportar o PDF inteiro como um arquivo HTML com a opção "uma única página HTML + adicionar quadro de navegação com base nos favoritos". Em seguida, abra o HTML em um navegador, selecione todo o texto no quadro de navegação e copie / cole-o em um processador de texto ...

Johan Morris
fonte
0

Para ler todos os favoritos de um PDF em um arquivo de texto, você pode usar este comando com pdftk:

pdftk input.pdf dump_data output output.txt

Em seguida, usei o regex no Notepad ++ para remover as peças extras. A seguir, substituí por uma sequência vazia (em ordem) e acabei com uma lista de indicadores (não se esqueça de substituir usando regex no seu editor de texto):

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

Se você deseja remover os números, substitua esta expressão:

BookmarkTitle: A8.\d.\d+\s
O físico quântico
fonte