¿Cómo importar, exportar y editar marcadores de un archivo pdf?


21

Escuché que los marcadores de un archivo pdf se almacenan en texto plano en algún lugar del archivo. Me preguntaba si es posible importar y exportar marcadores de un archivo pdf hacia y desde un archivo de texto, para el procesamiento por lotes.

En caso afirmativo, ¿hay alguna descripción sobre la sintaxis para editar el archivo de texto que contiene marcadores de un archivo pdf?

Esperaba soluciones de software gratuitas para Ubuntu 10.10 y para Windows 7.

¡Gracias y saludos!

Respuestas:


22

Existe una gran variedad de herramientas que pueden extraer marcadores de un archivo PDF a un archivo de texto sin formato, y viceversa. Algunos de los cuales son los siguientes:

Además, tengo un script que puede convertir entre los formatos de muchas de estas herramientas: bmconverter.py .

Otra forma muy agradable es agregar marcadores a un pdf a través de pdflatex .


13

Puedes usar pdftkpara esto. Más información: Cómo exportar e importar marcadores PDF .

Exporte marcadores PDF en la línea de comandos de esta manera:

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

Importe marcadores PDF desde un archivo de datos 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

pdftkel formato de marcador es un poco tedioso de escribir. En lugar de ello he creado mi propia secuencia de comandos con bash, sed, pdftky python3. Compruébelo en este repositorio: https://github.com/SiddharthPant/booky

Así que ahora puedo crear un archivo de texto ( bkmrks.txt) como este que toma solo 5 minutos para escribir incluso para un pdf de 1000 páginas.

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

y luego uso mi script

./booky.sh pdf_file.pdf bkmrks.txt

esto crea automáticamente un pdf ( pdf_file_new.pdf) que tiene mis marcadores en él.

Esto funcionará en los sistemas * nix si en cambio estás en una máquina Windows. Luego, primero instale python3y pdftksimplemente use el booky.pyarchivo en el repositorio para convertir bkmrks.txta pdftkformato compatible

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

y luego use el comando de exportación para generar un archivo de datos volcados. Elimine los marcadores anteriores de ese archivo e inserte contenido en su output.txtlugar utilizando una simple copia y pegue. Y luego importar esos datos de nuevo.


4

Si tiene una versión de un documento que tiene marcadores y desea copiarlos, una forma mucho más simple es usar PDF-XChange Viewer (utilicé v2.5.211). Abra el PDF que tiene los marcadores (el PDF de origen), seleccione todos los marcadores en el panel de marcadores, cópielos usando Ctrl + C, abra el PDF que no tiene los marcadores (el PDF de destino) y péguelos (Ctrl + V) en el panel de marcadores de ese PDF. PDF-Xchange Viewer conserva las propiedades de los marcadores como si fueran del PDF de origen (incluido cualquier formato en negrita / cursiva en el texto del marcador). Si por alguna razón algunas de las secciones del PDF de destino son más bajas o más altas debido a las revisiones realizadas en el documento, puede hacer clic en el marcador que necesita corrección, desplazarse hasta el lugar de la página donde desea que se abra el marcador, a la derecha- haga clic en el marcador nuevamente y haga clic en "Establecer destino". Repita esta última parte según sea necesario para cualquier marcador ofensivo. Guarde el PDF de destino cuando haya terminado.

Esto funcionó muy bien para mí, fue bastante intuitivo y terminé en unos minutos. En mi escenario particular, un compañero de trabajo había producido un documento muy largo usando Word para Mac que no tenía marcadores. Debido a la longitud del documento, quería marcadores correspondientes al esquema del documento. Podría obtener Word para Windows para guardar el documento como PDF con marcadores, pero algunas diferencias de formato entre Word para Windows y Word para Mac descartaron el recuento de páginas (en particular, hubo diferencias en el espacio en blanco alrededor de los pies de página, y diferencias en el espacio entre las figuras y el pie de foto). Pude jugar con los encabezados y pies de página y los tamaños de las figuras para obtener la paginación correcta en Word para Windows, luego la guardé en PDF con marcadores. Desafortunadamente,


1
+1 para PDF-Xchange.
Cuantas

1

