[GastForen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Forenindex -- Lesezeichen

15 Lesezeichen für skript

[Grep | JS] Ø oder ø finden…
n'abend zusammen,
ich bastel gerade für's büro ein skript, welches eine sammlung von grep-suchen abarbeitet. wir haben für viele dinge definierte abstände und schreibweisen. dazu gehören auch Ø uns ø vor oder nach Zahlen.

Kopiere ich diese Zeichen in das GREP-feld in ID, dann finde ich alle. kopiere ich meinen suchbegriff in mein JS dann findet er das nimmer im dokument. *grübel*

hier ein teil aus dem JS:


Zitat // Duchmesser ø/Ø vor Zahlen
//Suchfelder zurücksetzen
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
//Suchoptionen festlegen
app.findChangeGrepOptions.includeFootnotes = false;
app.findChangeGrepOptions.includeHiddenLayers = true;
app.findChangeGrepOptions.includeLockedLayersForFind = true;
app.findChangeGrepOptions.includeLockedStoriesForFind = false;
app.findChangeGrepOptions.includeMasterPages = true;
//Suchen
app.findGrepPreferences.findWhat = "(Ø|ø)[ ~m~>~S~s~|~%~<~4~3~.~/~f]?(\\d)";
//Ersetzen
app.changeGrepPreferences.changeTo = "$1 $2";
app.activeDocument.changeGrep ();


any ideas anybody?
...
madoho
1. Sep 2008, 22:09
FindChangeList - allgemeine Fragen
Hallo rübi,

Antwort auf: 1. Ist es egal in welcher Codierung die Datei gespeichert wird (Windows Latin, MacOS, Utf 8)?


Ja, denn Adobe-Programme konvertieren 8-bit codierte Dateien nach Unicode:

Zitat von Adobe InDesign CS2 Scripting Reference When doing file I/O, Adobe applications convert 8-bit character encoding to Unicode. By default, this conversion process assumes that the system encoding is used (code page 1252 in Windows or Mac Roman in Mac OS).



Antwort auf: 2. Warum muss ich mindestens eine findChangeOption eingeben damit überhaupt etwas passiert?


FindChangeByList.jsx erwartet pro Zeile 5 Felder:

Zitat von FindChangeList.txt The format of each record in the file is:
findType<tab>findProperties<tab>changeProperties<tab>findChangeOptions<tab>description

Where:
<tab> is a tab character
(1) findType is "text", "grep", or "glyph" (this sets the type of find/change operation to use).
(2) findProperties is a properties record (as text) of the find preferences.
(3) changeProperties is a properties record (as text) of the change preferences.
(4) findChangeOptions is a properties record (as text) of the find/change options.
(5) description is a description of the find/change operation


Du könntest die FindChangeOptions auch ohne Attribute übergeben: {}

Antwort auf: 3. Wie kann ich nach einem Zeichenformat (entweder Helvetica Neue 75 bold oder besser noch nur den Schnitt 75 bold) suchen?
>> appliedFont?? Wie würde die komplette Suche lauten?

text<tab>{fontStyle:"75 Bold"}<tab>{appliedCharacterStyle:"Bold"}<tab>{}<tab>// ersetze Schriftstil '75 bold' durch Zeichenformat 'Bold'

also:
Code
text	{fontStyle:"75 Bold"}	{appliedCharacterStyle:"Bold"}	{}	// ersetze Schriftstil '75 bold' durch Zeichenformat 'Bold' 


Antwort auf: 4. In dem Beispiel in der Datei
(//text {findWhat:"^9^9.^9^9"} {appliedCharacterStyle:"price"} steht kein "change to"
> Ist die dritte Stelle in der Eingabe immer das "change to"? Woher weis man, wann es erforderlich ist und wann nicht??

Das steht in den Instruktionen zur Struktur der Einträge in 'FindChangeList.txt' (s.o.).

Ich habe Übersichten zu den Eigenschaften (properties), nach denen gesucht werden kann und die ersetzt werden können, nebst den möglichen Optionen angehängt (es handelt sich um Auszüge aus der HTML-Umsetzung der Scripting-Reference für CS3: indesigncs3jshelp.zip):

Text-Suche:
01_FindTextPreference.html
02_ChangeTextPreference.html
03_FindChangeTextOption.html

GREP-Suche:
04_FindGrepPreference.html
05_ChangeGrepPreference.html
06_FindChangeGrepOption.html
...
Martin Fischer
22. Mär 2008, 09:07
|| Frage zu #include
Hallo Jürgen,

versuch's mal so:

Code
eval("#include " + Folder.userData + '/Sprachfiles/Sprachdaten.jsx'); 


#include ist keine gewöhnliche Javascript-Funktion sondern eine "Präprozessoranweisung" und kann nicht Variablen oder Ausdrücke als Argument annehmen. Der einzuschließende Dateipfad muss buchstäblich hinter include stehen. Mit eval() kann man das quasi simulieren.

Sauberer wäre es in diesem Fall aber, die Sprachdatei mit app.doScript() auszuführen:

Code
app.doScript(File(Folder.userData + '/Sprachfiles/Sprachdaten.jsx')); 


LG
Martin
...
Martin Braun
6. Dez 2012, 20:19
|| Absatzformate aus JSON erzeugen
Hey,

beim rumspielen ist mir folgendes aufgefallen.
Man kann in die ".add()" Methode JSON rein schmeissen. Vielleicht wusstet ihr das schon. Wenn nicht hier mein Code zum Absatzformate erzeugen.
Viel Spass damit.
:F
Code
main(); 
function main(){


createParStyles(app.documents.add());

};


function createParStyles (theDoc) {

var parStyles = {
"styles":[
{"name":"h1" ,"appliedFont":app.fonts.item(0)/* bold */ , "pointSize":23},
{"name":"h2" , "pointSize":17},
{"name":"h3" , "pointSize":16},
{"name":"h4" , "pointSize":15},
{"name":"h5" , "pointSize":15},
{"name":"h6" , "pointSize":15},
{"name":"body" ,"appliedFont":app.fonts.item(0) , "pointSize":13,"alignToBaseline":true},
{"name":"ul" , "pointSize":13, "basedOn":theDoc.paragraphStyles.item("body")},
{"name":"ol" ,"pointSize":13, "basedOn":theDoc.paragraphStyles.item("body")},
{"name":"blockquote" ,"pointSize":12 ,"leftIndent":5}
],
};



for(var i in parStyles.styles){
try{
theDoc.paragraphStyles.add(parStyles.styles[i]);
}catch(e){
alert(e + "\n" + i);
};
};
};

...
fabiantheblind
8. Mai 2012, 19:56
Objektebenenoptionen per Skript ändern (Optionen)
Hallo,
ich möchte mir einem Skript, welches bereits von allen in ein Indesign-Dokument verknüpfte Bilder (Illustrator) die Ebene ändert, auch die "Optionen für Verknüpfungsaktualisierung" verändern. Diese ist per Default auf "Ebenensichtbarkeit von PDF verwenden", ich möchte diese Optionen jedoch auf "Benutzerdefinierte Ebenensichtbarkeit beibehalten" schalten. Jedoch habe ich keine Ahnung wie ich diese Option in dem Skript umsetzen soll. Anbei das Skript:
Code
var myLinks = app.activeDocument.links;   
var newLang = "DE";
avaiLangs = new Array("DE", "GB", "ES", "FR", "IT", "NL", "DK", "FI", "SE");
for ( var i = 0; i < myLinks.length; i++ )
{
if ( myLinks[i].parent.hasOwnProperty('graphicLayerOptions') ) {
checkLayers( myLinks[i], newLang);
}

}
alert("Sprachumstellung abgeschlossen!");
function checkLayers( oneLink, newLang)
{
for ( var n = 0; n < avaiLangs.length; n++ ){
var myObjectLayers = oneLink.parent.graphicLayerOptions.graphicLayers;
if ( myObjectLayers.itemByName(avaiLangs[n]).isValid)
{ myObjectLayers.itemByName(avaiLangs[n]).currentVisibility = false;


}

}
if ( myObjectLayers.itemByName(newLang).isValid){
myObjectLayers.itemByName(newLang).currentVisibility = true;
}

}


Ich hoffe mir kann jemand helfen.
Danke!

LG
Sebastian
...
hansmaulwurf90
9. Mär 2011, 15:45
Benchmark für Photoshop
Hallo miteinander,

[edit jekyll]
Uuups. Ich habe das hier total verpasst Blush:

http://www.hilfdirselbst.ch/..._P208582.html#208582


Zitat von Thomas (06.02.2006)
Du hast ja jetzt die 'Lizenz zu ändern'. Bring doch mal ganz vorne den Link in Ordnung.
Mir ist egal ob zu mir:
Aktuell!! http://www.richard-ebv.de/images/HDS/psBench.zip
oder zu dir verlinkst, Hauptsache auf den aktuellen Benchmark.


Habe auch den Titel gleich mit geändert :o)
[/edit]


ich habe mal den PSbench von hier:

http://htttp:/...ages/HDS/psBench.zip

http://www.geocities.com/psbench/index.html

so umgeschrieben das er alleine komplett durchläuft und man nur noch eine Gesamtzeit für die ganze Suite bekommt.

Mich würde mal interressierren, ob die Aktion so unter Windows läuft. Zumindestens im sichern Dialog dürfte es etwas hakeln, aber das tut es unter OS9 und X <.3 auch.

Wer also Lust und Zeit hat, seinen Rechner mal zwischen 2? und 20! Minuten zu quälen, bitte schön:

http://www.e-b-v.de/...enchautorun1.atn.zip
http://www.e-b-v.de/...enchautorun3.atn.zip

Die Aktion laden, starten und der Rest sollte sich selbst erklären;-)

