ubuntuusers.de

PDF Tabelle auswerten

Status: Ungelöst | Ubuntu-Version: Ubuntu 13.04 (Raring Ringtail)
Antworten |

gArstiges

Anmeldungsdatum:
7. November 2013

Beiträge: Zähle...

Hallo alle,

wir haben gerade die Aufgabe PDF-Dokumente, die wie folgt aufgebaut sind(http://www.zv.uni-leipzig.de/fileadmin/user_upload/UniStadt/personaldezernat/pdf/Ausbildungsrahmenplan_04.pdf) auszuwerten um sie weiter verarbeiten zu können, also die einzelnen Zeilen und Spalten einander zuordnen zu können. Man soll z.B. eine Lfd Nr oder einen Inhalt aus der zweiten Spalte auswählen können und die dazugehörigen Inhalte ausgegeben bekommen...

Mit pdftotext (-layout) bekommt man den Text immerhin schon halbwegs strukturiert ausgegeben, aber es fehlen die Kenntnisse für das weitere Vorgehen :/

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Hi gArstiges,

erstmal herzlich willkommen hier auf dem Forum !

Da habt Ihr aber eine blöde Aufgabe bekommen, wenn Ihr wirklich aus so einem pdf wieder die Originalstruktur herstellen sollt, und das am besten auch noch "automatisch" ...
Du siehst ja in der Ausgabe von pdftotext, wie unzusammenhängend die einzelnen Textschnipsel in dem pdf stehen:

Anlage 2 Teil A zu § 11
           Ausbildungsrahmenplan für die Berufsausbildung
             zum Fachinformatiker/zur Fachinformatikerin
                                - Sachliche Gliederung -
Abschnitt I: Gemeinsame Ausbildungsinhalte
                                Fertigkeiten und Kenntnisse, die unter Einbezie-
 Lfd           Teil des
                                hung selbständigen Planens, Durchführens und
 Nr. Ausbildungsberufsbildes
                                Kontrollierens zu vermitteln sind
  1                2                                        3
  1  Der Ausbildungsbetrieb
     (§ 10 Abs. 1 Nr. 1)
 1.1 Stellung, Rechtsform und    a) Aufgaben und Stellung des Ausbildungsbetriebes
     Struktur                       im gesamtwirtschaftlichen Zusammenhang be-
     (§ 10 Abs. 1 Nr. 1.1)          schreiben
                                 b) Aufbau des ausbildenden Betriebes erläutern
                                 c) Art und Rechtsform des Betriebes erläutern
                                 d) die Zusammenarbeit des Ausbildungsbetriebes mit
                                    Wirtschaftsorganisationen, Verbänden, Behörden
                                    und Gewerkschaften beschreiben
 1.2 Berufsbildung, Arbeits- und a) rechtliche Vorschriften zur Berufsausbildung erläu-
     Tarifrecht                     tern, Rechte und Pflichten aus dem Ausbildungs-
     (§ 10 Abs. 1 Nr. 1.2)          verhältnis erklären
                                 b) die Ausbildungsordnung mit dem betrieblichen
                                    Ausbildungsplan vergleichen
                                 c) die Notwendigkeit weiterer beruflicher Qualifizie-
                                    rung begründen
                                 d) berufliche Fortbildungsmöglichkeiten beschreiben
                                    und Aufstiegsmöglichkeiten nennen
                                 e) wesentliche Bestimmungen des Arbeits- und Tarif-
                                    rechtes beschreiben und ihre Bedeutung für das
                                    Arbeitsverhältnis erklären
                                 f) eigene Entgeltabrechnung erläutern
                                 g) Grundlagen, Aufgaben und Arbeitsweise der be-
                                    triebsverfassungsrechtlichen oder personalvertre-
                                    tungsrechtlichen Organe des ausbildenden Betrie-
                                    bes beschreiben
 1.3 Sicherheit und Gesundheits- a) Gefährdung von Sicherheit und Gesundheit am
     schutz bei der Arbeit          Arbeitsplatz feststellen und Maßnahmen zu ihrer
     (§ 10 Abs. 1 Nr. 1.3)          Vermeidung ergreifen
                                 b) berufsbezogene Arbeitsschutz- und Unfallverhü-
                                    tungsvorschriften anwenden
                                 c) Verhaltensweisen bei Unfällen beschreiben sowie
                                    erste Maßnahmen einleiten
                                 d) Vorschriften des vorbeugenden Brandschutzes
                                    anwenden; Verhaltensweisen bei Bränden be-
                                    schreiben und Maßnahmen zur Brandbekämpfung
                                    ergreifen



                                      Seite 1 von 14

