J'ai besoin de récupérer des milliers d'extraits de texte de PDF dans une feuille de calcul. Ils sont courts, rarement plus de 2-3 lignes, mais chaque saut de ligne crée une nouvelle cellule, et je dois la réparer manuellement, ce qui coûte beaucoup de temps.
Étant donné que j'en ai tellement, l'utilisation de la solution de contournement "Coller dans Word et rechercher et remplacer" est tout simplement trop longue pour moi. Existe-t-il un moyen de faire disparaître le saut de ligne lors de la copie? Peut-être y a-t-il une visionneuse qui offre un mode de copie spécial pour cela, ou a un plugin?
Les documents sont des articles scientifiques. La disposition du texte est assez linéaire. Vous pouvez supposer que le texte que je copie n'est pas à l'intérieur d'un tableau ou d'un flotteur, et qu'il n'est pas tourné ou quoi que ce soit. (Si une telle chose se produit, je pense que je vais m'en occuper manuellement). Le texte est souvent défini sur deux colonnes, mais je n'ai aucun problème à marquer uniquement le texte dont j'ai besoin dans sa colonne. Je n'ai pas besoin de conserver de formatage spécial. Je suis prêt à essayer une solution qui supprime tous les caractères non imprimables, par exemple. Les textes sont en anglais, c'est OK si la solution ne fonctionne qu'en ASCII / enlève tous les ASCII non alphanumériques du texte copié.
J'ai une très forte préférence pour une solution qui fonctionnera sous Linux, éventuellement une sorte de plugin Okular. Mais s'il se trouve qu'il existe une solution Windows uniquement, je veux aussi en entendre parler. J'ai une licence pour un Acrobat Pro quelque peu récent sur la machine Windows.
la source
Réponses:
J'ai eu un problème similaire pendant que je travaillais sur un script de synthèse vocale il y a quelque temps. Mon script essaierait de diviser la saisie de texte en morceaux en recherchant des nouvelles lignes. Avec les fichiers PDF, cela entraînerait un gâchis en raison de la façon dont chaque ligne se termine par une nouvelle ligne.
J'ai donc composé quelques commandes
sed
ettr
ne considérer que les sauts de ligne se terminant par un point final comme des sauts de ligne réels. Ce n'était pas très joli mais ça a marché.À l'aide de cet extrait, j'ai écrit un petit script pour vous qui, je l'espère, vous aidera:
Le script utilise
xsel
pour analyser le texte actuellement en surbrillance, puis le modifie avec la ligne de commandesed
ettr
mentionnée ci-dessus. Le texte traité est ensuite renvoyé au presse-papiers viaxsel -bi
.Voici comment utiliser le script dans votre scénario:
xsel
installé (sudo apt-get install xsel
sur (K) Ubuntu)copy_without_linebreaks
ou quelque chose de similaire et le rendre exécutablela source
Cela me dérange depuis des années, j'ai donc trouvé une solution générale (Windows) utilisant Autohotkey . Autohotkey est un logiciel de script open source léger et gratuit pour Windows permettant de créer des raccourcis clavier pour presque tout ce qui est imaginable.
Lorsque Ctrl+ cest touché, le code ne se déclenche que si la fenêtre active est un lecteur PDF, sinon il copie simplement la sélection donnée comme d'habitude. Dans le cas d'un lecteur PDF, il copie la sélection, supprime les sauts de ligne et les doubles espaces et met le résultat dans le presse-papiers. Si rien n'est sélectionné, le presse-papiers est pratiquement intact.
La seule tâche avant d'appliquer ce code est le nom de classe de fenêtre (
ahk_class
) de votre lecteur. J'utilise un seul lecteur PDF pour tous les cas (et je suppose que la plupart des gens le font), FoxitReader, etahk_class
c'est le casclassFoxitReader
. Vous pouvez facilement déterminer la classe de votre propre logiciel par laWinGetClass
commande (par exempleAcrobatSDIWindow
pour Acrobat Reader).Si vous préférez lire les PDF dans votre navigateur, ce n'est pas votre solution. Ou vous pouvez simplement supprimer la
#IfWinActive ahk_class classFoxitReader
ligne pour que le code se déclenche toujours, mais dans ce cas, le résultat sera toujours débarrassé des sauts de ligne et des espaces doubles.la source
Une autre chose qui a fonctionné pour moi a été d'enregistrer le fichier pdf en html. Les paragraphes en html restent intacts, prêts à être copiés et collés. D'autres formats de fichiers fonctionnent également, comme txt ou rtf ... Cela devrait également fonctionner sur les systèmes Linux.
la source
Une troisième approche utilisant des macros est présentée ici , mais je ne l'ai pas essayée. J'ai collé les macros ici pour référence future, la macro 2 est de l'auteur de la source - "Deborah Savadra" - et la macro 1 de son lecteur "Benjamin":
macro 1:
macro 2:
la source
Il existe une solution Windows illustrée ici . Il faut télécharger le fichier "PDF Copy-Paster.exe" et l'exécuter avant le copier-coller. Je l'ai essayé et cela fonctionne très bien, sauf qu'il supprime tous les sauts de ligne. Donc, si vous copiez plusieurs paragraphes, vous n'en aurez plus qu'un par la suite.
Il y a une question connexe sur SU avec une petite explication, elle peut intéresser quelqu'un ...
la source
:-)
)Je sais que c'est une vieille question, mais j'ai pensé qu'il serait utile d'y répondre car aucune autre solution n'était aussi facile à utiliser que celle-ci.
Utilisez l'application Linux nommée Okular pour ouvrir votre fichier pdf. Ensuite, Outils-> Outil de sélection de tableau, puis sélectionnez votre texte tel qu'il était sous forme de tableau. Ensuite, Ctrl + C et vous êtes prêt à partir.
la source
Question réelle: /ubuntu/1167026/detect-clipboard-copy-paste-event-and-modify-clipboard-contents
Le mérite revient à Kenn .
Basé sur le script de Glutanimate.
Source: https://github.com/SidMan2001/Scripts/tree/master/PDF-Copy-without-Linebreaks-Linux
Supprimer les sauts de ligne lors de la copie de texte à partir d'un PDF (Linux):
Ce script bash supprime les sauts de ligne lors de la copie de texte à partir d'un PDF. Il fonctionne à la fois pour la sélection principale et le presse-papiers de Linux.
Dépendances:
sudo apt-get install xsel
Vous pouvez utiliser le clipnotify précompilé fourni dans le référentiel ou compiler vous-même.
Pour compiler le clip, notifiez-vous:
sudo apt install git build-essential libx11-dev libxtst-dev
git clone https://github.com/cdown/clipnotify.git
cd clipnotify
sudo make
Utiliser :
chmod +x "copy_without_linebreaks.sh"
.\copy_without_linebreaks.sh
la source
Si vous avez Acrobat, cliquez sur votre curseur pour que le curseur clignote dans le texte. (Cela ne fonctionnera pas si vous ne le faites pas.) Allez dans Avancé, Accessibilité, Ajouter des balises. Cela prendra quelques minutes si vous avez un document volumineux, mais beaucoup plus rapide que la suppression manuelle des pauses. Voila!
la source
Solution facile à partir de cette page; http://www.iom3.org/news/how-instantly-remove-unwanted-line-breaks-when-copying-pdf
Légèrement mou mais une fois que vous avez les raccourcis sous les doigts, c'est beaucoup plus rapide
la source
pdftotext
puis utiliser n'importe quel éditeur de texte qu'ils aiment (avec regex standard).