Ich muss Tausende von Textausschnitten aus PDFs in eine Tabellenkalkulation übertragen. Sie sind kurz, selten mehr als 2-3 Zeilen, aber jeder Zeilenumbruch erzeugt eine neue Zelle, und ich muss diese manuell reparieren, was viel Zeit kostet.
Weil ich so viele davon habe, ist es mir einfach zu zeitaufwändig, die Problemumgehung "Einfügen in Word und Suchen und Ersetzen" zu verwenden. Gibt es eine Möglichkeit, den Zeilenumbruch beim Kopieren verschwinden zu lassen? Vielleicht gibt es einen Viewer, der dafür einen speziellen Kopiermodus anbietet, oder ein Plugin?
Die Dokumente sind wissenschaftliche Artikel. Die Textanordnung ist ziemlich linear. Sie können davon ausgehen, dass sich der von mir kopierte Text nicht in einer Tabelle oder einem Gleitkomma befindet und nicht gedreht wurde. (Wenn so etwas passiert, denke ich, dass ich es manuell erledigen werde). Der Text wird häufig in zwei Spalten gesetzt, aber ich habe keine Probleme, nur den Text zu markieren, den ich aus seiner Spalte benötige. Ich muss keine spezielle Formatierung beibehalten. Ich bin bereit, eine Lösung auszuprobieren, die zum Beispiel alle nicht druckbaren Zeichen entfernt. Die Texte sind in englischer Sprache, es ist in Ordnung, wenn die Lösung nur in ASCII funktioniert / alle nicht-alphanumerischen ASCII-Zeichen des kopierten Textes entfernt.
Ich bevorzuge eine Lösung, die unter Linux funktioniert, möglicherweise eine Art Okular-Plugin. Aber wenn es eine reine Windows-Lösung gibt, möchte ich auch davon erfahren. Ich habe eine Lizenz für ein etwas neues Acrobat Pro auf dem Windows-Rechner.
quelle
Antworten:
Ich hatte vor einiger Zeit ein ähnliches Problem, als ich an einem Text-zu-Sprache-Skript arbeitete. Mein Skript würde versuchen, die Texteingabe durch Suchen nach Zeilenumbrüchen in Blöcke aufzuteilen. Bei PDF-Dateien würde dies zu einem Durcheinander führen, da jede Zeile mit einer neuen Zeile endet.
Also habe ich ein paar Zeilen
sed
undtr
Befehle geschrieben, um nur Zeilenumbrüche zu berücksichtigen, die mit einem Punkt enden. Es war nicht sehr hübsch, aber es hat funktioniert.Mit diesem Snippet habe ich ein kleines Skript für Sie geschrieben, von dem ich hoffe, dass es helfen wird:
Das Skript
xsel
analysiert den aktuell hervorgehobenen Text und ändert ihn dann mit der oben erwähnten Befehlszeilesed
undtr
. Der verarbeitete Text wird dann über in die Zwischenablage zurückgegebenxsel -bi
.So können Sie das Skript in Ihrem Szenario verwenden:
xsel
(sudo apt-get install xsel
auf (K) Ubuntu) installiert habencopy_without_linebreaks
oder ähnlich und machen Sie es ausführbarquelle
Das nervt mich schon seit Jahren, deshalb habe ich mit Autohotkey eine allgemeine (Windows-) Lösung gefunden . Autohotkey ist eine kompakte, kostenlose Open-Source-Skriptsoftware für Windows, mit der Sie Hotkeys für fast alles erstellen können, was Sie sich vorstellen können.
Wenn Ctrl+ cgedrückt wird, wird der Code nur ausgelöst, wenn das aktive Fenster ein PDF-Reader ist. Andernfalls wird die angegebene Auswahl einfach wie gewohnt kopiert. Bei einem PDF-Reader wird die Auswahl kopiert, Zeilenumbrüche und doppelte Leerzeichen entfernt und das Ergebnis in die Zwischenablage kopiert. Wenn nichts ausgewählt ist, bleibt die Zwischenablage praktisch unberührt.
Die einzige Aufgabe vor dem Anwenden dieses Codes ist der Fensterklassenname (
ahk_class
) Ihres Lesers. Ich benutze einen einzigen PDF-Reader für alle Fälle (und ich gehe davon aus, dass die meisten Leute das tun), FoxitReader, und esahk_class
istclassFoxitReader
. Sie können die Klasse für Ihre eigene Software einfach mit demWinGetClass
Befehl herausfinden (z. B.AcrobatSDIWindow
für Acrobat Reader).Wenn Sie PDF-Dateien lieber in Ihrem Browser lesen möchten, ist dies nicht Ihre Lösung. Sie können die
#IfWinActive ahk_class classFoxitReader
Zeile auch einfach entfernen , sodass der Code immer ausgelöst wird. In diesem Fall werden jedoch Zeilenumbrüche und doppelte Leerzeichen entfernt.quelle
Eine andere Sache, die für mich geklappt hat, war das Speichern der PDF-Datei als HTML. Absätze in HTML bleiben intakt und können kopiert und eingefügt werden. Andere Dateiformate wie txt oder rtf funktionieren ebenfalls. Dies sollte auch auf Linux-Systemen funktionieren.
quelle
Ein dritter Ansatz mit Makros wird hier gezeigt , aber ich habe es nicht ausprobiert. Ich habe die Makros zur späteren Bezugnahme hier eingefügt. Makro 2 stammt vom Autor der Quelle - "Deborah Savadra" - und Makro 1 von ihrem Leser "Benjamin":
Makro 1:
Makro 2:
quelle
Es ist eine Windows - Lösung gezeigt hier . Man muss die Datei "PDF Copy-Paster.exe" herunterladen und vor dem Kopieren & Einfügen ausführen. Ich habe es ausprobiert und es funktioniert einwandfrei, außer dass es alle Zeilenumbrüche entfernt. Wenn Sie also mehrere Absätze kopieren, haben Sie später nur einen.
Es gibt eine verwandte Frage zu SU mit einer kleinen Erklärung, die für jemanden von Interesse sein könnte ...
quelle
:-)
)Ich weiß, dass dies eine alte Frage ist, aber ich hielt es für nützlich, sie zu beantworten, da keine andere Lösung so einfach zu bedienen war wie diese.
Verwenden Sie die Linux-App namens Okular, um Ihre PDF-Datei zu öffnen. Klicken Sie dann auf Extras-> Tabellenauswahlwerkzeug. Wählen Sie dann Ihren Text in Tabellenform aus. Dann Strg + C und los geht's.
quelle
Aktuelle Frage: https://askubuntu.com/questions/1167026/detect-clipboard-copy-paste-event-and-modify-clipboard-contents
Gutschrift geht an Kenn .
Basierend auf dem Skript von Glutanimate.
Quelle: https://github.com/SidMan2001/Scripts/tree/master/PDF-Copy-without-Linebreaks-Linux
Zeilenumbrüche beim Kopieren von Text aus PDF entfernen (Linux):
Dieses Bash-Skript entfernt Zeilenumbrüche beim Kopieren von Text aus PDF. Es funktioniert sowohl für die primäre Auswahl als auch für die Zwischenablage von Linux.
Abhängigkeiten:
sudo apt-get install xsel
Sie können das im Repository bereitgestellte vorkompilierte clipnotify verwenden oder es selbst kompilieren.
So kompilieren Sie clipnotify:
sudo apt install git build-essential libx11-dev libxtst-dev
git clone https://github.com/cdown/clipnotify.git
cd clipnotify
sudo make
Benutzen :
chmod +x "copy_without_linebreaks.sh"
.\copy_without_linebreaks.sh
quelle
Wenn Sie Acrobat verwenden, klicken Sie mit dem Cursor, sodass der Cursor im Text blinkt. (Andernfalls funktioniert es nicht.) Gehen Sie zu Erweitert, Eingabehilfen, Tags hinzufügen. Wenn Sie ein großes Dokument haben, dauert es einige Minuten, aber viel schneller als das manuelle Entfernen von Pausen. Voila!
quelle
Einfache Lösung von dieser Seite; http://www.iom3.org/news/how-instant-remove-unwanted-line-breaks-when-copying-pdf
Etwas schwammig, aber sobald Sie die Verknüpfungen unter Ihren Fingern haben, geht es viel schneller
quelle
pdftotext
und verwenden dann einen beliebigen Texteditor (mit Standard-Regex).