(schließlich orientiert sich pdf am Seitenlayout, und nicht an der Tabellenstruktur !)

Da müsstest Du erstmal die ersten 5 Zeichen jeder Zeile der 1. Spalte zuordnen, dann 27 Zeichen der 2. Spalte und den Rest der 3. Spalte, (das geht ja noch)
aber dann kommt das Problem: welches Zeilenstück in der 1. Spalte gehört zu welchem in der 2. Spalte ? - und dazu müssen teilweise auch noch mehrere Zeilen zusammengezogen werden ...
Die zusammengehörigen Zeilen bekommst Du teilweise besser mit der Option -raw, aber dann fehlen wieder die Feldgrenzen. Womöglich ist das für Deine Aufgabenstellung aber doch sinnvoller ?

Eine ziemlich lausige Sache, würde ich sagen. Sowas ist zwar mit awk (z.B.) im Prinzip machbar, aber eine echte Fleißarbeit !
Wird sowas echt von Euch verlangt ??

Ein halb-automatischer Weg wäre vielleicht, an der 5. und 33. Stelle ein Komma einzufügen, und das Ganze dann als oOO- Tabelle zu importieren. Dann musst Du zwar immer noch die einzelnen Zellen zusammenziehen, aber da siehst Du wenigstens was Du machst.

track

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13209

gArstiges schrieb:

Mit pdftotext (-layout) bekommt man den Text immerhin schon halbwegs strukturiert ausgegeben, aber es fehlen die Kenntnisse für das weitere Vorgehen :/

Ich finde es zumindest seltsam, dass Du eine Aufgabe bekommen haben sollst, die Du nicht lösen kannst. Hat es denn gar keine Hinweise gegeben, welche Werkzeuge Ihr nutzen sollt? Möglicherweise ist es auch sinnvoller, auf den original PDF-Strukturen zu arbeiten. Schau doch mal nach Bibliotheken für eine Dir bekannte Programmiersprache, die PDF-Dateien lesen und verarbeiten können.

Ciao

robert

gArstiges

(Themenstarter)

Anmeldungsdatum:
7. November 2013

Beiträge: 4

track schrieb:

Ein halb-automatischer Weg wäre vielleicht, an der 5. und 33. Stelle ein Komma einzufügen

Und wie würde man da vorgehen?

edit: Ok, das haben wir hinbekommen:

sed -e 's/\(.\{4\}\)/\1;/' -e 's/\(.\{33\}\)/\1;/' text1 > text2

das Problem ist nur dass pdftotext das ganze nicht einheitlich formatiert und das ganze weiter unten nicht mehr funktioniert :/

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Bei Deinem sed- Befehl habe ich die Suchausdrücke noch ein wenig getuned:

  1. sie am Zeilenanfang verankert, und

  2. sie nach dem Leerzeichen suchen lassen.

Dann sieht das doch schon ganz manierlich aus:

track@lucid:~$ pdftotext -f 1 -l 1 -layout rahmenplan.pdf -  |  sed -e 's/^\(.\{4\}\) /\1;/' -e 's/^\(.\{32\}\) /\1;/'
    ;                           ;                          Ausbildungsrahmenplan Fachinformatiker / Fachinformatikerin




Anlage 2 Teil A zu § 11
    ;      Ausbildungsrahmenplan;für die Berufsausbildung
    ;        zum Fachinformatiker/zur Fachinformatikerin
    ;                           - Sachliche Gliederung -
