[GastForen Programmierung/Entwicklung AppleScript Dokumentarten herausfinden

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Dokumentarten herausfinden

michael m.
Beiträge gesamt: 162

1. Okt 2010, 10:20
Beitrag # 1 von 35
Bewertung:
(7978 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich möchte Dokumentarten aus einem Textdokument heraus finden und habe schon folgenden Handler geschrieben.

Code
-- Handler findeDokumentart Version 0.0.01 Stand: 01.10.2010 
-- Kommentar: Ohne Textblock arbeitet das Skript die richtige Reihenfolge ab
-- Kommentar: Absender, Dateiart und Betreff werden ohne else korrekt gefunden
-- Kommentar: Absender, Dateiart und Betreff werden mit else nur leere Variblen geschrieben

-- Script Anfang:

-- set textBlock to ""
-- set textBlock to "Die Rechnung von Quelle für die Waschmaschine wurde am 25.10.2005 ausgestellt."
-- set textBlock to "Die Mahnung von Happy Size für die Schuhe wurde am 25.10.2005 erinnert"
set textBlock to "Das Finanzamt hat die mit Schriftverkehr die Steuererklärung für das Kalenderjahr 2005 am 25.10.2005 erinnert."

set {Absender, Dokumentart, Betreff} to findeDokumentart(textBlock)

-- Script Ende:



-- Handler Bibliothek
on findeDokumentart(textBlock)

-- Textblock in eine Liste umwandeln
set textListe to every word of textBlock
-- Anzahl der Worte aus der Liste ermitteln
set anzahlListe to count textListe

-- display dialog anzahlListe

-- Prüfung ob der Text in textBlock enthalten ist oder nicht
if anzahlListe is equal to 0 then
-- Dokument enthält keinen Text
set Absender to ""
set Dokumentart to ""
set Betreff to ""
-- zum Ende des Handlers
else
set absListe to {"Happy Size", "Quelle", "Finanzamt"}
set absListeAnzahl to count absListe
repeat with absListeSchleife from 1 to absListeAnzahl
set absElement to item absListeSchleife of absListe
if textBlock contains absElement then
set Absender to absElement
-- else
-- set Absender to ""
end if
end repeat

-- display dialog Absender

set artListe to {"Rechnung", "Mahnung", "Schriftverkehr"}
set artListeAnzahl to count artListe
repeat with artListeSchleife from 1 to artListeAnzahl
set artElement to item artListeSchleife of artListe
if textBlock contains artElement then
set Dokumentart to artElement
-- else
-- set Dokumentart to ""
end if
end repeat

-- display dialog Dokumentart

set betreffListe to {"Bügeleisen", "Schuhe", "Steuererklärung", "Waschmaschine"}
set betreffListeAnzahl to count betreffListe
repeat with betreffListeSchleife from 1 to betreffListeAnzahl
set betreffElement to item betreffListeSchleife of betreffListe
if textBlock contains betreffElement then
set Betreff to betreffElement
-- else
-- set Betreff to ""
end if
end repeat

-- display dialog Betreff

end if

-- Übergebe der Variablen zurück zum Handler-Aufruf
return {Absender, Dokumentart, Betreff}
end findeDokumentart


so weit so gut.
Die verschiedenen Kriterien werden gefunden.

Sobald ich aber mit else Fehlerabfragen definiere , dann sind immer alle Variablen leer.

Es sieht so aus als wenn direkt in die else Anweisungen gesprungen werden?

Beim Verlauf der Events und Ergebnis Protokolld wird nicht protokolliert.

Die Schleifen könnendoch so falsch gar nicht sein.

Viele Grüsse
Michael

(Dieser Beitrag wurde von michael m. am 1. Okt 2010, 10:23 geändert)
X

Dokumentarten herausfinden

Hans Haesler
  
Beiträge gesamt: 5826

1. Okt 2010, 10:57
Beitrag # 2 von 35
Beitrag ID: #452933
Bewertung:
(7955 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,

Du hast die Geburtstagstorte noch nicht verdaut. ;-)

Derber Spass beiseite: Das Ergebnis ist ganz logisch. Wenn das letzte Element einer Liste nicht im Textblock ist, dann wird die vorher gefüllte Variable geleert.

Eine Lösung wäre: Wenn eine Übereinstimmung gefunden ist, mit exit repeat die Schleife verlassen.

Code
    repeat with absListeSchleife from 1 to absListeAnzahl 
set absElement to item absListeSchleife of absListe
if textBlock contains absElement then
set Absender to absElement
exit repeat
else
set Absender to ""
end if
end repeat

Oder alle drei als leer definieren und dann in den drei Schleifen nur noch die Übereinstimmung holen.

Code
-- Handler findeDokumentart Version 0.0.01 Stand: 01.10.2010  

-- Script Anfang:

-- set textBlock to ""
-- set textBlock to "Die Rechnung von Quelle für die Waschmaschine wurde am 25.10.2005 ausgestellt."
-- set textBlock to "Die Mahnung von Happy Size für die Schuhe wurde am 25.10.2005 erinnert"
set textBlock to "Das Finanzamt hat die mit Schriftverkehr die Steuererklärung für das Kalenderjahr 2005 am 25.10.2005 erinnert."

set {Absender, Dokumentart, Betreff} to findeDokumentart(textBlock)

-- Handler Bibliothek
on findeDokumentart(textBlock)

-- Textblock in eine Liste umwandeln
set textListe to every word of textBlock
-- Anzahl der Worte aus der Liste ermitteln
set anzahlListe to count textListe

-- display dialog anzahlListe

-- Prüfung ob der Text in textBlock enthalten ist oder nicht
if anzahlListe is equal to 0 then
-- Dokument enthält keinen Text
set Absender to ""
set Dokumentart to ""
set Betreff to ""
-- zum Ende des Handlers
else
set Absender to ""
set absListe to {"Happy Size", "Quelle", "Finanzamt"}
repeat with i from 1 to count absListe
set absElement to item i of absListe
if textBlock contains absElement then
set Absender to absElement
exit repeat
end if
end repeat

set Dokumentart to ""
set artListe to {"Rechnung", "Mahnung", "Schriftverkehr"}
repeat with i from 1 to count artListe
set artElement to item i of artListe
if textBlock contains artElement then
set Dokumentart to artElement
exit repeat
end if
end repeat

set Betreff to ""
set betreffListe to {"Bügeleisen", "Schuhe", "Steuererklärung", "Waschmaschine"}
repeat with i from 1 to count betreffListe
set betreffElement to item i of betreffListe
if textBlock contains betreffElement then
set Betreff to betreffElement
exit repeat
end if
end repeat
end if

-- Übergebe der Variablen zurück zum Handler-Aufruf
return {Absender, Dokumentart, Betreff}
end findeDokumentart

Die Anzahl der Listenelemente muss nicht in eine Variable gegeben werden. Die kann direkt als Stopwert benutzt werden.

Für den automatischen Zähler besser die Variable i benutzen (i = iteration = Umgang).

Das exit repeat ist immer noch drin, auch wenn die Einsparung kaum spürbar sein wird.

Gruss, Hans


als Antwort auf: [#452925]
(Dieser Beitrag wurde von Hans Haesler am 1. Okt 2010, 11:01 geändert)

Dokumentarten herausfinden

michael m.
Beiträge gesamt: 162

1. Okt 2010, 12:40
Beitrag # 3 von 35
Beitrag ID: #452947
Bewertung:
(7931 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

wenn ich mir Deine Lösung anschaue, verstehe ich wie es abläuft als ich es gelesen hatte.

Oft denke ich mir oh ist das einfach und Logisch. Warum bin ich nicht auf diesen Weg gekommen.

Das Problem ist dann meist wie fange ich es an.
Ich habe dann meist auch schnell einen Ansatz wie es gehen könnte, aber auch hier lag dann schon das Problem in den if und else.

Hätte es denn mit meinem Ansatz dem If und Else denn geklappt?

Du bist aus der Schleife anderes heraus gekommen wie ich.

Vielleicht denke ich in manchen Sachen zu kompliziert, mache vielleicht Umwege oder baue baue den Code umständlich auf.

Vielleicht ist das auch Übung und ich bin zu ungeduldig ?

Ach ja mit den Variablen dachte ich immer das diese immer eindeutig sein sollten um Probleme aus dem wege zu gehen.
Andererseits bei den Schleifen werden diese ja immer auf 1 zurück gesetzt.

Das ist wieder so eine Sache ich ich vielleicht zu umständlich mache. Ja auch die Variablen Namen mache ich vielleicht zu lang und zu ausführlich.

Viele Grüsse

Michael


als Antwort auf: [#452933]
(Dieser Beitrag wurde von michael m. am 1. Okt 2010, 12:42 geändert)

Dokumentarten herausfinden

Hans Haesler
  
Beiträge gesamt: 5826

1. Okt 2010, 13:11
Beitrag # 4 von 35
Beitrag ID: #452951
Bewertung:
(7919 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,

Zitat Hätte es denn mit meinem Ansatz dem If und Else denn geklappt?

Ja, das hätte es. Aber wie bereits erwähnt, müsste mit exit repeat die Schleife verlassen werden, damit eine gefundene Übereinstimmung nicht wieder ausradiert wird.

Gruss, Hans


als Antwort auf: [#452947]

Dokumentarten herausfinden

michael m.
Beiträge gesamt: 162

1. Okt 2010, 13:18
Beitrag # 5 von 35
Beitrag ID: #452953
Bewertung:
(7918 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen Dank.
Also Übung macht den Meister.
Und viel Skripten um viele Möglichkeiten kennen zu lernen.

Viele Grüsse
Michael


als Antwort auf: [#452951]

Dokumentarten herausfinden

michael m.
Beiträge gesamt: 162

1. Okt 2010, 14:20
Beitrag # 6 von 35
Beitrag ID: #452968
Bewertung:
(7894 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

ich möchte nun die Variable absListe mit den Inhalt aus einer Textdatei einlesen lassen.

So weit funktioniert es schon mal aber ich möchte die Inhalte nicht durch ein Leerzeichen trennen, sondern durch einen Zeilenumbruch.

Ich habe versucht dies zu machen,

Code
set AppleScript's text item delimiters to {"\n"} 


bekam aber dieses Ergebnis heraus.
Code
set AppleScript's text item delimiters to {" 
"}


Wie finde ich denn das richtige Steuerzeichen

Zur Zeit sieht mein Skriptteil so aus:
Code
set newFile to open for access file ((path to desktop as text) & "EL_Absender.txt") 
set absInhalt to read newFile
close access newFile
set AppleScript's text item delimiters to {"\n"}
set absListe to every word of absInhalt
set AppleScript's text item delimiters to {""}
absListe


Vielen Dank
Michael


als Antwort auf: [#452953]
(Dieser Beitrag wurde von michael m. am 1. Okt 2010, 14:22 geändert)

Dokumentarten herausfinden

Hans Haesler
  
Beiträge gesamt: 5826

1. Okt 2010, 15:18
Beitrag # 7 von 35
Beitrag ID: #452984
Bewertung:
(7877 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,

um eine Textdatei "nur" einzulesen, musst Du sie nicht explizit öffnen. Das macht der read-Befehl, ungefragt. Und er schliesst sie auch automatisch wieder.

Dass ein "\n" (= neue Zeile) oder ein "\r" beim Übersetzen des Codes umgewandelt wird, ist normal. Und in der Regel klappt es auch.

Wenn Dir das nicht geheuer ist, kannst Du es mit ...

Code
set AppleScript's text item delimiters to {ASCII character 13} 

... versuchen. 13 = Return / 10 = neue Zeile. Eine Variante wäre return (also ausgeschrieben) wie unten eingesetzt.

Und noch etwas: nicht every word verlangen, sondern every text item:

Code
set newFile to ((path to desktop as text) & "EL_Absender.txt") 
set absInhalt to read file newFile
set AppleScript's text item delimiters to {return}
set absListe to every text item of absInhalt
set AppleScript's text item delimiters to {""}
absListe

So sollte es klappen.

Gruss, Hans


als Antwort auf: [#452968]

Dokumentarten herausfinden

michael m.
Beiträge gesamt: 162

1. Okt 2010, 15:24
Beitrag # 8 von 35
Beitrag ID: #452988
Bewertung:
(7873 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
der read befehl offnet und schliesst automatisch.
Das ist praktisch.
Leider steht das nicht in dem buch in dem ich gerade lese aber vielen Dank die info ist sehr hilfreich.

Das mit dem Absatz gelöst mit

Code
set absListe to every paragraph of absInhalt 


gelöst.
Dafür benötige ich nicht mal delimiters.

Viele Grüsse
Michael


als Antwort auf: [#452984]
(Dieser Beitrag wurde von michael m. am 1. Okt 2010, 15:27 geändert)

Dokumentarten herausfinden

Hans Haesler
  
Beiträge gesamt: 5826

1. Okt 2010, 15:46
Beitrag # 9 von 35
Beitrag ID: #452992
Bewertung:
(7865 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,

das wäre mein nächster Hinweis gewesen, nachdem es bei Dir mit den text item delimiters funktioniert hätte.

Aber gut, dass Du es selber herausgefunden hast.

Gruss, Hans


als Antwort auf: [#452988]

Dokumentarten herausfinden

Hans Haesler
  
Beiträge gesamt: 5826

1. Okt 2010, 16:02
Beitrag # 10 von 35
Beitrag ID: #452997
Bewertung:
(7857 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,

... und hey! Gratulation zum Premium-Member! :-)

Es wäre schön, wenn noch mehr Benutzer einen Beitrag zum Unterhalt der Foren leisten würden.

Gruss, Hans


als Antwort auf: [#452992]

Dokumentarten herausfinden

michael m.
Beiträge gesamt: 162

1. Okt 2010, 17:04
Beitrag # 11 von 35
Beitrag ID: #453001
Bewertung:
(7833 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen Dank.
Wenn ich so viel Hilfe von Euch bekomme, bin ich gerne bereit etwas dazu bei zu tragen.

Im Skript habe ich Desktop ausgetauscht und einen Pfad definiert.

Code
set absFile to open for access file ((path to "mac mini:Users:michael:Documents:dateFinder Einstellungen:" as text) & "df_Absender.txt") 
set absInhalt to read absFile
-- close access absFile
set absListe to every paragraph of absInhalt
-- absInhalt
absListe


Jetzt bekomme ich eine Fehlermeldung

Zitat "mac mini:Users:michael:Desktop:" kann nicht in Typ constant umgewandlt werden.


Das ist doch auch ein Pfad wie desktop nur das desktop vom System her schon vor definiert ist.

Dann habe ich ohne open mal probiert.

Code
-- set absFile to open for access file ((path to desktop as text) & "df_Absender.txt") 
set absInhalt to read "mac mini:users:michael:Desktop:df_Absender.txt"
-- close access absFile
set absListe to every paragraph of absInhalt
-- absInhalt
absListe


Dann erhalte ich das "mac mini:users:michael:desktop:df_Absender.txt" kann nicht in Typ file umgewandelt werden.

Muss dann doch access file (Classname) mit einfliessen?
Wie mache ich das dann ohne open file?

Viele Dank

Michael


als Antwort auf: [#452997]

Dokumentarten herausfinden

michael m.
Beiträge gesamt: 162

1. Okt 2010, 17:44
Beitrag # 12 von 35
Beitrag ID: #453012
Bewertung:
(7823 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

so es funktioniert jetzt.

Code
set absFile to (open for access file "mac mini:users:michael:Documents:dateFinder Einstellungen:pref_Absender.txt") 
set absInhalt to read absFile
close access absFile
set absListe to every paragraph of absInhalt
-- absInhalt
absListe


ich freue mich immer wenn es funktioniert.

Viele Grüsse
Michael


als Antwort auf: [#453001]

Dokumentarten herausfinden

michael m.
Beiträge gesamt: 162

1. Okt 2010, 18:21
Beitrag # 13 von 35
Beitrag ID: #453020
Bewertung:
(7810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

wie schön jetzt geht es fast.

So sieht jetzt mein Handler für die Dokumentart aus.

Code
-- Handler findeDokumentart Version 0.0.03 Stand: 01.10.2010 
-- Kommentar: Ohne Textblock arbeitet das Skript die richtige Reihenfolge ab
-- Kommentar: Absender, Dateiart und Betreff werden ohne else korrekt gefunden
-- Kommentar: Absender, Dateiart und Betreff werden mit else nur leere Variblen geschrieben
-- Kommentar: Schleifen anders aufgebaut und mit exit repeat beendet
--Kommentar: Daten aus der Textdatei Absender in die Variable einlesen
--Kommentar: Daten aus der Textdatei Dokumentart in die Variable einlesen
--Kommentar: Daten aus der Textdatei Betreff in die Variable einlesen

-- Script Anfang:

-- set textBlock to ""
-- set textBlock to "Die Rechnung von Quelle für die Waschmaschine wurde am 25.10.2005 ausgestellt."
-- set textBlock to "Die Mahnung von Happy Size für die Schuhe wurde am 25.10.2005 erinnert"
set textBlock to "Das Finanzamt hat die mit Schriftverkehr die Steuererklärung für das Kalenderjahr 2005 am 25.10.2005 erinnert."

set {Absender, Dokumentart, Betreff} to findeDokumentart(textBlock)

-- Script Ende:


-- Handler Bibliothek
on findeDokumentart(textBlock)

-- Textblock in eine Liste umwandeln
set textListe to every word of textBlock
-- Anzahl der Worte aus der Liste ermitteln
set anzahlListe to count textListe

-- display dialog anzahlListe

-- Prüfung ob der Text in textBlock enthalten ist oder nicht
if anzahlListe is equal to 0 then
-- Dokument enthält keinen Text
set Absender to ""
set Dokumentart to ""
set Betreff to ""
-- zum Ende des Handlers
else
-- Prüfen der Absender
set Absender to ""
-- Einlesen der Daten aus der Textdatei pref_Absender.txt
set absFile to (open for access file "mac mini:users:michael:Documents:dateFinder Einstellungen:pref_Absender.txt")
set absInhalt to read absFile
close access absFile
set absListe to every paragraph of absInhalt
repeat with i from 1 to count absListe
set absElement to item i of absListe
if textBlock contains absElement then
set Absender to absElement
exit repeat
end if
end repeat

-- Prüfen der Dokumentart
set Dokumentart to ""
-- Einlesen der Daten aus der Textdatei pref_Dokumentart.txt
set artFile to (open for access file "mac mini:users:michael:Documents:dateFinder Einstellungen:pref_Dokumentart.txt")
set artInhalt to read artFile
close access artFile
set artListe to every paragraph of artInhalt
repeat with i from 1 to count artListe
set artElement to item i of artListe
if textBlock contains artElement then
set Dokumentart to artElement
exit repeat
end if
end repeat

-- Prüfen des Betreffs
set Betreff to ""
-- Einlesen der Daten aus der Textdatei pref_Betreff.txt
set betreffFile to (open for access file "mac mini:users:michael:Documents:dateFinder Einstellungen:pref_Betreff.txt")
set betreffInhalt to read betreffFile
close access betreffFile
set betreffListe to every paragraph of betreffInhalt
repeat with i from 1 to count betreffListe
set betreffElement to item i of betreffListe
if textBlock contains betreffElement then
set Betreff to betreffElement
exit repeat
end if
end repeat
end if

-- Übergebe der Variablen zurück zum Handler-Aufruf
return {Absender, Dokumentart, Betreff}
end findeDokumentart


Von den 4 Testumgebungen werden 3 erfolgreich durchgeführt.
Das liebe Finanzamt. Hier will es nicht, das Ergebnis ist dann immer

Zitat {"Finanzamt", "Schriftverkehr", ""}


hier müsste in das letze feld der Liste Steuererkläung auftauchen.

Ich kann leider nichts feststellen sowohl in den Routinen als auch in den Textdateien.

Seltsam ist das die anderen die ebenfalls auf diese Textdateien basieren funktionieren.

Im Anhang sind die Textdateien

Viele Grüsse
Michael



als Antwort auf: [#453012]
Anhang:
pref_dateien.zip (1.50 KB)

Dokumentarten herausfinden

michael m.
Beiträge gesamt: 162

1. Okt 2010, 18:31
Beitrag # 14 von 35
Beitrag ID: #453022
Bewertung:
(7807 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

es sei denn das Steuererklärung nicht gefunden wird.
Ich erinnere mich an den Post mit den leeren Variablen.

Ich habe dann Steuererklärung kopiert und eingefügt.
Also identisch.
Aber gefunden nein.
Der Test war Steuererklärung als Steuererklaerung zu schreiben
im Text als auch in den Textdateien.
Oh Staune das war es. Das Umlaut ä.
So jetzt gilt wieder das Problem zu lösen wie das mit umlauten ist.

Denke erst mal an das format utf 8 auf utf 16 zu speichern und probieren.

Also bis dann

Problem beseitigt.
Also die Textdatei muss als reiner Text gespeichert werden als "Westeuropäisch (Mac OS Lateinisch).
Dann geht es.

Viele Grüsse
Michael


als Antwort auf: [#453020]
(Dieser Beitrag wurde von michael m. am 1. Okt 2010, 18:35 geändert)

Dokumentarten herausfinden

Hans Haesler
  
Beiträge gesamt: 5826

1. Okt 2010, 21:45
Beitrag # 15 von 35
Beitrag ID: #453044
Bewertung:
(7775 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,

wir haben doch festgehalten, dass weder open for access noch close notwendig ist.

Das muss mit dem read alleine funktionieren.

Gruss, Hans


als Antwort auf: [#453022]
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
17.04.2024

Online
Mittwoch, 17. Apr. 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!