Ordnerüberwachung - PDF Inhalte per Mail versenden

holdes

Captain
Registriert
Nov. 2007
Beiträge
3.668
Hallo Gemeinde,

ich würde gerne folgendes bewerkstelligen weiß aber noch nicht so richtig wie bzw. womit man das am besten tun könnte. Es sollen in einen Ordner PDFs gelegt werden. Dort soll ein verstecktes Feld enthalten sein (eMail Adresse, weiße Schrift auf weißem Grund). An diese eMail Adresse soll dann die PDF selbst versendet werden.

Nun ist die Frage wie und womit? Ich bin mir nicht sicher ob ein Skript das leisten kann oder welche Software hierfür Sinn ergibt. Hat jemand dazu eine Idee oder so etwas eventuell schon selbst gemacht?

Die Möglichkeiten setzen ja entweder voraus, dass ich den Text mit dem Skript selbst lesen kann damit es seine Mailadresse findet oder eine Feld Definition.
 
Soweit ich verstanden habe will unsere Dame vom Rechnungswesen damit Rechnungen erstellen und versenden lassen, leider kann der Softwarelieferant aber sowas nicht einbauen warum auch immer (CGM). Daher wäre wohl die einzige Möglichkeit die er uns anbieten kann eben dieses versteckte Feld. Ich kann also erst nach der Erzeugung eingreifen.
 
Hi...