Abschnitt I: Gemeinsame Ausbildungsinhalte
    ;                           Fertigkeiten und Kenntnisse, die unter Einbezie-
 Lfd;          Teil des
    ;                           hung selbständigen Planens, Durchführens und
 Nr.;Ausbildungsberufsbildes
    ;                           Kontrollierens zu vermitteln sind
  1 ;              2            ;                           3
  1 ;Der Ausbildungsbetrieb
    ;(§ 10 Abs. 1 Nr. 1)
 1.1;Stellung, Rechtsform und   ;a) Aufgaben und Stellung des Ausbildungsbetriebes
    ;Struktur                   ;   im gesamtwirtschaftlichen Zusammenhang be-
    ;(§ 10 Abs. 1 Nr. 1.1)      ;   schreiben
    ;                           ;b) Aufbau des ausbildenden Betriebes erläutern
    ;                           ;c) Art und Rechtsform des Betriebes erläutern
    ;                           ;d) die Zusammenarbeit des Ausbildungsbetriebes mit
    ;                           ;   Wirtschaftsorganisationen, Verbänden, Behörden
    ;                           ;   und Gewerkschaften beschreiben
 1.2;Berufsbildung, Arbeits- und;a) rechtliche Vorschriften zur Berufsausbildung erläu-
    ;Tarifrecht                 ;   tern, Rechte und Pflichten aus dem Ausbildungs-
    ;(§ 10 Abs. 1 Nr. 1.2)      ;   verhältnis erklären
    ;                           ;b) die Ausbildungsordnung mit dem betrieblichen
    ;                           ;   Ausbildungsplan vergleichen
    ;                           ;c) die Notwendigkeit weiterer beruflicher Qualifizie-
    ;                           ;   rung begründen
    ;                           ;d) berufliche Fortbildungsmöglichkeiten beschreiben
    ;                           ;   und Aufstiegsmöglichkeiten nennen
    ;                           ;e) wesentliche Bestimmungen des Arbeits- und Tarif-
    ;                           ;   rechtes beschreiben und ihre Bedeutung für das
    ;                           ;   Arbeitsverhältnis erklären
    ;                           ;f) eigene Entgeltabrechnung erläutern
    ;                           ;g) Grundlagen, Aufgaben und Arbeitsweise der be-
    ;                           ;   triebsverfassungsrechtlichen oder personalvertre-
    ;                           ;   tungsrechtlichen Organe des ausbildenden Betrie-
    ;                           ;   bes beschreiben
 1.3;Sicherheit und Gesundheits-;a) Gefährdung von Sicherheit und Gesundheit am
    ;schutz bei der Arbeit      ;   Arbeitsplatz feststellen und Maßnahmen zu ihrer
    ;(§ 10 Abs. 1 Nr. 1.3)      ;   Vermeidung ergreifen
    ;                           ;b) berufsbezogene Arbeitsschutz- und Unfallverhü-
    ;                           ;   tungsvorschriften anwenden
    ;                           ;c) Verhaltensweisen bei Unfällen beschreiben sowie
    ;                           ;   erste Maßnahmen einleiten
    ;                           ;d) Vorschriften des vorbeugenden Brandschutzes
    ;                           ;   anwenden; Verhaltensweisen bei Bränden be-
    ;                           ;   schreiben und Maßnahmen zur Brandbekämpfung
    ;                           ;   ergreifen



    ;                           ;     Seite 1 von 14 

Damit könnte man es ja schon fast in awk verhackstücken ... 😉 (vor allem die Spaltenüberschriften muss man ja noch zusammensuchen)
Aber es kommt natürlich drauf an, was mit den Daten weiter geschehen soll !

LG,

track

p.s.: die Korrektur für die Spaltenköpfe kann man auch noch in sed mit hineinstecken:

sed -e 's/^\(.\{4\}\) /\1;/' -e 's/^\(.\{32\}\) /\1;/; s/\(                \)\([a-zB-Z]\)/\1;\2/'

(und eine entsprechende Korrektur für S. 14, wo es nicht passt. ... ich sagte ja schon: es wird einiges an Bastelei ... 😉 )

gArstiges

(Themenstarter)

Anmeldungsdatum:
7. November 2013

Beiträge: 4

Ja nur ist die Ausgabe von pdftotext nicht allzu einheitlich, weshalb das dann wieiter unten schon wieder so aussieht:

