Necesito obtener miles de fragmentos de texto de archivos PDF a una hoja de cálculo. Son cortos, rara vez más de 2-3 filas, pero cada salto de línea crea una nueva celda, y tengo que repararla manualmente, lo que cuesta mucho tiempo.
Debido a que tengo muchos de ellos, usar la solución alternativa "pegar en Word y hacer una búsqueda y reemplazo" es demasiado tiempo para mí. ¿Hay alguna manera de hacer que el salto de línea desaparezca en la copia? ¿Quizás hay un visor que ofrece un modo de copia especial para esto o tiene un complemento?
Los documentos son artículos científicos. La disposición del texto es bastante lineal. Puede suponer que el texto que estoy copiando no está dentro de una tabla o un flotante, y no está girado ni nada. (Si sucede algo así, creo que lo trataré manualmente). El texto se configura frecuentemente en dos columnas, pero no tengo problemas para marcar solo el texto que necesito de su columna. No necesito preservar ningún formato especial. Estoy dispuesto a probar una solución que elimine todos los caracteres no imprimibles, por ejemplo. Los textos están en inglés, está bien si la solución solo funciona en ASCII / elimina todos los ASCII no alfanuméricos del texto copiado.
Tengo una preferencia muy fuerte por una solución que funcione en Linux, posiblemente algún tipo de complemento Okular. Pero si resulta que hay una solución solo para Windows, también quiero escucharla. Tengo una licencia para un Acrobat Pro algo reciente en la máquina con Windows.
fuente
Respuestas:
Tuve un problema similar mientras trabajaba en un guión de texto a voz hace un tiempo. Mi script intentaría dividir la entrada de texto en fragmentos buscando nuevas líneas. Con archivos PDF esto resultaría en un desastre debido a la forma en que cada línea termina con una nueva línea.
Entonces, lo que hice fue componer algunos
sed
ytr
comandos para considerar solo las nuevas líneas que terminan con un punto final como saltos de línea reales. No era muy bonito pero funcionó.Usando este fragmento, escribí un pequeño script para usted que espero ayude:
Los usos de secuencias de comandos
xsel
para analizar el texto resaltado y luego lo modifica con elsed
ytr
de línea de comandos que he mencionado anteriormente. El texto procesado se devuelve al portapapeles a través dexsel -bi
.Así es como puede usar el script en su escenario:
xsel
instalado (sudo apt-get install xsel
en (K) Ubuntu)copy_without_linebreaks
o algo similar y hacerlo ejecutablefuente
Esto me ha estado molestando durante años, así que descubrí una solución general (Windows) usando Autohotkey . Autohotkey es un software ligero y gratuito de código abierto para Windows que crea teclas de acceso rápido para casi cualquier cosa imaginable.
Cuando se pulsa Ctrl+ c, el código solo se dispara si la ventana activa es un lector de PDF, de lo contrario, simplemente copia la selección dada como de costumbre. En el caso de un lector de PDF, copia la selección, elimina los saltos de línea y los espacios dobles y coloca el resultado en el portapapeles. Si no se selecciona nada, el portapapeles está prácticamente intacto.
La única tarea antes de aplicar este código es el nombre de clase de ventana (
ahk_class
) de su lector. Utilizo un solo lector de PDF para todos los casos (y supongo que la mayoría de la gente hace eso), FoxitReader, y loahk_class
esclassFoxitReader
. Puede averiguar la clase para su propio software fácilmente mediante elWinGetClass
comando (por ejemplo,AcrobatSDIWindow
para Acrobat Reader).Si prefiere leer archivos PDF en su navegador, esta no es su solución. O simplemente puede eliminar la
#IfWinActive ahk_class classFoxitReader
línea para que el código siempre se active, pero en este caso el resultado siempre se eliminará de los saltos de línea y los espacios dobles.fuente
Otra cosa que funcionó para mí fue guardar el archivo pdf como html. Los párrafos en el html permanecen intactos, listos para copiar y pegar. Otros formatos de archivo también funcionan, como txt o rtf ... Esto también debería funcionar en sistemas Linux.
fuente
Aquí se muestra un tercer enfoque con macros , pero no lo he probado. Pegué las macros aquí para referencia futura, la macro 2 es del autor de la fuente - "Deborah Savadra" - y la macro 1 de su lector "Benjamin":
macro 1:
macro 2:
fuente
Hay una solución de Windows se muestra aquí . Uno tiene que descargar el archivo "PDF Copy-Paster.exe" y ejecutarlo antes de copiar y pegar. Lo probé y funciona bien, excepto que elimina todos los saltos de línea. Entonces, si copia múltiples párrafos, más tarde tendrá solo uno.
Hay una pregunta relacionada sobre SU con una pequeña explicación, puede ser de interés para alguien ...
fuente
:-)
)Sé que esta es una vieja pregunta, sin embargo, sentí que sería útil responderla porque ninguna otra solución era tan fácil de usar como esta.
Use la aplicación de Linux llamada Okular para abrir su archivo pdf. Luego Herramientas-> Herramienta de selección de tabla. Luego seleccione su texto tal como estaba en forma de tabla. Luego Ctrl + C y ya está listo para comenzar.
fuente
Pregunta real: /ubuntu/1167026/detect-clipboard-copy-paste-event-and-modify-clipboard-contents
El crédito va a Kenn .
Basado en el guión de Glutanimate.
Fuente: https://github.com/SidMan2001/Scripts/tree/master/PDF-Copy-without-Linebreaks-Linux
Eliminar saltos de línea al copiar texto de PDF (Linux):
Este script bash elimina los saltos de línea al copiar texto de PDF. Funciona tanto para la selección primaria como para el portapapeles de Linux.
Dependencias:
sudo apt-get install xsel
Puede usar el clipnotify precompilado proporcionado en el repositorio o compilarlo usted mismo.
Para compilar clipnotifícate:
sudo apt install git build-essential libx11-dev libxtst-dev
git clone https://github.com/cdown/clipnotify.git
cd clipnotify
sudo make
Usar :
chmod +x "copy_without_linebreaks.sh"
.\copy_without_linebreaks.sh
fuente
Si tiene Acrobat, haga clic en el cursor para que el cursor parpadee en el texto. (No funcionará si no lo hace). Vaya a Avanzado, Accesibilidad, Agregar etiquetas. Tomará unos minutos si tiene un documento grande, pero mucho más rápido que eliminar los descansos manualmente. Voila!
fuente
Solución fácil desde esta página; http://www.iom3.org/news/how-instantly-remove-unwanted-line-breaks-when-copying-pdf
Un poco faffy pero una vez que tienes los atajos debajo de tus dedos es mucho más rápido
fuente
pdftotext
y luego usaría cualquier editor de texto que quisieran (con expresiones regulares estándar).