Kategorien
Allgemein

Agorum OCR Lösung

Einfache Scanner kopieren Belege als Bilddatei und sind damit nicht im Klartext lesbar. Nicht lesbar bedeutet, das ein Archivsystem nicht in der Lage ist, den Beleg ein zu sortieren oder wieder zu finden.

Ich selbst arbeite auch mit solch einem einfachen Scanner und statte meine Dateiablage mit einem kleinem Script aus, welches die PDF auf ihre Lesbarkeit hin überprüft und diese ggf. übersetzt.

In der Praxis hat es sich bewährt, Belege grundsätzlich zu paginieren – mit einer laufenden, einmaligen Zahl zu versehen. Sie lassen sich dann eindeutig in der Buchhaltung und im DMS System identifizieren und verknüpfen.

Den Code stelle ich zur Verfügung.

Mit dem Code muss gespielt werden, da das Ergebnis stark von der Qualität des Scanners abhängt. Mit meinem Scanner ist eine Auflösung von 300dpi mit einer Graustufentiefe von 8 optimal. Auch kann ich auf den Einsatz des Programms UNPAPER verzichten – dieses würde Schlieren und Streifen entfernen.

Die erkannten Texte lassen sich in die PDF, also nicht als anhängende Seiten, integrieren. Mit Absicht hänge ich den OCR Text aber an das original PDF um direkt eventuelle Ungenauigkeit zu erkennen und diese im Agorum durch hinzufügen von Notizen zu ergänzen.

Kategorien
Allgemein

USV Service

IT-Anlagen reagieren sehr empfindlich auf Schwankungen oder Unterbrechungen der Stromversorgung. Schäden an Hard- und Software, Datenverfälschungen oder -verluste können die Folge sein. Eine unterbrechungsfreie Stromversorgung (USV) kann solche Miseren verhindern. Allerdings herrscht auf Seiten der Anwender große Unklarheit über die verschiedenen Arten von USV-Systemen und deren Eigenschaften.

Eine vorhandene USV sollte mindestens einmal Jahr geprüft werden – ein Akku-Satz hat nur eine begrenzte Lebensdauer. Lassen Sie sich umfassend, unverbindlich und neutral beraten.

Kategorien
Allgemein

SAP und Agorum DMS

Die SAP-Integration von agorum® core verbindet Ihr Dokumentenmanagement-System über den SAP ArchiveLink nahtlos mit Ihren Anwendungen in SAP. So nutzen Sie alle Vorteile eines systemübergreifenden Dokumentenmanagements.

Link

Kategorien
Allgemein

Copyright mit aktuellem Jahr

Erstaunlich – WordPress und Magento haben das nicht vor gesehen: Die Copyright Information unten im Seitenfuss wird nicht automatisch aktualisiert. Zahlreiche How-To’s finden sich im Netz die dem Leser einen PHP Code zur Nachbessereung anbieten.

Bildschirmfoto - 01.09.2016 - 15:58:13
HTML JavaScript

Was ist aber mit denen die nicht in den Code einsteigen wollen oder eben nur auf die Schnelle über das Editorensystem ändern wollen? Dort wird nämlich bei beiden System nur HTML Code zugelassen.

Nach endlos langem suchen habe ich ich Lösung gefunden (mitschreiben, merken):

 

Kategorien
Allgemein

PDF und FAX Handling

PDF / FAX Verarbeitung

Druckaufträge in HYLAFAX verarbeiten

Systeme im Rechnungswesen produzieren Unmengen an Dokumenten die automatisch in Document Management Systemen archiviert oder weiter verarbeitet werden. Im Idealfall produziert das System Textdateien und legt sie im Dateisystem ab – hier kann je nach Belegart eine entsprechende Verarbeitung statt finden.

Ist im Anwendungsprogramm das versenden von Belegen als eMail oder FAX nicht vorgesehen, kann diese Funktionalität schnell realisiert werden. Für die Generierung von Faxen, kann zum Beispiel im Druckdokument ein Steuerzeichen angelegt werden. In meinem speziellen Fall fügte ich ein @@NUMMER ein – zu empfehlen ist grundsätzlich, einen Marker zu verwenden, der im gewöhnlichen Sprachgebrauch nicht vorkommt. Aus dem Dokument ist die Faxnummer einfach mit

