[GastForen Programme Print/Bildbearbeitung Adobe InDesign Kerning nur in der Auswahl

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Kerning nur in der Auswahl

sabine_hamann
Beiträge gesamt: 419

11. Dez 2006, 12:03
Beitrag # 1 von 10
Bewertung:
(3052 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich habe mit Hilfe des tollen JavaScript-Handbuchs von Peter Kahrel ein Kerningscript geschrieben.
Es funktioniert prima … nur leider immer für das ganze Dokument.
Ich möchte gern eine Auswahl treffen, ob das ganze Dokument, eine bestimmte Ebene, ein aktivierter Textrahmen oder ein ausgewählter Text im Rahmen durch das Script bearbeitet werden soll.
Die Abweichungen von der Kerningtabelle habe ich mit TextCleanup realisieren können. Und daher die nächste Frage, wie kann ich diese beiden Scripte so verbinden, dass erst die Auswahl kommt, dann das Kerning und anschließend die Aufräumarbeit mit der Suchen-und-Ersetzen-Tabelle.
Ich hab grad erst mit Scripten angefangen und schaffs scheinbar nicht allein.
Lieben Dank für eure Mühe.
X

Kerning nur in der Auswahl

Martin Fischer
  
Beiträge gesamt: 12783

11. Dez 2006, 13:53
Beitrag # 2 von 10
Beitrag ID: #266366
Bewertung:
(3026 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sabine,

> Ich möchte gern eine Auswahl treffen, ob das ganze Dokument,

Das wäre elegant über einen Dialog möglich - oder etwas weniger elegant über eine Abfrage, ob etwas ausgewählt ist (und wenn ja, was) zu realisieren.

> eine bestimmte Ebene,
Hier müßte bei jedem "Treffer" überprüft werden, auf welcher Ebene das parent-Objekt (also das, was auf der Seite platziert ist; bei tieferen Verschachtelungen ggf. parent.parent....) liegt. Wenn auf Ebene xy, dann mach das, wenn nicht, mach nix oder was anderes.

> ein aktivierter Textrahmen
app.selection[0] (wenn app.selection[0].constructor.name == "TextFrame")

> oder ein ausgewählter Text im Rahmen durch das Script bearbeitet werden soll.
ebenfalls app.selection[0] (wenn app.seectio[0].constructor.name == [Textobjekt].

Suche hier im Forum mal nach dem isText-Funktionsobjekt von Dave Saunders. Damit kannst Du die Textobjekte abfragen.

Kopplung von Skripten sind mit dem doScript()-Befehl möglich (siehe JavaScript Referenz und Beispiele im Forum; z.B. http://www.hilfdirselbst.ch/..._P220145.html#220145).

Hoffe, Du kommst mit diesen Stichworten weiter.
Ansonsten wäre ein bißchen Code von Dir zur genaueren Angaben hilfreich.


als Antwort auf: [#266345]
(Dieser Beitrag wurde von Martin Fischer am 11. Dez 2006, 14:29 geändert)

Kerning nur in der Auswahl

zaphodbeeblebroxx
Beiträge gesamt: 408

11. Dez 2006, 14:42
Beitrag # 3 von 10
Beitrag ID: #266375
Bewertung:
(3004 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sabine, Hallo Martin,

habe letzten Freitag ebenfalls auf der Grundlage von Peter Kahrels "kern-pairs"-Skript ein Skript gebastelt, dass mir bei bestimmten Zeichenkombinationen (Vokale + Akzentzeichen, die es in der zu verwendenden Schrift nicht gibt) diese per Kerning "übereinander" schiebt.

Allerdings soll mein Skript im gesamten Dok. arbeiten. Deshalb habe ich keine Einschränkung auf eine Auswahl benötigt.

Möchtest Du (Sabine) Deine Kerning-Ausnahmen nicht im gesamten Dokument anwenden? Gibt es dafür einen best. Grund?

Kannst Du die Kerning-Fälle nicht einschränken, indem Du zunächst in Deinem Dokumnet nach einem best. Text oder einem best. Absatz-/Zeichenformat oder einer best. Schrift in einer best. Größe suchst und dann auf die gefundenen Objekte Dein Kerning-Skript anwendest?

(So habe ich dass zumindest gelöst).

zaphodbeeblebroxx


als Antwort auf: [#266366]

Kerning nur in der Auswahl

sabine_hamann
Beiträge gesamt: 419

11. Dez 2006, 14:57
Beitrag # 4 von 10
Beitrag ID: #266380
Bewertung:
(2999 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich muss leider die Auswahl zulassen, da es sich teilweise um Sonderfälle handelt. Der Anwender soll selbst entscheiden, ob beispielsweise auch das Inhaltsverzeichnis gekernt werden soll, oder nicht. Da ich nicht garantieren kann, dass hier sauber mit Formaten gearbeitet wurde, soll eine Auswahl möglich sein.

Danke Martin, das mit dem doScript funktioniert schon mal, falls die beiden zusammen nicht funktionieren sollten.

Anbei mein Versuch die beiden Scripte zu verschmelzen. Die Ebenenfunktionalität kann ich später vielleicht noch hinzufügen. Das wäre jetzt im ersten Step nicht so wichtig.


Code
//KerningVersuch1.jsx 

var myObject;
var myCheckSelection = false;
if(app.documents.length != 0){
if(app.activeDocument.stories.length != 0){
if(app.selection.length != 0){
switch(app.selection[0].constructor.name){
case "InsertionPoint":
case "Character":
case "Word":
case "TextStyleRange":
case "Line":
case "Paragraph":
case "TextColumn":
case "Text":
case "TextFrame":
var myArray = myDisplayDialog();
myObject = myArray[0];
myCheckSelection = myArray[1];
break;
default:
myObject = app.activeDocument;
break;
}
}
else{
myObject = app.activeDocument;
}
if(myObject != "None"){
myTextCleanup(myObject, myCheckSelection);
}
}
else{
alert("The current document contains no text. Please open a document containing text and try again.");
}
}
else{
alert("No documents are open. Please open a document and try again.");
}
function myDisplayDialog(){
var myCheckSelection = false;
var myDialog = app.dialogs.add({name:"TextCleanup"});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Search Range"});
}
var myRangeButtons = radiobuttonGroups.add();
with(myRangeButtons){
radiobuttonControls.add({staticLabel:"Selected Story", checkedState:true});
radiobuttonControls.add({staticLabel:"Document"});
if(app.selection[0].contents != ""){
radiobuttonControls.add({staticLabel:"Selection"});
}
}
}
}
var myResult = myDialog.show();
if(myResult == true){
switch(myRangeButtons.selectedButton){
case 0:
switch(app.selection[0].constructor.name){
case "InsertionPoint":
case "Character":
case "Word":
case "TextStyleRange":
case "Line":
case "Paragraph":
case "TextColumn":
case "Text":
case "TextFrame":
myObject = app.selection[0].parentStory;
break;
default:
myObject = "None";
break;
}
break;
case 1:
myObject = app.activeDocument;
break;
case 2:
switch(app.selection[0].constructor.name){
case "Word":
case "TextStyleRange":
case "Line":
case "Paragraph":
case "TextColumn":
case "Text":
case "TextFrame":
if(app.selection[0].contents != ""){
myObject = app.selection[0].texts.item(0);
myCheckSelection = true;
}
else{
myObject = "None";
}
break;
default:
myObject = "None";
break;
}
break;
}
}
else{
myObject = "None";
}
myDialog.destroy();
return [myObject, myCheckSelection];
}

app.findPreferences = app.changePreferences = null;
app.findPreferences.appliedFont = 'Times';
app.findPreferences.fontStyle = 'Regular';
Times( '10', -75 );
Times( '01', -25 );
Times( '11', -75 );
Times( '12', -75 );
Times( '13', -75 );
Times( '14', -75 );
Times( '15', -75 );
Times( '16', -75 );
Times( '17', -75 );
Times( '18', -75 );
Times( '19', -75 );
Times( '1.', -150 );
Times( '1,', -100 );
Times( ',7', -50 );
Times( '7+', -50 );
Times( '1)', -100 );
Times( '+8', +75 );
Times( '-7', -100 );
Times( '1-', -100 );
Times( '-3', +25 );
Times( '1+', -100 );
Times( '+2', +25 );
Times( '6+', +25 );
Times( '2/', +100 );
Times( '/3', +100 );
Times( '6/', +100 );
Times( '/7', +100 );
Times( '0/', +100 );
Times( '/1', +100 );
Times( '(1', -50 );
Times( '31', -50 );
Times( '1°', -50 );
Times( '6:', +75 );
Times( ':9', +75 );
Times( '21', -25 );
Times( '75', -25 );
Times( '37', -25 );
Times( '7,', -100 );
Times( '87', -25 );
Times( '0-', +100 );
Times( '6-', +100 );
Times( '-1', -75 );
Times( '1:', -50 );
Times( ':1', -75 );
Times( '.B', +100 );
Times( '*B', +100 );
Times( '7-', -50 );
Times( '+1', -50 );
Times( '+9', +25 );
Times( ' 1', -100 );
Times( ' 7', -50 );
Times( '7 ', -100 );
Times( ' x', +100 );



function Times( kPair, kValue )

{

//All Paar-Vorkommen finden
var myPairs = myObject.search( kPair, false, true );

//Einfügen der Kerningwerte zwischen erstem und zweitem Buchstaben
for( var i = 0; i < myPairs.length; i++ )
myPairs[i].insertionPoints[1].kerningValue = kValue;

}

function myTextCleanup(myObject, myCheckSelection){
var myScriptFileName, myFindChangeFile, myFindChangeFileName, myScriptFile, myResult;
var myFindChangeFile = myFindFile("TextCleanup.txt")
if(myFindChangeFile != null){
var myResult = myFindChangeFile.open("r", undefined, undefined);
if(myResult == true){
//Clear any existing find/change settings.
app.changePreferences = NothingEnum.nothing;
app.findPreferences = NothingEnum.nothing;
//Loop through the find/change operations.
do{
myLine = myFindChangeFile.readln();
//Ignore comment lines and blank lines.
if((myLine.substring(0,2)!="//")&&(myLine != "")){
myFindChangeArray = myLine.split("\t");
//The first field in the line is the FindWhat string.
eval("app.findPreferences.properties = " + myFindChangeArray[0]);
//The second field in the line is the ChangeTo string.
eval ("app.changePreferences.properties = " + myFindChangeArray[1]);
//The third field in the line can be either "once" or "all".
//If it's "all", keep on searching until no instances of the
//search text are found, if it's "once," search just once.
myFindLimit = myFindChangeArray[2];
if(myFindLimit == "once"){
myFoundItems = myObject.search(app.findPreferences.findText, undefined, undefined, app.changePreferences.changeText);
}
else{
var myLoopLimit = 0;
outsideloop:
do{
//Because it's easy to end up in an endless loop when you set myFindLimit to "all", we need
//to provide a way to get out of the loop.
myFoundItems = myObject.search(app.findPreferences.findText, undefined, undefined, app.changePreferences.changeText);
myLoopLimit ++;
if(myLoopLimit > 100){
var myResult = confirm("Your find/change operation has been run 100 times. Do you want to continue?");
if(myResult == false){
break outsideloop;
}
else{
myLoopLimit = 0;
}
}
if(myCheckSelection == true){
//If myCheckSelection is true, reacquire a reference to the selection each time through the loop.
//You need to do this because deleting/adding characters has the potential to invalidate the
//text reference you're using.
myObject = app.selection[0];
}
}while(myFoundItems.length > 0);
}
//Reset the find/change preferences after each search.
app.changePreferences = NothingEnum.nothing;
app.findPreferences = NothingEnum.nothing;
if(myCheckSelection == true){
//If myCheckSelection is true, reacquire a reference to the selection each time through the loop.
//You need to do this because deleting/adding characters has the potential to invalidate the
//text reference you're using.
myObject = app.selection[0];
}
}
} while(myFindChangeFile.eof == false);
myFindChangeFile.close();
}
}
}
function myFindFile(myFileName){
var myFile;
try{
var myScriptFileName = app.activeScript;
//Get a file reference to the script.
var myScriptFile = File(myScriptFileName);
//Get a reference to the folder containing the script.
var myFolder = myScriptFile.parent;
//Look for the file name in the folder.
if(myFolder.getFiles(myFileName).length != 0){
var myFile = myFolder.getFiles(myFileName)[0];
}
else{
throw "error"
}
}
catch (myError){
myFile = File.openDialog("Choose the file containing your find/change list");
}
return myFile;
}


Danke für eure Mühe.

Sabine


als Antwort auf: [#266366]
(Dieser Beitrag wurde von Martin Fischer am 11. Dez 2006, 15:36 geändert)

Kerning nur in der Auswahl

Martin Fischer
  
Beiträge gesamt: 12783

12. Dez 2006, 09:03
Beitrag # 5 von 10
Beitrag ID: #266499
Bewertung:
(2933 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sabine,

in dem Skript wäre mir noch "etwas zu viel Luft" drin.
Die Abfragen der Auswahlklasse finden vor dem Dialog und in dem Dialog statt.
Und wenn im Dialog nichts ausgewählt wird, dann scheitern alle Abfragen, weil das Skript dann nicht abbricht, sondern mit einem "myObject = 'None'" weitermacht und dann an dem Code ab Zeile 117 - "Times( '10', -75 );" - hängen bleibt.

Wenn in dem Dialog nichts ausgewählt wird, dann kann das Skript nicht vernünftig weitermachen. Das bedeutet "exit()", basta. ;-)
Und nicht ein Herumgeeiere um "None", das dann doch nicht ausgewertet wird.

Ich vermute, daß es u.a. deswegen zu dem Zeile 117-Problem gekommen ist, weil Hauptcode und Funktionen nicht klar getrennt worden sind und durch den langen Dialogcode ein Teil des Hauptcodes sich zwischen den Funktionen versteckt hat und übersehen worden ist.

Ferner würde ich die Auswertungen innerhalb eines Dialogs (z.B. den Auswahltyp) auf's für den Dialog notwendige beschränken und wenn es für den Dialog relevant ist, in eine weitere Funktion ausgliedern. Der Dialog strotzt wg. den vielen notwendigen Reihen- und Spaltendefinitionen und den Definitionen der Dialogelemente so vor Code, daß er unübersichtlich wird, wenn dann auch noch Auswertungen darin stattfinden.

Das Kochgeschirr in den Küchenschrank, die Speisen in die Speisekammer und das Auto in die Garage. Du würdest bestimmt nicht auf die Idee kommen, das Paniermehl unter der Motorhaube des Autos suchen zu müssen.

Der Code ist aus verschiedenen Bausteinen aus mehreren Skripten zusammengestückelt, das merkt man ihm an. Spätestens in zwei Wochen, wenn Du aus der Entwicklung des Codes raus bist, verstehst Du den nicht mehr ohne ausführliches Studium. Also möglichst früh aufräumen und Luft rauslassen.

Aufräumen ist die langweiligste Arbeit, aber für den späteren gezielten Zugriff entscheidend.
Dabei lassen sich oft Blöcke in Form von Funktionen herstellen, die später in anderen Skripten das Neuerfinden des Rads ersparen: Funktion rüberkopieren und erledigt. Je allgemeiner und unspezifischer die Funktion, desto leichter die Wiederverwendbarkeit an anderer Stelle.

Peter Kahrel und Dave Saunders sind Meister im Aufräumen in Blöcken.
In Ihren Skripten ist kein i-Punkt zu viel.
Aber es gibt eben auch so Palaverer wie mich, die sich dazu erst disziplinieren müssen (vielleicht hätte ich meine Socken heute früh doch besser gleich in den Wäschekorb gesteckt, als sie vor ungebremster Neugierde kurzfristig neben meiner Maus zu parken).


Alles in allem scheint das Skript nun aber genau das zu tun, was Du damit beabsichtigt hast.
Und das aus dem Stand - unter Zurhilfenahme von ein paar Beispielskripten.
Bravo!

Du hast bestimmt schon anderswo geskriptet.
Oder ist der Code oben allein das Ergebnis der Instruktion durch Peters Einführung (was sehr für selbige sprechen würde)?

Hast Du noch technische Fragen?


als Antwort auf: [#266380]

Kerning nur in der Auswahl

sabine_hamann
Beiträge gesamt: 419

12. Dez 2006, 20:28
Beitrag # 6 von 10
Beitrag ID: #266639
Bewertung:
(2897 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

lieben Dank für das ausführliche Feedback. Ich hab aber immer noch ein Problem mit dem Script. Es führt nämlich nur die zweite Funktion aus. Das Kerning wird außer acht gelassen und nur das Suchen und Ersetzen wird ausgeführt. Ich denke, dass ich den Funktionsaufruf schlicht vergessen hatte. Also hab ich diesen eben noch eingefügt und bin an einem undefinierten Objekt gescheitert. Nun meint die Konsole, dass das myObjekt für die Times-Funktion nicht durchsucht werden könne.

Hast du noch einen Tipp?

Übrigens hab ich vorher nur etwas mit AppleScript rumgespielt. Das Handbuch von Peter Kahrel und das offizielle Adobe Scripthandbuch sind meine Lehrmeister gewesen. Also Peter, nochmal Dank an dich.


als Antwort auf: [#266499]

Kerning nur in der Auswahl

Martin Fischer
  
Beiträge gesamt: 12783

13. Dez 2006, 10:38
Beitrag # 7 von 10
Beitrag ID: #266687
Bewertung:
(2867 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sabine,

Deine Frage ist bei mir angekommen.
Allein es mangelt mir gerade an Zeit, die Testanordnung herzustellen und das Problem einzukreisen. Ich möchte Dich hiermit also noch etwas vertrösten: Ich kümmere mich darum, wenn ich wieder etwas Luft habe (heute Abend?).


als Antwort auf: [#266639]

Kerning nur in der Auswahl

Peter Kahrel
Beiträge gesamt: 182

13. Dez 2006, 16:55
Beitrag # 8 von 10
Beitrag ID: #266778
Bewertung:
(2827 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sabine,

Danke vielemals für Deine freundliche Anmerkungen. Was das Skript angeht, ich glaube, Martin hat Recht dass das kombinieren von verschiedene Skripte manchmal problematisch ist. Dein Skript (ein grosser Erfolg, sowie Martin schon sagte), ist jetzt schon nicht einfach, und es wird schwierig sein, es zu modifizieren. Es wäre vielleicht besser, das Skript zu ändern sowie Martin das angegeben hat:

- Stell fest, was ausgewahlt ist
- nichts ausgewahlt: verarbeite das ganze Dokument
- etwas ausgewahlt: verarbeite des Auswahl

Das kernen und das 'tekstaufräumen' sind ganz verschiedene Sachen, also wäre es vielleicht besser, sie in separate Dateien zu stecken, und sie mit der doScript() funktion an zu rufen. Die separate dateien sind dann einfacher zu warten.

Peter

(Pardon my terrible German--you're lucky you can't hear me speak it!)


als Antwort auf: [#266687]

Kerning nur in der Auswahl

Martin Fischer
  
Beiträge gesamt: 12783

13. Dez 2006, 22:14
Beitrag # 9 von 10
Beitrag ID: #266848
Bewertung:
(2805 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sabine,

nun habe ich Dein Skript etwas genauer unter die Lupe genommen.
Zitat Es führt nämlich nur die zweite Funktion aus. Das Kerning wird außer acht gelassen und nur das Suchen und Ersetzen wird ausgeführt.


Wird bei Dir das Kerning tatsächlich außer Acht gelassen?
Was hast Du ausgewählt?

In allen meinen Versuchen wurde das Kerning korrekt ausgeführt.


Zitat Ich denke, dass ich den Funktionsaufruf schlicht vergessen hatte.

Die Funktion wird z.B. mit "Times( '10', -75 );" aufgerufen.
Und die Funktion "Times()" ist definiert.
Ich kann keine Fehler entdecken.
Und hier funktioniert alles wie erwartet.

Zitat Also hab ich diesen eben noch eingefügt und bin an einem undefinierten Objekt gescheitert. Nun meint die Konsole, dass das myObjekt für die Times-Funktion nicht durchsucht werden könne.


Was für einen Funktionsaufruf hast Du eingefügt?
Und was für ein Objekt hast Du ausgewählt, wenn Du diesen Fehler ausgespuckt bekommst (was ist myObjekt)?
Wird Dir eine Zeile mit problematischen Code genannt?

Kann es sein, daß Du mir etwas verheimlichst?
Etwa einen neuen, modifizierten Code?

@ Peter: Schön, hier von Dir zu lesen. - Nice to read you here.

> (Pardon my terrible German--you're lucky you can't hear me speak it!)

Your German looks and reads very well and I would like to hear it spoken, somewhere along the way.
But you cannot hide that you are typing with an international keyboard: I'm missing the Umlauts.
It's just a kind of drinking bears, isn't it. ;-)


Ah, sorry, after all I've found one Umlaut now:

> tekstaufräumen

This reads as if you have spoken the word while typing it.
The words are spelled correct like this "Text aufräumen".

Hol di stief


als Antwort auf: [#266639]

Kerning nur in der Auswahl

sabine_hamann
Beiträge gesamt: 419

14. Dez 2006, 12:07
Beitrag # 10 von 10
Beitrag ID: #266959
Bewertung:
(2774 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin, Hallo Peter,

ach, es ist alles bestens. Ich hab das Script vergeigt und nun nochmal frisch gespeichert. Jetzt ist alles fein. Ich danke euch noch einmal sehr.


als Antwort auf: [#266848]
X

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
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. 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 / Horizon

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

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 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

Nein

Organisator: Impressed / Günther Business Solutions

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

Und es geht doch: Automatisierung im Großformatdruck!