Hä, man kann nicht aus der Software das Dokument via Mail versenden? Und der Software-Hersteller ist nicht in der Lage eine entsprechende Schnittstelle, die jede x-beliebig blöde 08/15-Software heutzutage mitbringt, zu implementieren? Sorry, aber schlechter Hersteller (würd' bei mir sofort fliegen!).

Ist das denn für den Massenversand gedacht, oder was? Ansonsten vllt. sowas?
 
CGM macht Software im Medizinbereich und ist an vieler Stelle auch damit Marktführer, dazu gibt es leider keine Alternative. Jede PDF kann von denen maximal in einen Ordner abgelegt werden und die Empfängeradresse wie oben beschrieben lediglich unsichtbar in die PDF geschrieben werden was auch die Krux an der Sache ist.
 
Ja ok, aber grad dann sollte doch so ein Hersteller solch grundlegende Funktionalitäten in seiner Software zur Verfügung stellen (können).

Wie war das - jedes Dokument einzeln oder mehrere in einem Rutsch versenden?
 
Grundsätzlich wäre es egal ob die Software oder Skript die Mails nun alle 1 Stunde alle Mails im Ordner versendet oder einzeln, Exchange Server ist vorhanden. Wichtig ist eben nur das auslesen der Mailadresse selbst innerhalb der PDF. Absenderadresse und Body kann im Prinzip immer gleich sein.
 
Na ja, man kann Daten aus PDFs extrahieren, z.B. aus Formularfeldern oder Fließtext - entweder z.B. mittels VBA oder dieses Programms.
 
holdes schrieb:
Jede PDF kann von denen maximal in einen Ordner abgelegt werden

Soweit klar.

und die Empfängeradresse wie oben beschrieben lediglich unsichtbar in die PDF geschrieben werden was auch die Krux an der Sache ist.

Aber den Teil kapiere ich nicht. Warum soll die Adresse unsichtbar beschrieben werden? Der Empfänger des PDF wird doch wohl seine eigene Adresse kennen?
 
Hayda Ministral schrieb:
Warum soll die Adresse unsichtbar beschrieben werden? Der Empfänger des PDF wird doch wohl seine eigene Adresse kennen?

Das ist nur eine Bequemlichkeitsgeschichte für den Entwickler der Software. Ich nehme an, dass für den Fall jemand hat keine Mailadresse hinterlegt weil er seine Rechnung lieber auf Papier möchte dort irgendwas generisches auftauchen könnte weshalb es so empfohlen wurde. (Oder die möchten die Vorlage aus Platzgründen nicht umändern) Das sehe ich aber eher nicht so kritisch, der Text wird im Zweifel also auch schwarz auf weiß lesbar draufstehen können.
 
Genau, die Mailadresse muss aus dem Dokument extrahiert werden und daraufhin die PDF selbst per SMTP an den Exchange übergeben/verschickt werden. Eine Logging Funktion wäre auch toll aber kein muss. Bei reinem OCR hätte ich irgendwie Bauchschmerzen wenn Zeichen falsch erkannt werden würden, daher war mein Gedanke das die PDF Felder ja auch irgendwelche Variablen haben müssten welche man direkt extrahieren kann um daraufhin die weiteren Schritte einzuleiten.
 
Was Du suchst ist möglicherweise PDF to Text -> PDF2text oder auch PDFtotext wären die Begriffe mit denen ich danach in Google suchen würde. Die Adresse würde ich mit einem möglichst einfachen Tag versehen, etwas wie
#IhreMailadresse:<hierdieAdresse># und dann schauen ob der extrahierte Text die Adresse aufweist.
 
Das könnte was sein, muss ich mal schauen ob ich damit dann nen vernünftiges Skript zusammen bekomme das alle Schritte erledigt, scheint mir auch so das PDFtotext kein OCR macht und das wäre gut so.
 
PDF2TXT macht ja nix anderes, als das von mir oben verlinkte Programm. Aber dann liegen ja auch erstmal nur 'ne Menge an rohen Textdaten vor, die auch noch weiter verarbeitet werden müssen. Und die ganzen dann noch anfallenden Arbeitsschritte machen das Ganze absurd aufwändig und unpraktisch.

Sorry, aber für mich wirkt das "schwammig" - i-wie wollt ihr da das Rad neu erfinden.
Ich kann einfach nicht nachvollziehen, wieso die Software, bei der es sich doch um eine vom Hersteller CGM(=CompuGroup Medical?) handelt, das nicht leisten können soll - was ist das denn genau für eine?
 
Die Software ist die Klientenverwaltung (Topsoz) und ja ausgeschrieben heißt der Entwickler so, nur soll das erst in 1-2 Jahren von Haus aus funktionieren wenn die Software mal komplett umgebaut wird. Der Tipp das so zu machen kam von einem MA aus deren Haus, der von einem anderen Kunden weiß dass sie das genauso handhaben wie in der Eingangsfrage beschrieben. Aus Datenschutzgründen konnte er mir aber leider keinen Kontakt vermitteln bzw. weiß er nicht welche Software diejenigen dafür benutzen.
 
Ist es möglich, dass der Hersteller die E-Mailadresse in den Metadaten der PDF (z.B. unter Keywords) speichert?
Dann könnten diese beispielsweise mittels exiftool ausgelesen werden. Ist sicher einfacher als die PDF zu parsen.

Falls das nicht möglich ist, würde ich wie oben erwähnt die PDF durchsuchen.

Code:
alle Metadaten

PS F:\exiftool> .\exiftool.exe .\01.pdf
ExifTool Version Number         : 11.98
File Name                       : 01.pdf
Directory                       : .
File Size                       : 1577 bytes
File Modification Date/Time     : 2020:05:07 13:28:40+02:00
File Access Date/Time           : 2020:05:07 13:52:23+02:00
File Creation Date/Time         : 2020:05:07 13:52:23+02:00
File Permissions                : rw-rw-rw-
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Page Count                      : 1
Title                           : TITEL
Subject                         : BETREFF
Keywords                        : user@test.tld
Creator                         : Draw
Producer                        : LibreOffice 6.2
Create Date                     : 2020:05:07 13:28:40+02:00


bestimmter Tag

PS F:\exiftool> .\exiftool.exe -Keywords .\01.pdf
Keywords                        : user@test.tld


Tag bearbeiten (falls vor dem Versenden die Adresse gelöscht werden soll)

PS F:\exiftool> .\exiftool.exe -Keywords="" .\01.pdf
    1 image files updated


Metadaten nach dem Löschen

PS F:\exiftool> .\exiftool.exe .\01.pdf
ExifTool Version Number         : 11.98
File Name                       : 01.pdf
Directory                       : .
File Size                       : 2.1 kB
File Modification Date/Time     : 2020:05:07 13:52:43+02:00
File Access Date/Time           : 2020:05:07 13:52:43+02:00
File Creation Date/Time         : 2020:05:07 13:52:23+02:00
File Permissions                : rw-rw-rw-
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Page Count                      : 1
Title                           : TITEL
Subject                         : BETREFF
Creator                         : Draw
Producer                        : LibreOffice 6.2
Create Date                     : 2020:05:07 13:28:40+02:00
 
Das mit dem EXIF klingt gut, geht aber leider aus den Kundenmöglichkeiten nicht heraus. Ich werde mal schauen ob sich mit dem PDF2TXT was machen lässt. Solange kein OCR laufen muss und das Tool den Text digital tatsächlich ausliest sollte das passen, mit OCR hab ich bei allen Herstellen keine guten Erfahrungen gemacht, da wird aus einem großen I gerne mal ein senkrechter Strich | oder andere Spielereien. :D
 
Das von Hayda Ministral verlinkte pdftotext (Xpdf command line tools) kann auch auf bestimmte Bereiche eingeschränkt werden.


Unten rechts wurde die E-Mailadresse weiß eingefärbt, also wie in der Problembeschreibung.

davor_danach.jpg

Mit den folgenden Parametern kann der zu untersuchende Bereich eingeschränkt werden:
Code:
 .\pdftotext.exe -marginl 450 -margint 840 -marginb 10 -marginr 10 -nopgbrk .\01.pdf

Die erzeugte Textdatei enthält folgende Daten.
Code:
user@test.tld


Oder direkt in stdout, am Ende werden noch etwaige Leerzeichen oder Leerzeilen entfernt.
Code:
.\pdftotext.exe -marginl 450 -margint 840 -marginb 10 -marginr 10 .\01.pdf - | ? { -not [String]::IsNullOrWhiteSpace($_) }
 
Zuletzt bearbeitet:
Zurück
Oben