[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Skript funktioniert nur auf Einzelseiten

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

Skript funktioniert nur auf Einzelseiten

faxinger666
Beiträge gesamt: 167

28. Nov 2018, 17:30
Beitrag # 1 von 3
Bewertung:
(2859 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, ich habe folgendes Problem:

Mein Skript soll mir die "statt"Preise durchstreichen, was es auch immer brav getan hat.

Nur funktioniert es leider nur mit Einzelseiten. Wenn ich eine Doppelseite bearbeite funktioniert das Skript nicht mehr.

Habt ihr einen Rat für mich?

Hier ist das Skript:

Code
//DESCRIPTION: Löscht vorhandene Linien und zeichnet neue Linien beim Preis nach "statt" 
// das aktive Dokument
var curDoc = app.activeDocument;
// die aktive Ebene
var curLayer = curDoc.activeLayer=curDoc.layers.itemByName("Artikel");
// alle Linien auf der aktiven Ebene
var allLinesOnCurLayer = curLayer.graphicLines.everyItem().getElements();

// die Schleife muss rückwärts laufen, da etwas gelöscht wird
for (var i = allLinesOnCurLayer.length-1; i >= 0 ; i--) {
var curLine = allLinesOnCurLayer[i];
// prüfen ob die Linie ohne Pfeile ist
if (curLine.leftLineEnd == ArrowHead.NONE) {
curLine.remove();
}
};


var _doc = app.activeDocument;

app.findGrepPreferences = app.changeGrepPreferences = null;
app.findGrepPreferences.findWhat= "(?<=statt\\s)\\d+\\.(\\d+|-)";
var _found = _doc.findGrep();

for (j = 0; j < _found.length; j++) {
var curFound = _found[j];
var _firstchar = curFound.contents[0];


switch (_firstchar) {
case "1":
var _wert = -0.2;
break;

case "2":
var _wert = +0.15;
break;

case "3":
var _wert = +0.15;
break;

case "4":
var _wert = +0.25;
break;

case "5":
var _wert = +0.18;
break;

case "6":
var _wert = +0.15;
break;

case "7":
var _wert = +0.02;
break;

case "8":
var _wert = +0.1;
break;

case "9":
var _wert = +0.1;
break;

case "0":
var _wert = +0.05;
break;
};



var x1 = curFound.horizontalOffset -_wert;
var y1 = curFound.baseline - 0.15;
var x2 = curFound.endHorizontalOffset +0.2;
var y2 = curFound.baseline - 1.9;
var graphicLine = _doc.graphicLines.add();
graphicLine.properties = {
fillColor : "None" ,
strokeColor : "Black" ,
strokeWeight : "1pt"
}
graphicLine.paths[0].pathPoints[0].anchor = [x1, y1];
graphicLine.paths[0].pathPoints[1].anchor = [x2, y2];
};


Danke für eure Mithilfe

LG faxinger
X

Skript funktioniert nur auf Einzelseiten

Uwe Laubender
Beiträge gesamt: 5316

28. Nov 2018, 19:08
Beitrag # 2 von 3
Beitrag ID: #567789
Bewertung:
(2844 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Faxinger,
nur ein Verdacht:

Stelle mal das Lineal um.
Von "Lineal pro Seite" oder "Lineal am Bund" auf:
"Lineal pro Druckbogen".


als Antwort auf: [#567781]

Skript funktioniert nur auf Einzelseiten

faxinger666
Beiträge gesamt: 167

29. Nov 2018, 21:40
Beitrag # 3 von 3
Beitrag ID: #567811
Bewertung:
(2789 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

genau das wwar das Problem.

Vielen Dank

LG
faxinger


als Antwort auf: [#567789]