[GastForen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Forenindex Erweiterte Suche Suchergebnisse
Ihre Suche lieferte 4 Ergebnisse
Illustrator: Legacy Text
Schlanker - das ist so eine Definitionsfrage. Manche Programmierer sehen das Aufrufen eines Menübefehls nicht als „saubere“ Programmierung an. Da bei Illustrator allerdings (durch die Vielzahl an Objekten) die Schleife durch alle Objekte spürbar länger dauern kann, nehme ich das bei Illustrator gerne in Kauf.

Deine Entsperrschleife habe ich jetzt nicht getestet. Aber kann es sein, dass du hier nur die Toplevel-Layer sowie die erste Hierarchie der Sublayer entsperrst? Dem Anschein nach bleiben tiefer verschachtelte Layer und auch die Objekte selbst vollkommen unberücksichtigt???

Der Menübefehl hingegen arbeitet dokumentenweit.

Wink
Viele Grüße
pixxxelschubser




Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean.

Isaac Newton


(25/0)
Illustrator: Legacy Text
Danke.
Das macht das ganze schon etwas schlanker.

Jetzt habe ich grade beim Testen gemerkt, dass nicht alles entsperrt wird.

Mit
Code
app.executeMenuCommand ('unlockAll'); 

werden auch noch alle gesperrten Objekte entsperrt.
(42/1)
Illustrator: Legacy Text
eine kleine Anmerkung:
Anstatt der zeitraubenden Schleife durch alle pathItems könntest du den folgenden Einzeiler austesten.
Code
app.executeMenuCommand ('clearguide'); 


Wink
Viele Grüße
pixxxelschubser




Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean.

Isaac Newton


(49/2)
Illustrator: Legacy Text
Die Lösung war einfacher als gedacht und bestand aus einer Zeile Code.

Code
// Unlock all layers (and their sublayers)   
processLayersRecursive(app.activeDocument.layers);

// Process all layers under variable "parent" (including sublayers on all levels).
function processLayersRecursive(parent){
for (var iLayer = 0; iLayer < parent.length; iLayer++){
var curLayer = parent[iLayer];
// Unlock the current layer
if (curLayer.locked){
curLayer.locked = false;
}
processLayersRecursive(curLayer.layers);
}
}
// Remove all guides
var doc = app.activeDocument;
for (var i = doc.pathItems.length-1; i >= 0; i--) {
var p = doc.pathItems[i];
if (p.guides == true) {
p.remove();
}
}
doc.selectObjectsOnActiveArtboard();
// ---------------------------------------------------------------------------- zweiter Teil
// alten Text aktualisieren
doc.legacyTextItems.convertToNative();
// ----------------------------------------------------------------------------- dritter Teil
// Absatzmarken entfernen
var active_doc = app.activeDocument;
var search_string = /\r/g; // g for global search, remove i to make a case sensitive search
var replace_string = ' '; // pour "\n"
var text_frames = active_doc.textFrames;
var this_text_frame, this_text_frame;
if (text_frames.length > 0) {
for (var i = 0 ; i < text_frames.length; i++) {
this_text_frame = text_frames[i];
new_string = this_text_frame.contents.replace(search_string, replace_string);
this_text_frame.contents = new_string;
}
}
// ------------------------------------------------------------------------------ dritter Teil
/////////////////////////////////////////////////////////////////
//Zoom and Center to Selection v2. -- CS, CS2
//>=--------------------------------------
//
// Zooms active view to selected object(s).
//
// New in v.2:
// If nothing is selected; sets view to 100% at current location.
//
// Simple but REALLY cool!
//
//>=--------------------------------------
// JS code (c) copyright: John Wundes ( john@wundes.com ) www.wundes.com
//copyright full text here: http://www.wundes.com/js4ai/copyright.txt
//////////////////////////////////////////////////////////////////

if ( documents.length > 0)
{
if(activeDocument.selection.length >0){
mySelection = activeDocument.selection;
//if object is a (collection of) object(s) not a text field.
if (mySelection instanceof Array) {
//initialize vars
initBounds = mySelection[0].visibleBounds;
ul_x = initBounds[0];
ul_y = initBounds[1];
lr_x = initBounds[2];
lr_y = initBounds[3];
//check rest of group if any
for (i=1; i<mySelection.length; i++) {
groupBounds = mySelection[i].visibleBounds;
if (groupBounds[0]<ul_x){ul_x=groupBounds[0]}
if (groupBounds[1]>ul_y){ul_y=groupBounds[1]}
if (groupBounds[2]>lr_x){lr_x=groupBounds[2]}
if (groupBounds[3]<lr_y){lr_y=groupBounds[3]}
}


}

//get x,y/x,y Matrix for 100% view

activeDocument.views[0].zoom = 1;
ScreenSize = activeDocument.views[0].bounds;
ScreenWidth= ScreenSize[2] - ScreenSize[0];
ScreenHeight=ScreenSize[1] - ScreenSize[3];
screenProportion =ScreenHeight/ScreenWidth;

//Determine upperLeft position of object(s)
cntrPos = [ul_x,ul_y];

//mySelection[0].position;
//cntrPos[0] += (mySelection[0].width /2);
//cntrPos[1] -= (mySelection[0].height /2);
//offset by half width and height
mySelWidth=(lr_x-ul_x);
mySelHeight=(ul_y-lr_y);
cntrPos[0] = ul_x + (mySelWidth/2);
cntrPos[1] = ul_y - (mySelHeight/2);
//alert("ul point is "+cntrPos);
//center to screen to the object
activeDocument.views[0].centerPoint = cntrPos;
//alert("objWidth="+mySelection[0].width+", actualWidth="+ActualWidth);
//alert("objHeight="+mySelection[0].height+", actualHeight="+ActualHeight);

//set zoom for height and width
zoomFactorW = ScreenWidth/mySelWidth;
zoomFactorH = ScreenHeight/mySelHeight;
//alert("zoomFactorW = "+zoomFactorW+"\r zoomFactorH = "+zoomFactorH);

//decide which proportion is larger...
if((mySelWidth*screenProportion) >= mySelHeight){
zF = zoomFactorW;
//alert("zoomFactorW = "+zoomFactorW);
}else{
zF = zoomFactorH;
//alert("zoomFactorH = "+zoomFactorH);
}

//and scale to that proportion minus a little bit.
activeDocument.views[0].zoom = zF *.85;

}else{
//alert("Please select an object on the page.");
activeDocument.activeView.zoom=1;
}
}

(54/3)

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.

Veranstaltungen
21.08.2019

Affinity Photo, Affinity Designer und Affinity Publisher

Schulungsraum von pre2media – Dammstrasse 8, 8610 Uster
Mittwoch, 21. Aug. 2019, 09.00 - 17.00 Uhr

Referat

Alle reden davon – wir zeigen ihnen kompakt was in den einzelnen ­Programmen wirklich steckt. Sind die Programme von Affinity – bereits heute – eine Alternative zu den Adobe-Programmen? Was versteht ­Affinity unter StudioLink und der vollständigen Integration der Affinity-Apps. Sie können jedes Affinity-Referat einzeln buchen. Oder alle drei Referate zusammen, bequem an einem Tag.

Mittwoch, 21. August 2019
9.00 bis 11.00 Affinity Photo Bildbearbeitung CHF 90.00
13.00 bis 15.00 Affinity Designer Grafikdesign CHF 90.00
15.00 bis 17.00 Affinity Publisher Layoutprogramm CHF 90.00
Alle drei Affinity Programme zusammen (6 Lektionen) CHF 220.00

Diese Referate werden auch noch am Fr. 13. September und am Di. 22. Oktober 2019 durchgeführt.

Ja

Organisator: pre2media gmbh, Dammstrasse 8, 8610 Uster, info@pre2media.ch, www.pre2media.ch

Kontaktinformation: Peter Jäger oder Roger Thurnherr, E-Mailinfo AT pre2media DOT ch

https://www.pre2media.ch/-1/de/kurse/affinity-referat/

Affinity-Referat bei pre2media
Veranstaltungen
22.08.2019

Impressed GmbH, Hamburg
Donnerstag, 22. Aug. 2019, 10.00 - 10.30 Uhr

Webinar

Wir stellen Ihnen in diesem kostenlosen ca. halbstündigen Webinar das neue Enfocus Switch PDF Review Modul zur Freigabe von PDF-Druckdaten vor.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Detlef Grimm, E-Mailschulungen AT impressed DOT de

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

Enfocus Switch PDF Review Modul
Hier Klicken