akeipra
Goto Top

PDF Lieferplan zu Excel Übersicht

Hallo ADMINISTRATOR-Community,

ich frage mich, ob Excel das richtige Tool dafür ist. Habt ihr vielleicht eine Idee, wie man es umsetzen könnte? Zum Beispiel, wie man 20 PDFs auslesen und in eine übersichtliche Tabelle formatieren kann?

Die PDFs haben alle das gleiche Format. Im Laufe eines Arbeitstages werden die PDFs willkürlich geschickt und können ältere Versionen überschreiben. Man erkennt die verschiedenen Versionen anhand des Artikels und der fortlaufenden Dokumentennummer. Es handelt sich dabei um Lieferpläne.

Habt ihr Tipps oder Vorschläge, wie man das am besten angehen könnte? Ich bin mir nicht sicher, ob Excel die beste Lösung ist, und bin offen für alternative Ansätze.

Das Ziel wäre eine einzige Übersicht zu erstellen, in der man direkt sieht, wann welcher Artikel als nächste geliefert werden soll.

Ich habe es bereits mit Tabula versucht zu konvertieren, leider nicht zufriedenstellend.

Danke schon mal für eure Hilfe!
Anbei noch ein Screenshot der Tabelle.

PS: In der Regel gibt es WebEDI Schnittstellen, die aber nicht verfügbar sind.
beispiel

Content-Key: 8077037821

Url: https://administrator.de/contentid/8077037821

Printed on: December 6, 2023 at 04:12 o'clock

Mitglied: 7907292512
7907292512 Aug 08, 2023 updated at 10:35:44 (UTC)
Goto Top
Member: Akeipra
Akeipra Aug 08, 2023 at 15:24:08 (UTC)
Goto Top
Vielen Dank - die Suche hätte ich in der Tat vorher ausprobieren könne.

Ich habe mir alle 3 Lösungen angeschaut, offensichtliche waren die anderen Thread schlauer.

Ich bekomme die Lösungen leider nicht umgesetzt.
Member: Trommel
Trommel Aug 08, 2023 updated at 15:30:35 (UTC)
Goto Top
Zitat von @Akeipra:
Ich bekomme die Lösungen leider nicht umgesetzt.

Was hast Du denn bereits probiert - wo kommst Du nicht weiter?

Trommel
Member: Akeipra
Akeipra Aug 09, 2023 at 11:26:01 (UTC)
Goto Top
Ich habe XPDFreader installiert und versucht den Code anzupassen, VBA Code anzupassen.

Excel schmeisst mir immer eine Fehlermeldung aus.

Zumal versteh ich nicht wie erkannt wird, wenn ich die Sachnummer des Lieferers benötige.
Denn die Formularfelder sind ja an sich nicht benannt.

# ------------------------------------------------------
# Pfad in dem das/die PDF(s) liegen
$PDFQUELLE = "D:\Katalog"    
# Pfad zur iTextsharp DLL
$PATH_ITEXTSHARP = "D:\Katalog\itextsharp.dll"    
# Regex-Pattern für Artikelnummernformat
$PATTERN = '(?is)\b(ARTNR\.:\d+)\b'    
# Ausgabedatei
$OUTFILE = 'D:\Katalog\artikelnummern.csv'    
# ------------------------------------------------------

# Mindestens PS 3.0
if ($PSVersionTable.PSVersion.Major -lt 3){write-host "ERROR: Minimum Powershell Version 3.0 is required!" -F Yellow; return}      

# iTextSharp DLL laden
Add-Type -Path $PATH_ITEXTSHARP -EA Stop

# Alle PDF-Dateien des Skript-Ordners verarbeiten und Artikelnummern extrahieren
gci $PDFQUELLE -Filter *.pdf -File | %{
    try{
        # PDF Reader Object erstellen
        $reader = new-object iTextSharp.text.pdf.PdfReader $_.Fullname
         # Jede Seite des PDFs verarbeiten
         1..($reader.NumberOfPages) | %{
                # Seitennummer
                $page = $_
                # Extrahiere den Text des PDFs, lese all Artikelnummern aus und geben dazu die aktuelle Seite als Custom-Object aus
                [regex]::matches(([iTextSharp.text.pdf.parser.PdfTextExtractor]::GetTextFromPage($reader,$page)),$PATTERN).Captures | ?{$_.Success} | %{
                    [pscustomobject]@{'Artikelnr' = $_.Groups[1].Value; Seite = $page}    
                }
         }
    }catch{
        throw $_
    }
} | export-csv $OUTFILE -Delimiter ";" -NoType -Encoding UTF8    

# object cleanup
$reader.Close()
$reader.Dispose()
Mitglied: 7907292512
7907292512 Aug 09, 2023 updated at 12:25:27 (UTC)
Goto Top
Wenn du uns so ein PDF mal zum Download stellst kann man sicher weiterhelfen, da man wissen muss wie der Text aus dem PDF durch iTextSharp extrahiert wird. Hat man das kann man sich Regex-Patterns bauen die die benötigten Teile extrahieren.
Zumal versteh ich nicht wie erkannt wird, wenn ich die Sachnummer des Lieferers benötige.
Das macht man mit dem Regular-Expression-Pattern in Zeile 7.
Regular Expressions lernen

Hätte diesen Beitrag hier wohl passender gefunden, unten im Kommentar gibt es wohl auch die Variante um Daten aus dem PDF in eine CSV zu exportieren
PDF Formular mit Daten aus Excel füttern?
Bleibt dann immer noch die Frage ob in deinem PDF noch Formularfelder vorhanden sind oder nicht.
Member: colinardo
colinardo Sep 19, 2023 updated at 10:00:37 (UTC)
Goto Top
Servus @Akeipra.
Ich habe gerade eine Anleitung für ein Powershell-CMDLet veröffentlicht das genau das kann, nämlich Text gezielt anhand seiner absoluten Position aus einem PDF-Dokument auslesen:
Powershell: Text anhand seiner Position aus PDF-Dokumenten auslesen
Damit solltest du in deinem Fall klarkommen (wenn nicht, melde dich bei mir). Du brauchst nur die benötigten Text-Positionen im PDF ausmessen der Rest geschieht dann wie von selbst face-wink

Gruß @colinardo