> 2   Geschäfts- und
    Leistungsprozesse
    (§ 10 Abs. 1 Nr. 2)
2.1 Leistungserstellung und -   a) den Prozess der Leistungserstellung im Ausbil-
    verwertung                  ;  dungsbetrieb beschreiben
    (§ 10 Abs. 1 Nr. 2.1)       b) Wirtschaftlichkeit und Produktivität betrieblicher
    ;                           ;  Leistungen beurteilen
    ;                           ;c) Einfluss der Wettbewerbssituation auf die Leis-
    ;                           ;  tungserstellung und -verwertung darstellen
    ;                           ;d) die Rolle von Kunden und Lieferanten für die Leis-
    ;                           ;  tungserstellung und -verwertung erläutern
2.2 Betriebliche Organisation   a) Zuständigkeiten für die unterschiedlichen Aufgaben
    (§ 10 Abs. 1 Nr. 2.2)       ;  im Ausbildungsbetrieb unterscheiden
    ;                           ;b) die Zusammenarbeit zwischen den einzelnen Or-
    ;                           ;  ganisationseinheiten beschreiben, insbesondere In-
    ;                           ;  formationsflüsse und Entscheidungsprozesse dar-
    ;                           ;  stellen
    ;                           ;c) Vor- und Nachteile von zentralen und dezentralen
    ;                           ;  Organisationsformen erläutern
    ;                           ;d) Schwachstellen im Betriebsablauf aufzeigen, Ver-
    ;                           ;  besserungen vorschlagen
>  

gArstiges

(Themenstarter)

Anmeldungsdatum:
7. November 2013

Beiträge: 4

Edit:

Das sieht tatsächlich schon ganz gut aus:

>   1 ; Der Ausbildungsbetrieb
  ; (§ 10 Abs. 1 Nr. 1)
1.1; Stellung, Rechtsform und   ;   a) Aufgaben und Stellung des Ausbildungsbetriebes im
   ; Struktur                   ;      gesamtwirtschaftlichen Zusammenhang beschreiben
   ; (§ 10 Abs. 1 Nr. 1.1)      ;   b) Aufbau des ausbildenden Betriebes erläutern
   ;                            ;   c) Art und Rechtsform des Betriebes erläutern
   ;                            ;   d) die Zusammenarbeit des Ausbildungsbetriebes mit
   ;                            ;      Wirtschaftsorganisationen, Verbänden, Behörden und
   ;                            ;      Gewerkschaften beschreiben
1.2; Berufsbildung, Arbeits- und;   a) rechtliche Vorschriften zur Berufsausbildung
   ; Tarifrecht                 ;      erläutern, Rechte und Pflichten aus dem
   ; (§ 10 Abs. 1 Nr. 1.2)      ;      Ausbildungsverhältnis erklären
   ;                            ;   b) die Ausbildungsordnung mit dem betrieblichen
   ;                            ;      Ausbildungsplan vergleichen
   ;                            ;   c) die Notwendigkeit weiterer beruflicher Qualifizierung
   ;                            ;      begründen
   ;                            ;   d) berufliche Fortbildungsmöglichkeiten beschreiben und
   ;                            ;      Aufstiegsmöglichkeiten nennen
   ;                            ;   e) wesentliche Bestimmungen des Arbeits- und
   ;                            ;      Tarifrechtes beschreiben und ihre Bedeutung für das
   ;                            ;      Arbeitsverhältnis erklären
   ;                            ;   f) eigene Entgeltabrechnung erläutern
   ;                            ;   g) Grundlagen, Aufgaben und Arbeitsweise der
   ;                            ;      betriebsverfassungsrechtlichen oder
   ;                            ;      personalvertretungsrechtlichen Organe des
   ;                            ;      ausbildenden Betriebes beschreiben
