florian961988
Goto Top

Katalog auslesen

Hallo,

ich möchte ein Arbeitsprozess optimieren und zwar bin ich ja Admin in einem mittelgroßen Handelsunternehmen,
wir bringen jedes Jahr einen Katalog raus(wunsch von Chef!), naja daran will ich auch nicht rütteln!
Mir geht es darum, jedes Jahr setzen sich 2 leute hin und Blättern den Katalog durch und suchen die Artikelnummern raus und die Seitenzahlen!

Ich versuche gerade eine Methode zu finden, per Skript oder Powershell, den Katalog auszulesen, die Artikelnummmern in eine seperate Datei zu schreiben und daneben dann die Katalog - seite

Der Katalog liegt als PDF oder Indisgn Datei vor!

Content-Key: 392983

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

Ausgedruckt am: 19.03.2024 um 03:03 Uhr

Mitglied: 137846
137846 16.11.2018 aktualisiert um 14:51:52 Uhr
Goto Top
Sicher geht das, aber wenn ihr mit Indesign arbeitet hat man doch meistens schon eine Datenbank (XML,CSV, SQL) aus denen die Artikel gelesen und in Indesign eingelesen werden. Kommt also drauf an wie ihr das mit Indesign macht, ich hoffe nicht jeden Artikel manuell (das wäre je nach Menge Kopfschüttel). Ansonsten lässt sich InDesign oder PDF ja mit JavaScript/VBS auslesen. Alles also hochindiviuell, besorg dir einen Programmierer der das für euch macht. Mit den mageren Infos reist du hier nichts auf.

A.
Mitglied: ashnod
ashnod 16.11.2018 aktualisiert um 14:53:30 Uhr
Goto Top
Moin ...

Zitat von @137846:
Ansonsten lässt sich InDesign ja mit JavaScript/VBS auslesen.

JS wäre da auch mein erster Gedanke auch im Acrobat ... setzt aber natürlich voraus das die Artikelnummer nicht als grafische Elemente eingebettet wurden.

Artikelnummern müssten doch aber auf jeden Fall bekannt sein ... irgendjemand muss die ja in den Katalog eingepflegt haben ....

VG
Mitglied: Florian961988
Florian961988 16.11.2018 um 14:58:43 Uhr
Goto Top
Naja

den Prozess im In Design habe ich mich noch gar nicht angeschaut,
es saßen da nur zwei Damen am Stöhnen und haben den Katalog durch geblättert und das finde ich ineffektiv!

INFOS werden ich Montag nachliefern, dann werde ich mal mit den Damen kuscheln face-smile
Mitglied: 137846
137846 16.11.2018 aktualisiert um 16:45:06 Uhr
Goto Top
Zitat von @Florian961988:


es saßen da nur zwei Damen am Stöhnen
Oh Oh (+_+), wenn das mal am Ende nich blaue Flecken gibt face-wink.
INFOS werden ich Montag nachliefern, dann werde ich mal mit den Damen kuscheln face-smile
Damit sie aus dem Stöhnen nicht mehr rauskommen oder was face-wink. Nenee, dat gibt bestimmt mal wieder Kloppe vom Sexissmusbeauftragten...
Mitglied: colinardo
Lösung colinardo 19.11.2018 aktualisiert um 14:59:22 Uhr
Goto Top
Servus @Florian961988 ,
ein Beispiel für das Auslesen eines PDFs (Analog zu den Voraussetzungen (dll) wie in diesem Kommentar) mit einem Powershell-Skript.

Anpassen muss man den Pfad zu iTextSharp.dll, den Pfad in dem das/die PDF(s) liegen, dem Regex-Pattern in Zeile 7 der die Nummern aus dem Textstream der PDFs liest, und dem Pfad zur Ausgabedatei.
Das du hier das genaue Format der Nummern nicht nennst mache ich mal ein Beispiel mit einem Muster das exakt so aussieht: ARTNR.:123456 und jeweils von einem Begrenzer wie Leerzeichen vor und nach dem Muster umschlossen ist. Durch die Anpassung dieses Patterns is es möglich das an alle nur erdenklichen Muster abzuändern.
Ausgegeben werden alle Nummern die auf das Muster passen und deren Seite auf der sie vorkommen.
# ------------------------------------------------------
# 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()
Für persönliche Anpassungen an deine Umgebung und Nummernschemata darfst du dich gerne via PN an mich wenden.

Viel Spaß damit falls du es brauchen kannst.
Grüße Uwe