Das kam hier so raus (für 1-fache Durchläufe):
G3 b/w 400MHz 768MB RAM 256 davon für PS6: 19'30" = 1170" = 100%
G4 2x800MHz 1,5GB RAM 700 davon für PS7: 5'33" = 333" = 350%
G4/500 1,4GHz 768MB RAM 350 davon für PS7: 5'54" = 354" = 330%
G4 2x1GHz 1,25GB RAM 800 davon für PS6: 4'34" = 274" = 427%
Tibook akku 867 1GB RAM 800 davon für PS7: 10'30" = 630" = 186%
Tibook Netz 867 1GB RAM 800 davon für PS7: 6'58" = 418" = 280%
G5 2x2GHz 2GB RAM 1350 davon für PS7: 2'14" = 134" = 873%

[Nachtrag 28.1.04]

G5 2x2GHz 2GB RAM 1350 davon für PSCS: 2'46" = 166" = 705%

Also etwa auf PS7 auf dem selben Gerät und gleicher Konfiguration:

-20%

Ich habe allerdings noch nicht festmachen können, was da bremst. Die langen Filter am Ende des Tests sind jeweils nur etwa 1 sec langsammer. Allerdings ist Punktieren von etwa 14" auf knapp 30" fast nur noch halb so schnell.

[Ende Nachtrag 28.1.04]