1.3; Sicherheit und             ;   a) Gefährdung von Sicherheit und Gesundheit am
   ; Gesundheitsschutz bei der  ;      Arbeitsplatz feststellen und Maßnahmen zu ihrer
   ; Arbeit                     ;      Vermeidung ergreifen
   ; (§ 10 Abs. 1 Nr. 1.3)      ;   b) berufsbezogene Arbeitsschutz- und
   ;                            ;      Unfallverhütungsvorschriften anwenden
   ;                            ;   c) Verhaltensweisen bei Unfällen beschreiben sowie
   ;                            ;      erste Maßnahmen einleiten
   ;                            ;   d) Vorschriften des vorbeugenden Brandschutzes
   ;                            ;      anwenden; Verhaltensweisen bei Bränden
   ;                            ;      beschreiben und Maßnahmen zur Brandbekämpfung
   ;                            ;      ergreifen

>  

Jetzt stellen sich mir nur folgende Frage:

Wie kann man jedes Semikolon, das zwischen 2 Zeichen steht um eine Position nach rechts verschieben? Am besten bis kein Semikolon mehr zwischen 2 Zeichen steht.

    ;                            ;       sachbezogenen Ergebnisses anwenden
4   ;  Informations- und
    ;  telekommunikationstechnisc;h
    ;  e Produkte und Märkte
    ;  (§ 10 Abs. 1 Nr. 4)
4.1 ;Einsatzfelder und           ;    a) marktgängige Systeme der Informations- und
    ;Entwicklungstrends          ;       Telekommunikationstechnik nach Einsatzbereichen,
    ;  (§ 10 Abs. 1 Nr. 4.1)     ;       Leistungsfähigkeit und Wirtschaftlichkeit
    ;                            ;       unterscheiden

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Willst Du die ganzen Leerzeichen weg kriegen ? - dann musst Du das einfach machen, z.B. gleich noch mit sed:

sed -e 's/^\(.\{3,4\}\) /\1;/' -e 's/^\(.\{30,35\}[^)]\) /\1;/; s/ *; */;/g'

Die ganzen Leerzeichen beseitigen wäre aber wohl der letzte Schritt, vorher müssen alle Spalten richtig stimmen !

Hierbei habe ich schon mal Breiten-Bereiche für die Spalten benutzt, denn die 1. Spalte ist ja mal 3 und mal 4 Zeichen breit, ist aber auf jeden Fall durch ein Leerzeichen gekennzeichnet. Und bei der 2. Spalte genauso.

... so muss man sich da weiter herantasten: gucken, was nicht passt, und dann weiter an den Spaltenbreiten herumschrauben.
Und wenn es zum Schluss gar nicht passt (z.B. beim Untertitel "-;Sachliche Gliederung -", wo das ; falsch steht) muss man eben gezielt einzeln nachbessern:

sed -e 's/^\(.\{3,4\}\) /\1;/' -e 's/^\(.\{30,35\}[^)]\) /\1;/; s/ -;/;- /'

(ik sach ja: dat is Fummelei un Fleißaabeit !)


Edit:
Oder vielleicht noch besser: man tastet sich von vorne nach hinten heran, setzt also erstmal an der 30-32. Stelle das ;, und dann wo nur ein ; steht, (also das 2. ; fehlt) bessert man an der an der 33-35. Stelle nach:

sed -e 's/^\(.\{3,4\}\) /\1;/' -e 's/^\(.\{30,32\}\) /\1;/; /^[^;]*;[^;]*$/ s/^\(.\{33,35\}\) /\1;/'

Du musst übrigens aufpassen, dass nicht ein ;, das ganz normal im Text kommt, Dir die Geschichte zerschießt: das kommt z.B. im Punkt 1.3 mal vor: "anwenden; Verhaltensweisen bei Bränden" → dann lieber ein anderes Trennzeichen nehmen, z.B. | oder [TAB] (das benutze ich meistens)


Edit 2:
Noch'n Versuch: die 2. Spalte bei 2 Leerzeichen an der 30-35. Stelle setzen, und danach (wenn das 2. Spaltenende fehlt) immer dort, wo dahinter ein "Leerzeichen, irgendwas, Klammer zu" steht:

sed 's/^\(.\{3,4\}\) /\1|/; s/^\(.\{30,35\}\)  /\1|/; /^[^|]*|[^|]*$/ s/^\(.\{30,35\}\) \(.)\)/\1|\2/; s/    Telefon/|&/'

Die Fußzeile mit "Telefon" drin habe ich da auch noch mit korrigiert ...

LG,

track

Antworten |