La especificación para archivos PDF está disponible como un PDF descargable de Adobe, o al menos fue la última vez que lo revisé. Sin embargo, la mayoría de los archivos PDF tienen la mayoría de los datos comprimibles comprimidos. Probablemente hubo una versión de PDF de texto sin formato alguna vez, y de ser así, seguirá siendo válida ahora, pero en realidad obtener un archivo en esa forma puede ser un problema.

Aunque no lo he hecho, una posibilidad muy probable (si está dispuesto a pagar) es comprar Acrobat Pro y usar las capacidades de secuencias de comandos Javascript integradas en esa aplicación. Para empezar ...

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

Este tutorial muestra cómo crear marcadores automáticamente usando Javascript en Acrobat 7.0 Pro (la versión incluida en Creative Suite CS2). Aunque se está volviendo un poco viejo, la misma técnica debería funcionar bien para las versiones más nuevas.

Las aplicaciones de Adobe incluyen una biblioteca para leer / escribir archivos de texto usando Javascript (algo que Javascript no tiene como estándar), por lo que es posible escribir sus propios scripts de importación / exportación, aunque no es trivial para hacer que esos scripts sean robustos.


¡Gracias! ¿Existe una versión de Linux de Acrobat Pro?
Tim

Lo siento, lo dudo mucho. AFAIK es una cosa de Mac o Windows, y es poco probable que Adobe admita Linux a menos que un gran número de profesionales creativos (1) comience a usar esa plataforma y (2) demuestre que están dispuestos a pagar mucho por el software propietario en lugar de usar FOSS alternativas. Parece improbable. Para obtener una solución gratuita, puede probar una biblioteca como blog.rubypdf.com/2007/12/12/… (para Ruby). Sé aún menos sobre esto: lo encontré en Google.
Steve314

1

Para exportar marcadores, sigo un enfoque diferente que requiere el uso de Microsoft OneNote:

Abro el lector de PDF (uso la versión gratuita de Foxit) con la estructura de marcadores visible y luego, en OneNote, solicito tomar una instantánea y seleccionar la estructura de marcadores de Foxit.

De vuelta a OneNote, selecciono la opción "Copiar texto de la imagen" (en el menú que aparece después de hacer clic con el botón derecho en la imagen de la instantánea) y la pego en el lateral para corregir la sangría (generalmente con viñetas).


1

HandyOutline. 1 arrastre, 1 clic, listo. https://sourceforge.net/projects/handyoutlinerfo/ . Gratis. Sangría sub-marcadores. No requiere ningún lector / editor de PDF. También edite, exporte todos los detalles al texto (copie en Word, escriba una macro para ordenarlo en un documento de Word completamente funcional) o XML, repaginate, importe a PDF. Dev merece donaciones.

PDF-Xchange Editor (reemplazado PDFViewer) marcadores aleatorios duplicados / perdidos exportados a texto

JPDF requirió Java, exportó basura de formato, no pudo limpiarlo solo para obtener los nombres

PDFtk me dio dolor de cabeza con solo mirar las instrucciones

:-)


Me encanta que este se exporte a XML, en lugar de un formato más idiosincrásico. La interfaz de arrastrar y soltar para las exportaciones no podría ser más sencilla también. Solo desearía que pudiera hacer múltiples a la vez.
Evan Donovan

0

Encontré otra solución bastante "estúpida" para copiar todos los marcadores en un PDF como texto para usar en otro lugar. En Acrobat Pro (para Mac OS) no hay forma de seleccionar todos los marcadores y copiarlos / pegarlos en un procesador de textos. Sin embargo, puede exportar todo el PDF como un archivo HTML con la opción "una sola página HTML + agregar un marco de navegación basado en marcadores". Luego abra el HTML en un navegador, seleccione todo el texto en el marco de navegación y cópielo / péguelo en un procesador de textos ...


0

Para leer todos los marcadores de un PDF a un archivo de texto, puede usar este comando con pdftk:

pdftk input.pdf dump_data output output.txt

Luego usé regex en Notepad ++ para eliminar las partes adicionales. Lo siguiente lo reemplacé por una cadena vacía (en orden), y luego terminé con una lista de marcadores (no se olvide de reemplazar usando regex en su editor de texto):

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

Si desea eliminar los números, reemplace esta expresión:

BookmarkTitle: A8.\d.\d+\s
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.