MfG

Thomas...
Thomas Richard
23. Nov 2003, 02:01
Neues Fußnotenproblem CS5
Beim Synchronisieren der Einstellungen der Linie bei 'fortgesetzten Fußnoten' mit der Linie über der 'ersten Fußnote in der Spalte' hilft das Skript continuingRule_Sync.jsx.


Ein ganzes Set mit Einstellungen zu den Fußnotenoptionen lässt sich mit dem Skript footnoteOptionsSet.jsx einrichten.
...
Martin Fischer
9. Mär 2011, 09:24
Absatzformate die sich automatisch gemäss Voreinstellungen ändern
Weil's ohnehin aktualisiert werden mußte (http://www.adobeforums.com/webx/.3c05c1b8/5), hier die CS3-Version des Skript zum Wechsel der Sprache in Absatz- und Zeichenformaten:

Code
// changeLanguageOfStyles_CS3.jsx   
//
myDoc=app.documents[0];
var theResult = myDisplayDialog();
var myLanguage= theResult[0];

// Absatzformate
if ( theResult[1] == true )
{
var myStyles=myDoc.paragraphStyles;
for ( var oneStyle=1; oneStyle < myStyles.length; oneStyle++ )
{
myStyles[oneStyle].appliedLanguage=myLanguage;
}
}

// Zeichenformate
if ( theResult[2] == true )
{
var myStyles=myDoc.characterStyles;
for ( var oneStyle=1; oneStyle < myStyles.length; oneStyle++ )
{
myStyles[oneStyle].appliedLanguage=myLanguage;
}
}

