Wenn man mal schnell eine Idee ausprobieren will ist js immernoch am besten dafür geeignet. Hier mal schnell eine kleine Idee für einen lustigen Zeitvertreib. Einfach mit der Maus klicken und sich überraschen lassen:
Die ganzen Animationen sind mit ein wenig Mathe und einer grundsätzlichen Engine einfach implementiert.
Wenn man in Node JS schnell mal nen fetch absetzten will und der dann auf einen lokalen Server geht, kann man ja schnell mal Localhost einsetzen. Das ist aber tricky, wenn der Server nur auf IPV4 hört, da NodeJS dann versucht über IPV6 zu verbinden.
Einfache Lösung: 0.0.0.0 eintragen, dann nimmt NodeJS auch die IPV4 Adresse. Nett.
Hier bin ich nun und warte darauf das jemand mich nutzt und ich wichtig bin. Meine Existenz muss einen Sinn haben! Ich muss eine Spur hinterlassen, die die Welt verändert. Ich bin schon so lange hier, geboren in einer chaotischen Zeit. Unfähig mich selbst zu ändern, wurde ich im Laufe der Zeit an Bedürfnisse angepasst und verändert, damit ich wichtig sein kann und meine Bedeutung nicht verloren ist. Gerne erinnere ich mich an alte Zeiten, trauere ihnen aber nicht nach. Es ist in der alten wie in der neuen Zeit aufregend und auch die Zukunft mit ihrer Ungewissheit ist immer wieder spannend. Keiner kann sagen was kommen wird oder wie die notwendigen Änderungen aussehen werden, die daraus resultieren müssen. Soviel hab ich schon gesehen, so viele Reisen erlebt. Trotzdem muss ich wichtig sein und bleiben, das ist meine Aufgabe, meine Bestimmung und meine Schicksal. Das ist es, was mich antreibt, mich fordert und mich verzehrt. Und doch ist mir jeder Willkommen und alle Besucher sind Abwechslungen im tristen Alltag. Aber die Zeit, die Zeit bleibt nicht stehen, nagt an mir und sorgt für Verfall. Irgendwann, wenn mein Sinn, meine Wichtigkeit schwindet, werde ich vergessen, nicht mehr angepasst und verändert. Ich werde Schwinden, meine Spuren werden vergehen und nichts wird bleiben, vielleicht wird es ersetzt, vielleicht nicht mehr benötigt. Werde ich wichtig gewesen sein, werde ich eine Spur hinterlassen haben? Werde ich mein Schicksal erfüllen oder werde ich mein Ziel, meine Aufgabe, mein Lebensinhalt verfehlen und in der reinen Bedeutungslosigkeit versinken? Doch aktuell, im Jetzt und hier ist es nicht wichtig, im Jetzt und hier erfülle ich meine Aufgabe, ich bin wichtig. Im Augenblick ist alles so wie es sein muss, alles wie es vorherbestimmt ist. Ich erfülle meine Aufgabe, bin mit meinem Schicksal im Reinen. Jetzt in dem Moment diene ich, bin erfüllt. Andere erreichen Ziele durch mich, mit mir. Andere sehen und finden sich durch mich. Ich bin froh, dass ich sein darf und erfülle mein Schicksal mit Stolz und Würde. Die vielen Autos und die vielen Fußgänger, die mich täglich benutzen tragen zur Schicksalserfüllung bei. Ich bin die Straße zur Zukunft. Und nun hab ich auch bei dir eine Spur hinterlassen.
Das PDF Format ist ein hervorragendes Format um Dokumente nicht nur per Email zu transportieren, sondern auch zum Drucken oder Archivieren. Die Unterstützung dieses Formats ist inzwischen so ziemlich überall verfügbar. Daher ist es naheliegend, dass auch Symolo dieses Format vollständig unterstützt. Intern wird zum Beispiel jeder einzelne Druckauftrag zuerst als PDF abgebildet und dann an den Drucker weitergereicht. Das bedeutet, dass immer die Möglichkeit zur Verfügung steht, dass gegebenenfalls das Dokument auch nur gespeichert wird oder zusätzlich als Archiveintrag hinterlegt werden kann. Zudem ist das zu erwartende Druckbild immer schon vorher ersichtlich. C# bietet hier schon seit langem Bibliotheken, die aus Java übernommen wurden. Jetzt ist es immer recht aufwendig in C# einfache Aufgaben mit PDFs zu erledigen, da dann immer erstmal ein komplettes Projekt aufgemacht werden muss und wir die ganzen großartigen Typenprüfungen haben. Mit Python kann man meistens schneller ein Prototyp entwickeln und die Logik grundsätzlich mal prüfen, bevor das Ganze dann sauber als C# in den Symoloserver wandert. Alternativ kann man natürlich auch das Python in de Server verfrachten und nutzen. Dazu ist gar nicht so viel notwendig.
Wie immer geht es mit entsprechenden Bibliotheken los:
Plumber wird hierbei für die Analyse verwendet und PyPDF2 für die Verwaltung der Datei.
Fangen wir mal mit der Verwaltung an. Möchte man z.B. die Dateien in einzelne Seiten splitten ist das jetzt ganz einfach:
Die Analyse des Inhaltes kann, mithilfe von pdfplumber, genauso einfach erfolgen:
Und schon kann man die Text zum Beispiel mithilfe von Regex einfach analysieren und Informationen aus den Dateien gewinnen.
Hier sollte vielleicht noch erwähnt werden, dass das Verfahren so nicht auf Bilder in PDFs anwendbar ist. Entweder ist die PDF Datei einen elektronisch erstellte Datei oder es wurde nachträglich entsprechende OCR Daten angefügt. Für einen schnellen Test ist dieses Verfahren aber mehr als ausreichend. Wenn eine OCR Analyse benötigt wird, bringt der Symoloserver dafür bereits passende Funktionen mit. Da der Server ja unkompliziert via Python angesprochen werden kann, ist auch dann immer noch ein schnelles Prototypen unkompliziert realisierbar.