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!
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!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 392983
Url: https://administrator.de/contentid/392983
Ausgedruckt am: 26.11.2024 um 06:11 Uhr
5 Kommentare
Neuester Kommentar
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.
A.
Moin ...
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
Zitat von @137846:
Ansonsten lässt sich InDesign ja mit JavaScript/VBS auslesen.
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
Oh Oh (+_+), wenn das mal am Ende nich blaue Flecken gibt .
INFOS werden ich Montag nachliefern, dann werde ich mal mit den Damen kuscheln
Damit sie aus dem Stöhnen nicht mehr rauskommen oder was . Nenee, dat gibt bestimmt mal wieder Kloppe vom Sexissmusbeauftragten...
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:
Ausgegeben werden alle Nummern die auf das Muster passen und deren Seite auf der sie vorkommen.
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
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()
Viel Spaß damit falls du es brauchen kannst.
Grüße Uwe