Externe PHP Library einbinden

Hallo Zusammen,

habe nun schon einiges gelesen und auch schon ein paar „hilfreiche“ Hinweise gefunden. Also was habe ich vor:
Ich würde gerne die Library „PDF Parser“ https://www.pdfparser.org in IP-Symcon einbinden, so dass ich die Funktionen in Scripts nutzen kann. Da ich all meine Papierdokumente inzwischen einscanne, möchte ich mein persönliches automatisiertes Eingangsmangement aufbauen. Kann mir jemand kompakt erklären wie ich die Library genau einbinde? Danke!!!

Gruß
Frank

Das kann wohl nur IP-Symcon beantworten ob das geht. Bei IP-Symcon in Windows kannst Du Erweiterungen installieren im IP-Symcon Verzeichnis. Das funktioniert aber nicht bei allen Version von IP-Symcon und so weit ich weis auch nicht unter Linux.

Du kannst die einfach in den Scripts Ordner entpacken und dann per Include reinziehen.

@Fonzo: Das ist keine DLL in dem Sinne, sondern einfach eine PHP Bibliothek. Die kann man einfach hinzufügen. Ich habe z.B. in meinem SymconReport Modul auch eine PDF Bibliothek hinzugefügt: SymconReport/libs at master · symcon/SymconReport · GitHub

paresy

Interessante Idee, wie verarbeitest du die Daten weiter? Im symcon? Externe Datenbank?

Hallo,

im ersten Schritt würde ich gerne die PDF-Dokumente sinnvoll und automatisiert auf meine fachliche Ordnerstruktur verteilen. Evt. könnte man aus den Metadaten auch noch einen sinnvollen Namen für die Datei generieren. Aktuell besteht der Name nur aus dem Timestamp.

Gruß
Frank

Also so ganz einfach eine PHP Library einbinden ist es dann doch nicht :eek:.

Nach diversen manuellen Versuchen habe ich dann doch den composer installiert. Der will dann unbedingt eine eigene PHP Umgebung auf dem PI erstellen, aber die stört ja nicht.

Danach im scripts Ordner einen Unterordner composer angelegt, gemäß Doku das composer.json erstellt und composer update laufen lassen. Dadurch wird der vendor Ordner mit allen benötigten Dateien erstellt und die Nutzung der Library ist im Symcon möglich. Der Pfad muss dann natürlich noch composer/… enthalten.


<?
include 'composer/vendor/autoload.php';


$parser = new \Smalot\PdfParser\Parser();
$pdf    = $parser->parseFile('../media/_Test.pdf');

// Retrieve all details from the pdf file.
$details  = $pdf->getDetails();
//var_dump($details);
// Loop over each property to extract values (string or array).
foreach ($details as $property => $value) {
    if (is_array($value)) {
        $value = implode(', ', $value);
    }
    echo $property . ' => ' . $value . "
";
}
echo "

-----
";

$pages  = $pdf->getPages();
// Loop over each page to extract text.
foreach ($pages as $page) {
    echo $page->getText();
	echo "
-----
";
}