Tabellen aus PDF auslesen.

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
tft
Beiträge: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
Wohnort: Dachsen
Kontaktdaten:

Tabellen aus PDF auslesen.

Beitrag von tft »

Hallo,

Ich habe mir ein Programm geschrieben, um die Konto Daten von meinem Karten Anbieter, der diese als PDF zustellt. Zu bearbeiten. Ich kopiere die Daten vom PDF mit Copy in die Zwischen Ablage und verwende diese dann, um mit einem festgelegten Muster die Daten zu Analysieren . Leider geht dabei natürlich die Tabellen Formatierung verloren. So das ich diese ziemlich umständlich wieder in eine Tabellen Vorm wandeln muss. Von dem aussortieren der nicht benötigten Daten mal ganz zu schweigen.
Aber es funktioniert schon ganz gut. Jetzt suche ich einen Weg, die Tabellen Elemente direkt aus dem PFD Dokument zu übernehmen. Hat jemand schonmal sowas gemacht und kann mir ein paar Tips, oder sogar einen Code Schnipsel empfehlen.
Jemand ne Idee?

Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Tabellen aus PDF auslesen.

Beitrag von ccode_new »

Hallo tft,

Kannst du mit reinen Textinformationen wieder eine Tabelle herstellen?

Code: Alles auswählen

Define pdfCopyString.s
pdfCopyString = GetClipboardText()
Debug ( EscapeString(pdfCopyString) )
Ich kann dir leider auch noch nicht weiterhelfen.

An die Community:

Kann man, mit STRG+C ins Clipboard kopierten Rohdaten, eine "formatiert" kopierte Tabelle, aus einer PDF-Datei einlesen?
Wie kann man so etwas bewerkstelligen?

GetClipboardData() ?
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
tft
Beiträge: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
Wohnort: Dachsen
Kontaktdaten:

Re: Tabellen aus PDF auslesen.

Beitrag von tft »

Hallo,

genau ... kann man nämlich nicht. Es werden keine Formatirungs Daten mit copiert. Sondern lediglich zwischen den Text Elementen ein Space eingefügt. Es gibt zwar programme die Tabellen Daten aus einem PDF Extrahieren können. Aber das will ich mir nicht kaufen. Es gibt ja hier auch ein PDF Modul das PDF erzeugen kann. Aber eben nicht Tabellen Daten auslesen.
Zumindestens weis ich nicht wie.

Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
Benutzeravatar
juergenkulow
Beiträge: 188
Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten

Re: Tabellen aus PDF auslesen.

Beitrag von juergenkulow »

Hallo TFT,

hast Du Deine PDF-Datei schon in eine besser lesbare SVG-Datei umgewandelt?

Gruß
Jürgen Kulow
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Tabellen aus PDF auslesen.

Beitrag von ccode_new »

juergenkulow hat geschrieben:hast Du Deine PDF-Datei schon in eine besser lesbare SVG-Datei umgewandelt?
Das ist doch Murks, da kann man auch gleich in HTML umwandeln.

Aber das Problem ist:

Man kopiere z.B. eine Tabelle aus einer PDF-Datei und füge diese in ein beliebiges Office-Programm ein.
(Auch Chrome-Office geht)
Dabei wird die kopierte Tabelle auch in seiner vollen "Tabelligkeit" angezeigt.

Aber mit GetClipboardText() gehen da unter PureBasic wahrscheinlich diverse zusätzliche Informationen flöten.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
tft
Beiträge: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
Wohnort: Dachsen
Kontaktdaten:

Re: Tabellen aus PDF auslesen.

Beitrag von tft »

Man kopiere z.B. eine Tabelle aus einer PDF-Datei und füge diese in ein beliebiges Office-Programm ein.
(Auch Chrome-Office geht)
Dabei wird die kopierte Tabelle auch in seiner vollen "Tabelligkeit" angezeigt.
eben nicht, das ist ja das Problem. Und der SVG Converter den ich probiert habe, kann keine Tabellen mit Konvertieren.
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
DarkDragon
Beiträge: 6267
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Tabellen aus PDF auslesen.

Beitrag von DarkDragon »

Es gibt nicht die eine Zwischenablage. PureBasics GetClipboardText holt nur Plaintext ab. Vielleicht hilft das hier weiter, da steht auch was zu Rich Text:

https://docs.microsoft.com/en-us/window ... rd-formats

EnumClipboardFormats ...
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
juergenkulow
Beiträge: 188
Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten

Re: Tabellen aus PDF auslesen.

Beitrag von juergenkulow »

Hallo tft,

lleider weiß ich nicht genug über Deine Tabelle in der PDF-Datei. Vielleicht kann PDF zu CSV | Zamzar - Kostenlose online Dateikonvertierung oder PDF in CSV Umwandeln (Online & Kostenlos) — Convertio das Problem Online lösen. Oder PDF-Howto oder peepdf bringen Licht in das Dunkel der PDF Tabellen. Eine mit PdfVectorOutput unter Linux oder MacOs erstelle Tabelle könnte vielleicht helfen oder eine von persönlichen Daten befreite PDF im Data Format:

Code: Alles auswählen

; Erzeuge PDF DataSection aus IncludeBinary PDF-Datei.
EingabeGroesse=?PDFEnd-?PDFStart
Encoded$ = Base64Encoder(?PDFStart,EingabeGroesse)
Laenge=Len(Encoded$)
Debug "Datasection"
Debug "  Data.i "+Str(Laenge)+","+Str(EingabeGroesse)
For i=1 To Laenge Step 64
  Debug "  Data.s "+Chr(34)+Mid(Encoded$,i,64)+Chr(34)
Next ;i 
Debug "EndDataSection"
Debug "Read.i Laenge"
Debug "Read.i AusgabeGroesse"
Debug "For i=1 To Laenge Step 64" 
Debug "  Read.s EncodedLine.s"
Debug "  Encoded.s+EncodedLine"
Debug "Next ;i"
Debug "*PDFDecoded=AllocateMemory(AusgabeGroesse)"
Debug "Base64Decoder(Encoded,*PDFDecoded,AusgabeGroesse)"
Debug "ShowMemoryViewer(*PDFDecoded,AusgabeGroesse)"
DataSection
  PDFStart:
  IncludeBinary "/mnt/TabAAAPDF.pdf" ; <-- Bitte anpassen. 
  PDFEnd:
EndDataSection
Bitte stelle Deine Fragen, denn den Erkenntnisapparat einschalten entscheidet über das einzig bekannte Leben im Universum.

Jürgen Kulow Wersten :D_üsseldorf NRW D Europa Erde Sonnensystem Lokale_Flocke Lokale_Blase Orion-Arm
Milchstraße Lokale_Gruppe Virgo-Superhaufen Laniakea Sichtbares_Universum
Benutzeravatar
tft
Beiträge: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
Wohnort: Dachsen
Kontaktdaten:

Re: Tabellen aus PDF auslesen.

Beitrag von tft »

Hallo,

danke für diese Wertvolle Info. Ich wusste nicht das man die Daten erst durch den Decoder schicken muss.
Auch die Webseite die du genannt hast ist sehr hilfreich.

Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
Benutzeravatar
tft
Beiträge: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
Wohnort: Dachsen
Kontaktdaten:

Re: Tabellen aus PDF auslesen.

Beitrag von tft »

Hallo,

da ich selber wertschätze wenn man mir hilft. So könnte für den einen oder anderen diese Lösung interessant sein.

http://www.xpdfreader.com/

Es ist OpenSource und von der Comandozeile aus funktioniert es schon mal nicht schlecht.

Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
Antworten