function myDisplayDialog()
{
var theLanguages = app.languagesWithVendors.everyItem().name;
var allLang = app.languagesWithVendors;

var myDialog = app.dialogs.add( {name:"Ändere die Sprache aller Absatzformate"} );
with( myDialog.dialogColumns.add() )
{
with( dialogRows.add() )
{
with( dialogColumns.add() )
{
staticTexts.add( {staticLabel:"Sprache:", minWidth:120} );
}
with( dialogColumns.add() )
{
var myLanguagesDropdown = dropdowns.add( {stringList:theLanguages, selectedIndex:1} );
}
}
with( dialogRows.add() )
{
with( dialogColumns.add() )
{
staticTexts.add( {staticLabel:"anwenden auf:", minWidth:120} );
}
with( dialogColumns.add() )
{
var myParacheckbox = checkboxControls.add( {staticLabel:"Absatzformate", checkedState:true} );
var myCharcheckbox = checkboxControls.add( {staticLabel:"Zeichenformate", checkedState:false} );
}
}
}
var theResult = myDialog.show();
if ( theResult == true )
{
var theLan = allLang[myLanguagesDropdown.selectedIndex]
var theParaSt = myParacheckbox.checkedState;
var theCharSt = myCharcheckbox.checkedState;
myDialog.destroy();
}
else
{
myDialog.destroy();
exit();
}
return [theLan, theParaSt, theCharSt];
}

...
Martin Fischer
10. Jan 2008, 00:54
[JS] Barcode Generator Skript - TESTEN
 
Hallo,

im engl. Skripting-Forum wurde ein Skript zur Erstellung von EAN13/ISBN-Barcodes veröffentlicht.

Hat irgendjemand die Möglichkeit einen mit diesem Skript erzeugten Barcode mit einem Barcode-Leser zu prüfen?

Hier der Link:
http://www.adobeforums.com/...?14@581.kUhHholPQaO@
...
zaphodbeeblebroxx
26. Sep 2007, 14:33
vertikale Hilfslinien entfernen
Tut's das Script?


Code
allGuides = app.documents[0].guides; 
for (n = allGuides.length-1; n>=0; n--) {
if (allGuides[n].orientation == HorizontalOrVertical.VERTICAL) {
allGuides[n].remove();
}
}


(Martin kann das bestimmt auch in einer Zeile ;) )
...
Gerald Singelmann
18. Jan 2008, 09:41
Alle offenen Dateien speichern... Skript?
Hallo Gerald,

Um alle offenen Dokumente mit "sichern unter" zu sichern und dabei durch Löschen der History ihre Dateigröße zu verringern, verwende ich folgendes Skript. Wink

Code
// saveOpenDocs.jsx 
//DESCRIPTION: Sichert alle geöffneten Dokumente und reduziert ihre Dateigröße

var myDocs = app.documents;
var unsavedDocs = 0;
for (oneDoc = 0; oneDoc < myDocs.length; oneDoc++)
(myDocs[oneDoc].saved == true)
? myDocs[oneDoc].save(myDocs[oneDoc].fullName)
: unsavedDocs++;

if (unsavedDocs > 0)
alert (unsavedDocs + " Dokument(e) nicht gesichert!")


Es sichert nur die Dokumente, die bereits einmal gesichert worden sind (also ihre pysikalische Heimat auf dem Datenträger gefunden haben).
...
Martin Fischer
11. Jan 2008, 15:50
versionierung von dateien OHNE version cue?
Das Eventskript saveCopy.jsx für InDesign CS3 erstellt vor dem Sichern der aktuellen Datei automatisch eine Kopie der ursprünglichen Version in einem Unterordner namens "Sicherung", welcher bei Bedarf vom Skript angelegt wird.
...
Martin Fischer
9. Nov 2007, 18:34
||| Scripte unter ID CS3
Hallo,

ich habe mir die deutsche DemoVersion von ID CS3 auf meinen Rechner installiert.

Die Scripte von ID CS2 laufen auch unter ID CS3.
Dazu muß nur, nach Information von Gerald, ein neuer Ordner angelegt werden:

\Dokumente und Einstellungen\Name\Anwendungsdaten\Adobe\InDesign\Version 5.0\Scripts\Scripts Panel\
Version 4.0 Scripts

und dorthin dann die alten Scripte kopieren.