NUM=$(grep '^@@NUMMER' $x |tr -d '@NUMMER '|tr -d ')

heraus zu filtern. Grep filtert die Zeile mit dem Marker aus dem Dokument, tr(im) löscht den Marker aus der Zeile und übergibt die Faxnummer, direkt hinter dem Marker, an die Variable NUM.

Grundsätzlich könnte das Dokument jetzt an die Nummer versendet werden. Wenn aber im 21ten Jahrhundert noch solch eine antiquierte Technik verwendet wird, dann aber mit einem Logo auf dem Dokument und einer Quittung als PDF. Es ist nicht schwierig, aus der Textdatei eine PDF zu fertigen, es hängt aber von den Versionen der verschiedenen Programme ab sowie der Standardblattgröße des Systems. Das Postscript verwende ich als Zwischenformat da hier Änderung am Layout recht einfach durch einfügen einiger Steuerzeichen möglich ist:

echo -e "\000epsf[s0.95 x-3 y0a nx ny]{logo.eps}" > fax.tmp
# Einfuegen des Logos
echo -e "\000font{Arial@6}" >> fax.tmp
# Aendern der Schriftart und Groesse
echo -e "       HylaFax Server by HALSYSTEM" >> fax.tmp
# Kopfzeile
echo -e "\000font{Courier@11}" >> fax.tmp
# Schriftart und Groesse des Dokumentes

Etwas Arbeit verursacht das einsetzen des EPS Logos. Es muss die exakte Position ermittelt und angegeben werden. In meinem Fall wird das Logo mit dem Faktor 0.95 angezeigt und um 3 Spalten nach links, in absoluter Position gesetzt. Aus der Textdatei wird mit Hilfe des Programms enscript eine Postscript Datei erzeugt.

enscript -e -B -pfax.ps fax.pr
# aus Text wird Postscript
ps2pdf fax.ps $x.pdf
# aus Postscript wird PDF

Das PDF kann an dieser Stelle beliebig verarbeitet werden z.B. Ablage in ein DMS System oder Versandt per eMail. Da ich mit der Formulargröße stets Probleme hatte, konvertiere ich vor dem versenden zurück in Postscript mit dem Parameter „DIN A4“.

acroread -toPostScript -size a4 fax.pdf
# PDF als DIN A4 Postscript
sendfax -T 3 -f $MAIL -n -d $NUM fax.ps
# versenden des Telefaxes

 

Wer möchte, kann kopieren und an sein System bzw. Bedürfnisse anpassen.

#!/bin/bash

# FAX Handling Script
# Thomas Schilling # HALSYSTEM.de
# NEUTRASOFT / AS400

LISTE=*.FAX
for x in $LISTE
do
echo -e "\000epsf[s0.95 x-3 y0a nx ny]{logo.eps}" > fax.tmp
echo -e "\000font{Arial@6}" >> fax.tmp
echo -e "       HylaFax Server by HALSYSTEM" >> fax.tmp
echo -e "\000font{Courier@11}" >> fax.tmp

NUM=$(grep '^@@NUMMER' $x |tr -d '@NUMMER '|tr -d ' ')
if [ -z $NUM ] ; then
LISTE=/var/spool/hylafax/log/c*
for x in $LISTE; do
mv -f $x $x.doc
cp -f $x.doc /tmp/b2/Fax/Quittung/
mv -f $x.doc /home/tsp/trash/
done
else
echo -e "" >> fax.tmp
sed '1,5d' $x >> fax.tmp
cat fax.tmp|sed -e '1,$s/@@FRM 0/LOGO/g' > fax.pre
cat fax.pre|perl -p -i -e 's/LOGO/\000epsf[s0.95 x-3 y0a nx ny]{logo.eps}/g;' > fax.pr
enscript -e -B -pfax.ps fax.pr
cat fax.ps|perl -p -i -e 's/\224/oe/g;' > fax.um
cat fax.um|perl -p -i -e 's/\204/ae/g;' > fax.ps
cat fax.ps|perl -p -i -e 's/\201/ue/g;' > fax.um
cat fax.um|perl -p -i -e 's/\232/Ue/g;' > fax.ps
cat fax.ps|perl -p -i -e 's/\341/ss/g;' > fax.um
cat fax.um > fax.ps
ps2pdf fax.ps $x.pdf
cp -f $x.pdf /tmp/b2/FAX/gesendet/
cp -f $x.pdf fax.pdf
acroread -toPostScript -size a4 fax.pdf
chmod 0777 *
if [ $NUM = "00" ] ; then
cp $x.pdf /tmp/b2/PDF/
else
case "$x" in
MBA*) MAIL=mba@b1.bub;;
*) MAIL=mk@b1.bub;;
esac
sendfax -T 3 -f $MAIL -n -d $NUM fax.ps
fi
mv $x /home/tsp/trash/
fi
done
LISTE=/var/spool/hylafax/recvq/*.tif
for x in $LISTE; do
tiff2pdf -o$x.pdf $x
mv -f $x /home/tsp/trash/
cp -f $x.pdf /tmp/b2/Fax/empfangen/
mv -f $x.pdf /home/tsp/trash/
mv -f /home/vera/*.pdf /home/tsp/trash/
done
Kategorien
Allgemein

Automationstechnik in Faktura

Sehr viel Spass hatte ich an einem Projekt, in dem ich eine betriebswirtschaftliche Anwendung entwickelte, diese auch Meßwerte auslesen und Maschinen steuern

8085 Assembler
8085 Assembler

soll. Vorher hatte ich nur im Labor Kontakt mit der Steuerungsprogrammierung und das geschah seiner Zeit mit der Programmiersprache Assembler ( üblicher Prozessor war der 8085 ). Heute benutze ich Phyton, Cobol, Basic oder Pascal – Assembler, C oder Fortran ist mir zu technisch und wende ich nur für systemnahe oder zeitkritische Programme an. In dem besonderen Fall, im Zusammenspiel von Linux-Server und SPS Anlage, war C die Programmiersprache der Wahl. Ich fand mich mit der Siemens S5 SPS Anlage schnell zurecht und bediente mich der OpenSource Bibliothek LIBNODAVE.

Das Programm ist einfach zu kompilieren und funktioniert sehr zuverlässig. In meiner Anwendung, werden die Anforderungen zur Meßwerterfassung und Schaltbefehle in einer SQL Datenbank gesammelt – als chronologischen Dienst sorgt das in C geschriebene Programm für die Umsetzung. Angesteuert wird die S5 über die serielle Schnittstelle ( /dev/ttyS0 ).

Schwierig war, das in der Simatic S5, Zähler ( in dem Fall Verbrauchsmesser ) mit unterschiedlichen Faktoren eingebaut werden konnten. So hat ein

( dc = daveNewConnection(di,plcMPI,0,0); )
/* Deklarationen lasse ich hier mal weg */
Ergebnis = daveReadS5Bytes(dc, daveDB, atoi(DBNr),atoi(WasserDW), 2);

