Benutzer:Andreas Plank/Technische Hilfe für Literaturverwaltung: Unterschied zwischen den Versionen

Aus Open Source Ecology - Germany
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „== PDF Dateien == Voraussetzung: Linuxprogramm <code>pdftk</code> Alle Lesezeichen oder „Überschriften der Seitenstruktur“ aus einer PDF-Datei herausles…“)
 
 
Zeile 5: Zeile 5:
 
Alle Lesezeichen oder „Überschriften der Seitenstruktur“ aus einer PDF-Datei herauslesen:
 
Alle Lesezeichen oder „Überschriften der Seitenstruktur“ aus einer PDF-Datei herauslesen:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
pdftk "Langbein - 1841 - Gedichte.pdf" dump_data_utf8 | grep '^BookmarkTitle\|^BookmarkPageNumber' | sed --regexp-extended '/BookmarkTitle/{N; s@BookmarkTitle: @@; s@\nBookmarkPageNumber: ([0-9]+)@ (Seite \1)@; /Front Cover/d } '
+
pdftk "Langbein - 1841 - Gedichte.pdf" dump_data_utf8 | \
 +
  grep '^BookmarkTitle\|^BookmarkPageNumber' | \
 +
  sed --regexp-extended '/BookmarkTitle/{N; s@BookmarkTitle: @@; s@\nBookmarkPageNumber: ([0-9]+)@ (Seite \1)@; /Front Cover/d } '
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
Erklärung:
 +
* für die Datei <code>"Langbein - 1841 - Gedichte.pdf"</code> → <code>dump_data_utf8</code> alle Daten im UTF8 Format auslesen
 +
* <code>grep '…'</code> die Ausgabe gefiltert abgreifen, nur <tt>BookmarkTitle</tt> oder <tt>BookmarkPageNumber</tt> je nur am Zeilenanfang
 +
* <code>sed '…'</code> die davor gefilterte Ausgabe so umformatieren, daß Lesezeichenbezeichnung (<tt>BookmarkTitle</tt>) und Seitennummer (<tt>BookmarkPageNumber</tt>) nur in einer Zeile ausgedrückt werden
 +
** beim Auffinden von <code>/BookmarkTitle/</code> mache folgendes <code>{…}</code>
 +
**# <code>N;</code> verbinde nachfolgende Zeile als <tt>'Zeile_gefunden{{Textfarbe|orange|\n}}Zeile_nachfolgende'</tt>
 +
**# <code>s@…suche…@…ersetze…@;</code> führe Suchersetzungen durch
 +
**# <code>/Front Cover/d</code> beim Finden von <tt>Front Cover</tt> lösche gesamte Zeilenfügung (die ja schon vorher verändert wurde: '…\n…')
  
 
Beispielergebnis:
 
Beispielergebnis:

Aktuelle Version vom 27. März 2022, 16:54 Uhr

PDF Dateien

Voraussetzung: Linuxprogramm pdftk

Alle Lesezeichen oder „Überschriften der Seitenstruktur“ aus einer PDF-Datei herauslesen:

pdftk "Langbein - 1841 - Gedichte.pdf" dump_data_utf8 | \
  grep '^BookmarkTitle\|^BookmarkPageNumber' | \
  sed --regexp-extended '/BookmarkTitle/{N; s@BookmarkTitle: @@; s@\nBookmarkPageNumber: ([0-9]+)@ (Seite \1)@; /Front Cover/d } '

Erklärung:

  • für die Datei "Langbein - 1841 - Gedichte.pdf"dump_data_utf8 alle Daten im UTF8 Format auslesen
  • grep '…' die Ausgabe gefiltert abgreifen, nur BookmarkTitle oder BookmarkPageNumber je nur am Zeilenanfang
  • sed '…' die davor gefilterte Ausgabe so umformatieren, daß Lesezeichenbezeichnung (BookmarkTitle) und Seitennummer (BookmarkPageNumber) nur in einer Zeile ausgedrückt werden
    • beim Auffinden von /BookmarkTitle/ mache folgendes {…}
      1. N; verbinde nachfolgende Zeile als 'Zeile_gefunden\nZeile_nachfolgende'
      2. s@…suche…@…ersetze…@; führe Suchersetzungen durch
      3. /Front Cover/d beim Finden von Front Cover lösche gesamte Zeilenfügung (die ja schon vorher verändert wurde: '…\n…')

Beispielergebnis:

Richard Löwenherz und Blondel  (Seite 44)
Der junge Landmann  (Seite 57)
Warnung  (Seite 70)
Die lange Predigt  (Seite 83)
Die neue Eva  (Seite 96)
Die unglücliden Bogelſteller  (Seite 110)
…