Leider stürzt mir ID CS3 bei Änderung und Hinzufügen nach ca. 30 Tastaturkürzeln ab.
Ich hoffe, dass das später bei der regulären Version nicht mehr passiert.

Gruß
Quarz
...
Quarz
15. Mai 2007, 14:15
Eventskrips für CS3
Zitat aber Herr Singelmann hat gesagt

Holy smoke! Bitte meißelt meine Worte nicht in Marmor. Wenn überhaupt meißeln, dann in Vanillepudding, da kriegt man sie wenigstens wieder raus.

Ich habe nur den Scripting Guide zitiert (zu laden unter http://www.adobe.com/...scripting/index.html in der Mitte auf "Scripting resources" klicken), weil ich es plausibel finde, auch diesen Part unser Scripte sprachneutral zu halten.

Dort steht
Zitat in InDesign scripting, menuItems, menus, menuActions,and submenus are all referred to by name. Because of this, scripts need a method of locating these objects that is independent of the installed locale of the application. To do this, you can use an internal database of strings that refer to a specific item, regardless of locale

und
Zitat Note:It is much better to get the locale-independent name of a menuAction than of a menu, menuItem, or submenu, because the title of a menuAction is more likely to be a single string. Many of the other menu objects return multiple strings when you use the getKeyStrings method.


Das Beispielscript im Guide zum finden des neutralen Strings ist
Code
var myString = ""; 
var myMenuAction = app.menuActions.item("Convert to Note");
var myKeyStrings = app.findKeyStrings(myMenuAction.name);
if(myKeyStrings.constructor.name == "Array"){
for(var myCounter = 0; myCounter < myKeyStrings.length; myCounter ++){
myString += myKeyStrings[myCounter] + "\r";
}
}
else{
myString = myKeyStrings;
}
alert(myString);


Um daraus die momentan aktuelle Sprache zu machen
Code
var myString = app.translateKeyString("$ID/NotesMenu.ConvertToNote"); 


So, jetzt ist alles wieder schön relativiert und eingeebnet :)

Danke
...
Gerald Singelmann
28. Jun 2007, 23:09
lebende Kolumnentitel
Hallo Uli,

hier eine auf die Schnelle überarbeitete Version meines quick & dirty-Skripts zur Plazierung des rechten Kolumnentitels.

Voraussetzung
1. auf der/den Musterseite wird ein Textrahmen für die Kolumnentitel eingerichtet (Formatierung);
2. dieser Textrahmen bekommt die Skriptbezeichnung "HeaderR" (bei Bedarf im Skript die Bezeichnung ändern);
3. vor dem Start des Skripts muß sich der Cursor im Textfluß, in dem nach dem Absatzformat für die Quelle gesucht werden soll, befinden (oder ein Textrahmen ausgewählt sein).

Was macht das Skript
1. Das Skript fragt in einem Dialog nach einem Absatzformat für die Quelle (der Inhalt welcher Überschrift soll in den Kolumnentitel übernommen werden?)
2. das Skript sucht im ausgewählten Textfluß Textrahmen für Textrahmen nach dem Absatzformat.
3. es prüft, ob auf der aktuellen seite ein Textrahmen mit der Bezeichnung "HeaderR" gelöst ist.
a. wenn nein (Skript läuft zum ersten mal durch), dann sucht es bei den Musterseitenobjekten nach einem Textrahmen mit der Bezeichnung "HeaderR", löst diesen und ersetzt den Inhalt durch den Inhalt der Überschrift.
b. wenn ja (Skript ist schon einmal durchgelaufen), dann ersetzt es den Inhalt durch den Inhalt der Überschrift.

Bei mir ist das Skript zwei Skripte: eins für den ersten Durchlauf und eins für weitere Durchläufe.
Das vorliegende Skript erledigt beides, ist deswegen aber etwas langsamer. Vielleicht finde ich noch einen Weg, das Ganze zu beschleunigen.

Probiers mal aus:
Code
// HeaderR_mit_Loesen.jsx 
//

Object.prototype.isText = function()
{
switch(this.constructor.name)
{
case "InsertionPoint":
case "Character":
case "Word":
case "TextStyleRange":
case "Line":
case "Paragraph":
case "TextColumn":
case "Text":
case "TextFrame":
return true;
default :
return false;
}
}