Programmierung in C
Programmierung in C

Zaehler = daveGetU16(dc);

nicht zwingend auf jeder DBNr das gleiche Zahlenverhältnis ( Verhältnisfaktor 1, 10 oder 100 zum Zähler) auch wenn die Art identisch ist. In der Programmierung musste dann auch der Typ des S5 Moduls berücksichtigt werden und das Meßergebnis durch

fZaehler = (float) Zaehler * atof(Faktor);

korrigiert werden. Unproblematisch hingegen das schreiben, also das Ein/Aus schalten von Relais, mit daveWriteS5Bytes(dc, daveDB, 4, 2, 2, &a);.

Kategorien
Allgemein

Tryton ERP Schnelleingabe ist tükisch

Im Alltag kommt es vor, Zahlungsein- und Ausgänge schnell und damit unvorsichtig, zu buchen. Tryton bietet dabei während der Verbuchung der Kontoauszüge zwei Wege: Kreditorische Erfassung als Eingangsrechnung oder direkte Dialogbuchung.Tryton Dialogbuchung

Bei der kreditorischen Faktura kann eine fiktive Eingangsrechnung erstellt werden.Tryton Faktura Eingangsrechnung

Ich habe hierzu auch, einen Artikel „Unbekannt“ angelegt. Diesem Artikel sollte man keine Konten zuordnen. Ordnet man hier das Konto 4900 – Allgemeine Aufwendungen zu, verhält sich das Programm unberechenbar. Diesem Konto sind nämlich zwei mögliche Vorsteuerkonten zugeordnet die in dem exotischen Anwendungsfall, beide gezogen werden.kontotrytonust

Auch muss immer einen kurzer Blick, wenn Konten und Steuerkonten nicht zweifelfrei zugeordnet bzw. aktiviert oder deaktiviert wurden, auf die Steuerrechnung geworfen werden. Wie man an dem Bildschirmfoto sieht, ist es möglich, 19% VSt und 7% VSt zu vereinbaren, sowie die Berechnungsbasis frei zu wählen. Es folgt in Tryton keine Plausibilitätsprüfung!retrytonust Wird kein Konto hinterlegt, sondern während der Eingabe ein Kostenkonto eingetragen, funktioniert die automatische Verarbeitung tadellos.

Tryton ist sehr gut, sehr flexibel und anpassbar. Aber dieses banale Beispiel zeigt, das man sehr wohl wissen sollte, was man tut!