[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Textrahmen und Inhalt finden

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

Textrahmen und Inhalt finden

MarioF
Beiträge gesamt: 390

22. Aug 2018, 23:30
Beitrag # 1 von 9
Bewertung:
(2568 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich habe folgenden Code:
Code
var _dok = app.activeDocument; 
var _alleSeiten = _dok.pages;


for (var i = 0; i < _alleSeiten.length; i++) {
var _seite = _alleSeiten[i];
var _tfInfo = _seite.textFrames.itemByName("tf_info");
if (_tfInfo.isValid == true) {

app.findTextPreferences = app.changeTextPreferences = NothingEnum.NOTHING;
app.findTextPreferences.findWhat = "Info";

var _findInfo = _dok.findText();

for (var n = _findInfo.length-1 ; n >=0 ; n--) {
var _findTR = _findInfo[n];
var _ObjektFormat = _findTR.parentTextFrames[0];
_ObjektFormat.appliedObjectStyle = _dok.objectStyles.itemByName ("Infobox");
}
}
}


Ziel ist es, auf einer Seite einen Textrahmen mit den Bezeichnung "tf_info" zu finden und in dem der Text "Info" enthalten ist. Beim Auffinden soll dem TR das OF "Infobox" zugewiesen werden.
Der Code ignoriert nun aber die Bezeichnung des TR und findet alle TR, in dem das Wort Info steht. Wie bekomme ich es dazu, nur die Textrahmen mit dem Wort zu finden?
X

Textrahmen und Inhalt finden

Uwe Laubender
Beiträge gesamt: 5316

23. Aug 2018, 10:43
Beitrag # 2 von 9
Beitrag ID: #565741
Bewertung:
(2544 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,
schau' Dir mal Deine Zeile an, die nach dem Text sucht.
_dok.findText() durchsucht nun mal das ganze Dokument.
Beschränke das auf _tfInfo.


als Antwort auf: [#565737]

Textrahmen und Inhalt finden

MarioF
Beiträge gesamt: 390

23. Aug 2018, 16:15
Beitrag # 3 von 9
Beitrag ID: #565750
Bewertung:
(2520 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,
vielen Dank. So klappt es doch ganz gut ;-)
Ich würde das Script erweitern wollen. Es gibt 12 Begriffe, die in den Textrahmen vorhanden sein können. Das Script soll wie gehabt nach TR "tr_info" suchen.
Wenn das Wort Info drin steht, verschiebe den TR dahin, bei Wort Hinweis an eine anderer Stelle usw.
Muss ich den Teil
Code
{   

app.findTextPreferences = app.changeTextPreferences = NothingEnum.NOTHING;
app.findTextPreferences.findWhat = "Info";

var _findInfo = _tfInfo.findText();

for (var n = _findInfo.length-1 ; n >=0 ; n--) {
var _findTR = _findInfo[n];
var _ObjektFormat = _findTR.parentTextFrames[0];
_ObjektFormat.appliedObjectStyle = _dok.objectStyles.itemByName ("Infobox");


}


in der kompletten Form 12 mal anlegen oder kann man das Verkürzen?


als Antwort auf: [#565741]

Textrahmen und Inhalt finden

Uwe Laubender
Beiträge gesamt: 5316

23. Aug 2018, 17:00
Beitrag # 4 von 9
Beitrag ID: #565755
Bewertung:
(2516 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,
wenn Du 12 verschiedene Objektformate je nach Fall zuweisen möchtest, dann ja.


als Antwort auf: [#565750]

Textrahmen und Inhalt finden

MarioF
Beiträge gesamt: 390

23. Aug 2018, 17:19
Beitrag # 5 von 9
Beitrag ID: #565757
Bewertung:
(2509 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,
ich habe jetzt diese Version, die soweit funktioniert.
Code
var _dok = app.activeDocument; 
var _alleSeiten = _dok.pages;


for (var i = 0; i < _alleSeiten.length; i++) {
var _seite = _alleSeiten[i];
var _tfInfo = _seite.textFrames.itemByName("tf_info");
if (_tfInfo.isValid == true) {
{
app.findTextPreferences = app.changeTextPreferences = NothingEnum.NOTHING;
app.findTextPreferences.findWhat = "Info";
var _findInfo = _tfInfo.findText();
for (var n = _findInfo.length-1 ; n >=0 ; n--) {
var _findTR = _findInfo[n];
var _ObjektFormat = _findTR.parentTextFrames[0];
_ObjektFormat.appliedObjectStyle = _dok.objectStyles.itemByName ("Infobox");
}

{
app.findTextPreferences = app.changeTextPreferences = NothingEnum.NOTHING;
app.findTextPreferences.findWhat = "Hinweis";
var _findInfo = _tfInfo.findText();
for (var a = _findInfo.length-1 ; a >=0 ; a--) {
var _findTR = _findInfo[a];
var _ObjektFormat = _findTR.parentTextFrames[0];
_ObjektFormat.appliedObjectStyle = _dok.objectStyles.itemByName ("Hinweis");
}


}
}
}
}

Es findet aber nur einen Textrahmen mit der Bezeichnung tf_info und ändert nur den zuletzt angelegten Textrahmen.


als Antwort auf: [#565755]

Textrahmen und Inhalt finden

MarioF
Beiträge gesamt: 390

23. Aug 2018, 22:44
Beitrag # 6 von 9
Beitrag ID: #565767
Bewertung:
(2482 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich muss da noch einmal nachfragen:
Code
var _dok = app.activeDocument; 
var _alleSeiten = _dok.pages;

for (var i = 0; i < _alleSeiten.length; i++) {
var _seite = _alleSeiten[i];
var _tfInfo = _seite.textFrames.itemByName("tf_info");
if (_tfInfo.isValid == true) {

{
app.findTextPreferences = app.changeTextPreferences = NothingEnum.NOTHING;
app.findTextPreferences.findWhat = "Hinweis";
var _findInfo = _tfInfo.findText();
for (var n = _findInfo.length-1 ; n >=0 ; n--) {
var _findTR = _findInfo[n];
var _ObjektFormat = _findTR.parentTextFrames[0];
_ObjektFormat.move(undefined, [0, 35]);
_dok.pages.item(0).appliedMaster = _dok.masterSpreads.item("B-Musterseite");
}

Im letzten Schritt soll die Seite mit dem gefundenen Textrahmen eine entsprechende Musterseite zugeordnet werden.
Ich komme mit
Code
dok.pages.item(0).appliedMaster 

Ich muss ja die Seite ansprechen, auf den der TR ist. Wie komme ich die Seite in eine Variable?


als Antwort auf: [#565757]

Textrahmen und Inhalt finden

Uwe Laubender
Beiträge gesamt: 5316

24. Aug 2018, 10:34
Beitrag # 7 von 9
Beitrag ID: #565771
Bewertung:
(2446 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,
falls der Textrahmen auf einer Seite liegt und nicht draußen auf dem Pasteboard, enthält die Variable parentPage des Textrahmens die Seite. Im anderen Fall ist der Wert null.


als Antwort auf: [#565767]

Textrahmen und Inhalt finden

MarioF
Beiträge gesamt: 390

22. Sep 2018, 14:25
Beitrag # 8 von 9
Beitrag ID: #566446
Bewertung:
(2214 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,
kannst Du mir das mal genauer erklären?


als Antwort auf: [#565771]

Textrahmen und Inhalt finden

MarioF
Beiträge gesamt: 390

22. Sep 2018, 20:08
Beitrag # 9 von 9
Beitrag ID: #566451
Bewertung:
(2191 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
jetzt habe ich es...

Statt
Code
dok.pages.item(0).appliedMaster = _dok.masterSpreads.item("B-Musterseite"); 



so

Code
 _ObjektFormat.parentPage.appliedMaster = _dok.masterSpreads.item("B-Musterseite"); 



als Antwort auf: [#566446]
X