if ((app.selection.length > 0) && (app.selection[0].isText()))
{
var myLabel = "HeaderR";
var myDoc = app.documents[0];
var myStory = app.selection[0].parentStory;

// Grundeinrichtung Inhalt rechter Kolumnentitel = 2. Absatz im Textfluß
var myKolText = myStory.paragraphs[1].contents;

var myKolParaName = myDisplayDialog();
var myKolPara = myDoc.paragraphStyles.item(myKolParaName);

for (oneFrame = 0; oneFrame < myStory.textFrames.length; oneFrame++){
for (onePara = 0; onePara < myStory.textFrames[oneFrame].paragraphs.length; onePara++){
if (myStory.textFrames[oneFrame].paragraphs[onePara].appliedParagraphStyle == myKolPara){
var myKolText = myStory.textFrames[oneFrame].paragraphs[onePara].contents;
}
}
var myPage = myStory.textFrames[oneFrame].parent.documentOffset -1
var myHeaderFrameFound = false;
for (oneF = 0; oneF < myDoc.pages[myPage].textFrames.length; oneF ++){
if (myDoc.pages[myPage].textFrames[oneF].label == myLabel){
myDoc.pages[myPage].textFrames[oneF].contents = myKolText;
myHeaderFrameFound = true;
}
}
if (myHeaderFrameFound == false)
{
var myObjects=myDoc.pages[myPage].masterPageItems;
for (oneObj=0; oneObj<myObjects.length; oneObj++)
{
if (myObjects[oneObj].label==myLabel)
{
myFrame = myObjects[oneObj].override(myDoc.pages[myPage]);
myFrame.contents = myKolText
}
}
}
}
alert("Ready!")
}
else
{
alert("Fehler!\rBitte Textrahmen auswählen oder Cursor in Text plazieren.")
}


function myDisplayDialog(){
var myFieldWidth = 80;

myParaStyles = myDoc.paragraphStyles.everyItem().name;
myParaStyles.splice(0,2);

var myDialog = app.dialogs.add({name:"Kolumnentitel"});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Quellformat:", minWidth:myFieldWidth});
}
with(dialogColumns.add()){
var mySourceDropdown = dropdowns.add({stringList:myParaStyles, selectedIndex:0});
}
}
}
var myResult = myDialog.show();
if(myResult == true){
var theParaStyle =myParaStyles[mySourceDropdown.selectedIndex];
myDialog.destroy();
}
else{
myDialog.destroy();
}
return theParaStyle;
}

...
Martin Fischer
11. Apr 2006, 14:09

Aktuell

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
18.06.2019

Leipzig
Dienstag, 18. Juni 2019, 09.30 Uhr

Schulung, Seminar

Die Schulung konzentriert sich auf die wirklich wichtigen Aufgaben in der Bildbearbeitung: Colormanagement, Farbkonvertierungen, Brillanz, Belichtung, Farbretusche, Freisteller, Schärfe und verlustfreie Bildkorrektur. Ein Schwerpunkt der Schulung liegt in der verlustfreien Bearbeitung von Bilddaten und bietet zudem den Ausblick auf Bildmontagen, das Anlegen von Farblooks und den Umgang mit dem RAW-Format an.

Ja

Organisator: Cleverprinting.de

https://www.cleverprinting.de/schulungen/schulung-photoshop-next-generation/

Photoshop Schulung für Fortgeschrittene
Veranstaltungen
18.06.2019 - 19.06.2019

Effiziente Medienproduktion mit InDesign und Photoshop

Leipzig
Dienstag, 18. Juni 2019, 09.30 Uhr - Mittwoch, 19. Juni 2019, 17.30 Uhr

Schulung, Seminar

Wie arbeiten Sie mit Colormanagement in InDesign? Wie gelangen Sie rascher zu einer flexiblen Dateivorlage? Welche Prozesse im Umgang mit Texten, Bildern oder Tabellen lassen sich eleganter gestalten, welche automatisieren? Wir zeigen Ihnen, wie Sie mit Profiwerkzeugen für Typo und Layout deutlich schneller und effizienter arbeiten können – auch im Team und mit Kunden!

Ja

Organisator: Cleverprinting.de

https://www.cleverprinting.de/zweitaegige-weiterbildung-zum-next-generation-publisher/

Zweitägige Weiterbildung zum Next Generation Publisher
Hier Klicken