shredder93

Dateiname PDF die mit crystal Reports generiert wurden

Hallo zusammen,

eine vielleicht simple Frage mit der ich jedoch Probleme habe. Ich nutze Crystal Reports in Kombination mit unserem ERP System zur Erstellung unserer Formulare. Drucke ich ein solches Formular über den PDF Drucker so wir der Dateiname als "SAP Crystal Reports - Dateititel" angezeigt.

Habe ich eine Möglichkeit dort Parameter anzugeben, die den Dateinamen ändern. Schöner wäre ja z.B. der Dateititel + eine Zuordnungsnummer.

Vielen Dank für eure Hilfe!

Gruß aus der Eifel!
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 5992231543

Url: https://administrator.de/forum/dateiname-pdf-die-mit-crystal-reports-generiert-wurden-5992231543.html

Ausgedruckt am: 09.05.2025 um 15:05 Uhr

Crusher79
Crusher79 15.02.2023 aktualisiert um 16:44:22 Uhr
Goto Top
Hallo, habe es aufgegeben und biege es mit PowerShell um.

Nutze pdftotext

$pdftotext = "C:\ps\pdftotext.exe"  

Start-Process -NoNewWindow -Wait $pdftotext -ArgumentList "-simple2", "-clip", "-f 1", "-l 1", $PDFToTextFile, $TempTextFile  

Gehört noch mehr dazu. Entweder stehen Angeboutsnummern ja untereinander oder nebeneinander. Das geht ganz gut.

Ansonsten benutzt unser altes Archiv Proramm einen versteckten String. Ist einfach nur weiße Schrift. Durch so einen Hilfs-String wäre es noch leichter, da du Delimiter u.ä. selber setzten kannst:

###REF-AN-4711-20230215###

Generell kann man PDF gut extrahieren, da Text-Stream durch CR schon mitgegeben wurde.

Feld Autor/ Datei etc. in CR bietet leider wenig. Ich habe mich dann für PS und pdftotext entschieden. Ging sehr gut. Gerade wenn die CR von dir kommt, sind die Pos. ja fix.

Kommt ansonsten auf den Aufbau an. Wenn mal AN-Nummer oder RE-Nummer fehlt, kann dadurch eine Verschiebung resultierne. Muss man ausprobieren, bzw. testweise ein paar PDFs umwandeln. Wenn das Grundgerüst passt, gibs kaum Probleme.

pdftotxt kann auch Layout simulieren. Dann hast du halt Spaces als Trennung. Ich find simple oder simple2 schöner. Da alles in Plaintext linksbünding in die Datei geschrieben wird.

ANGEBOT Kunden-Nr. Angebot-Nr. Datum Seite
28808 195175 /V 17.02.21 1

Kunden und AN Nummer ahst du ja meist. Die sind ja zusammengeschrieben.

$regex_An = "(ANGEBOT )(Kunden-Nr\. )(Angebot-Nr\. )(Datum )(Seite)\r\n([\d]+)\s([\d]+)"     

$texttest | select-string -Pattern $regex_An -AllMatches | % { $DokBelegAn = $_.Matches.Groups[1].Value + "_" + $_.Matches.Groups[7].Value }  

So ungefähr. Durch Regex kann man den String sauber zerlegen und die Werte dann verwenden.

Machtes.Groups(x) = ist einfach die Gruppe die du oben in Klammern definierst hast. Hier wird nur das Wort Angebot und die AN-Nummer genommen. Alles andere kann weg. Bzw. sollte einen exakten Match liefern. Muss mann nicht unbedingt so machen.

Sieht etwas wild aus, aber es lief einwandfrei. Es sei denn, es gab aus dem ERP mal keinen Vertreter oder Sachbearbeiter. Dann gab es bei der AB ein Problem:

$regex_AbRe = "(.*)\r\n(Ihr Ansprechpartner: )(Kunden-Nr\. )((Auf|Rech)\.-Nr\. )(Datum )(Seite)\r\n(.*)\s([\d]+)\s([\d]+)"  

Die Legende muss man nicht unbedingt so mit reinnehmen. Sind aber gute Ankerpunkte, da es exakt so IMMER von CR ausgegeben wurde.

IF ($Belegnr.Length -eq 0) { $Belegnr = "MANUELL_ZUORDNEN" }  

War die Numemr mal nicht ermittelbar hab ich diesen Text genommen. So siehte jeder am Dateinamen das etwas nicht stimmt.

Kann man noch anders gerstalten, aber es lief sehr sauber.

Verarbeitungszeit: < 2 Sekunden.

mfg Crusher

PS: Ich nutze PDFCreator 1.3.x - kostenlose Server Variante.

Normal kann ja CR auch PDF exportieren. Hier wird das PDF erstellt und im Anschluss wie oben beschrieben manipuliert. Dateiname geändert und noch Briefbogen hinzugefügt. Dann beim User abgelegt.

Du könntest auch PDF aus CR in einen Hotfolder speichern, wo dann PS die Datei wie oben umwandelt.