[GastForen Programme Print/Bildbearbeitung Adobe InDesign Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

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

Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

Martin Fischer
  
Beiträge gesamt: 12783

29. Jun 2006, 14:26
Beitrag # 16 von 31
Beitrag ID: #236855
Bewertung:
(5098 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Kopieren geht nur über die Zwischenablage.
Verschieben geht über den move-Befehl.

Wenn der gesamte Inhalt des Textrahmens kopiert werden soll, dann kannst Du auch den Textrahmen duplizieren, vom Duplikat den Text verschieben und anschließend den duplizierten Textrahmen wieder löschen.


als Antwort auf: [#236847]
X

Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

crashtron
Beiträge gesamt: 29

29. Jun 2006, 14:44
Beitrag # 17 von 31
Beitrag ID: #236859
Bewertung:
(5097 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Irgendwie bin ich zu blöd dafür

Code
on makeFootnote(myDocument, myInsertion, myText, myparagrahStyleRef) 
with timeout of 600 seconds
tell application "Adobe InDesign CS2"
tell myDocument
tell text frame "Maintextframe"
tell myInsertion
set myDummyframe to make text frame with properties {label:"dummy", contents:myText, paragraph style:myparagrahStyleRef}
end tell
my PlaintextTags2Style(myDocument, myDummyframe)
set myNewfootnote to make new footnote with properties {label:"autofussnote"} at myInsertion
move (contents of myDummyframe) to (contents of last insertion point of myNewfootnote)
end tell
end tell
end tell
end timeout
end makeFootnote


Was ist falsch? Ich bekomme eine Fehlermeldung:
Zitat Adobe InDesign CS2 got an error: Ungültiger Wert für Parameter "to" von Ereignis "move". list of 2 numbers or strings, spread, page or layer erwartet, aber "" erhalten.


Gehts vielleicht über die Zwischenablage? Wenn ja wie?


als Antwort auf: [#236855]

Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

Martin Fischer
  
Beiträge gesamt: 12783

29. Jun 2006, 15:11
Beitrag # 18 von 31
Beitrag ID: #236867
Bewertung:
(5090 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> move (contents of myDummyframe) to (contents of last insertion point of myNewfootnote)

Laß mal "contents" weg, denn contents ist kein Ziel für move.
Der "Insertionpoint" müßte in Ordnung sein.
Möglicherweise reagiert eine Fußnote aber auch allergisch auf den move-Befehl.

> Gehts vielleicht über die Zwischenablage? Wenn ja wie?
In AppleScript?
Lange her, daß ich den Befehl in AS gebraucht habe.

In JS:
1. myObject.select();
2. app.copy();
3. myTarget.select() // wobei myTarget so etwas wie myStory.insertionPoints[-1] sein kann.
4. app.paste();
5. ggf. wieder myObject.select(), um den Cursor wieder an der Ausgangsposition zu platzieren.


als Antwort auf: [#236859]

Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

crashtron
Beiträge gesamt: 29

29. Jun 2006, 15:47
Beitrag # 19 von 31
Beitrag ID: #236876
Bewertung:
(5085 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ok ich hab es fast... nur noch ein Problemchen, Indesign markiert nicht den Text innerhalb des Textframes sonder immer den ganzen Textframe und kopiert diesen auch ganz und setzt diesen dann auch als Textframe in die Fusszeile ein.

Code
on makeFootnote(myDocument, myInsertion, myText, myparagrahStyleRef) 
with timeout of 600 seconds
tell application "Adobe InDesign CS2"
tell myDocument
set myDummyframe to make text frame with properties {label:"dummy", contents:myText, paragraph style:myparagrahStyleRef}
my PlaintextTags2Style(myDocument, myDummyframe)

set myNewfootnote to make new footnote with properties {label:"autofussnote"} at myInsertion

select contents of myDummyframe
tell application "Adobe InDesign CS2"
copy
end tell
select last insertion point of myNewfootnote
tell application "Adobe InDesign CS2"
paste
end tell
end tell
end tell
end timeout
end makeFootnote



als Antwort auf: [#236867]

Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

Martin Fischer
  
Beiträge gesamt: 12783

29. Jun 2006, 16:19
Beitrag # 20 von 31
Beitrag ID: #236890
Bewertung:
(5078 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
>select contents of myDummyframe

Versuchs mal mit "select text of myDummyframe".


als Antwort auf: [#236876]

Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

crashtron
Beiträge gesamt: 29

30. Jun 2006, 09:17
Beitrag # 21 von 31
Beitrag ID: #236965
Bewertung:
(5065 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Geht leider nicht ich bekomm dann beim "copy"-Befehl eine Fehlermeldung, dass das Objekt nur kopiert werden kann. Noch eine Idee?

Wie müsste das denn korrekt mit dem "move"-Befehl gehen?


als Antwort auf: [#236890]

Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

Martin Fischer
  
Beiträge gesamt: 12783

30. Jun 2006, 09:35
Beitrag # 22 von 31
Beitrag ID: #236972
Bewertung:
(5059 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Geht leider nicht ich bekomm dann beim "copy"-Befehl eine Fehlermeldung,
> dass das Objekt nur kopiert werden kann.

Das verstehe ich nicht.
Was hast Du erwartet, was man mit dem copy-Befehl macht oder zusätzlich machen kann?
"Copy" kopiert das ausgewählte Objekt in die Zwischenablage. Nicht mehr und nicht weniger.
Vielleicht solltest Du prüfen, ob tatsächlich das richtige Objekt ausgewählt ist und nicht viel mehr ein "undefined".

Bin heute etwas geizig mit der Zeit und versuche ... - wann?, ja wann? - die nächsten Tage Dein Skript etwas genauer unter die Lupe zu nehmen. Vielleicht kannst Du mir dazu die aktuelle Fassung (darf auch gerne die Fassung von morgen früh sein) an meine email-Adresse zustellen, damit ich mit diesem letzten Stand weiter experimentieren kann.


als Antwort auf: [#236965]

Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

crashtron
Beiträge gesamt: 29

30. Jun 2006, 10:39
Beitrag # 23 von 31
Beitrag ID: #236987
Bewertung:
(5055 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Juhu!!!

Ich danke dir für deine Hilfe!
Es funktioniert jetzt alles.

select text of myDummyframe funktioniert doch, wie du sagtest, allerdings nur dann wenn der Inhalt des Frames auch sichtbar ist auf der Seite in Indesign. In meinem Falle war der DummyTextframe einfach zu klein. Ich hab jetzt die Größe geändert und es funktioniert wie es soll.

Code
on makeFootnote(myDocument, myInsertion, myText, myparagrahStyleRef) 
with timeout of 600 seconds
tell application "Adobe InDesign CS2"
tell myDocument
set myDummyframe to make text frame with properties {label:"dummy", contents:myText, geometric bounds:{0, 0, 200, 200}}
set applied paragraph style of text of myDummyframe to myparagrahStyleRef
my PlaintextTags2Style(myDocument, myDummyframe)
set myNewfootnote to make new footnote with properties {label:"autofussnote"} at myInsertion
select text of myDummyframe
tell application "Adobe InDesign CS2"
copy
end tell
select last insertion point of myNewfootnote
tell application "Adobe InDesign CS2"
paste
end tell
delete myDummyframe
end tell
end tell
end timeout
end makeFootnote



als Antwort auf: [#236972]

Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

smartclip
Beiträge gesamt: 24

10. Mai 2007, 10:06
Beitrag # 24 von 31
Beitrag ID: #290731
Bewertung:
(4898 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo martin,

bin gerade über dein notes2text script gestolpert, da es perfekt mein problem lösen würde ... allerdings bekomme ich es nicht zum laufen. vermute es hängt damit zusammen das ich die constanten am anfang nicht richtig gesetzt habe ... könnte ich dazu noch etwas mehr infos bekommen?

Code
//some global constants   
notecueStyle = 'Fußnotenzeichen' //cues, char. style
notenumStyle = 'Fußnotenzeichen' //note number (in foot- and in endnotes), char. style
noteStyle = 'FN' //for notes, paragraph style
notePar1Style = 'FN' //for first paragraph in note, par. style
sepText = '\u2002' //separator text in notes
noteStart = '\u2704' //codes for notes when
noteEnd = '\u2705' //placed at end of story


danke julia


als Antwort auf: [#236733]

Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

Martin Fischer
  
Beiträge gesamt: 12783

10. Mai 2007, 10:13
Beitrag # 25 von 31
Beitrag ID: #290738
Bewertung:
(4896 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Julia,

hm, die notwendigen Infos sind in dem von Dir zitierten Block eigentlich angegeben.
Namen für Zeichen- und Absatzformate (Fußnotenziffer, Fußnotentext).

Könnte ich von Dir etwas mehr Info zum Problem bekommen?
Etwa die Fehlermeldung?


als Antwort auf: [#290731]

Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

smartclip
Beiträge gesamt: 24

10. Mai 2007, 11:30
Beitrag # 26 von 31
Beitrag ID: #290765
Bewertung:
(4889 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hi martin,

naja es gibt keine fehlermeldung ... es passiert einfach nichts :)

Code
//cues, char. style = im Text, Fußnotenverweis-Nummer Zeichenformat?  
notecueStyle = 'Bold'

//note number (in foot- and in endnotes), char. style = in Fußnote, Verweis-Nummer Zeichenformat? was sind endnotes?
notenumStyle = 'Bold'

//for notes, paragraph style = in Fußnote, ganzer Text Absatzformat?
noteStyle = 'theorie_fussnote'

//for first paragraph in note, par. style = ?
notePar1Style = 'theorie_lesetext'

//separator text in notes = ?
sepText = '\u2002'
//codes for notes when = ?
noteStart = '\u2704'
//placed at end of story = ?
noteEnd = '\u2705'

// = ?
u = undefined


mir ist einfach nicht klar welche formate ich genau wo zuweisen muss damit die logic des script greift. siehe meine kommentare

danke


als Antwort auf: [#290738]

Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

Martin Fischer
  
Beiträge gesamt: 12783

10. Mai 2007, 11:56
Beitrag # 27 von 31
Beitrag ID: #290776
Bewertung:
(4880 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Julia,

es tut mir leid, aber in dem Skript oben war ein Fehler (ist jetzt korrigiert). :-(

Ersetze die Zeile
Code
for (oneStory =1; oneStory < myStories.length; oneStory++) 


durch
Code
for (oneStory = 0; oneStory < myStories.length; oneStory++) 


Das Skript hat in der fehlerhaften Fassung den ersten Textabschnitt bei der Bearbeitung ausgelassen und erst mit dem zweiten (wenn vorhanden) angefangen (JavaScript fängt bei 0 an zu zählen).

Deine Definitionen müßten in Ordnung sein.
Ich kann dort keine Fehler finden.


als Antwort auf: [#290765]

Appleskript zur Suche und Änderung von Wörtern anhand von Haltemarken

smartclip
Beiträge gesamt: 24

10. Mai 2007, 11:57
Beitrag # 28 von 31
Beitrag ID: #290777
Bewertung:
(4877 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
super + danke :)

hab mich noch gewundert, warum da eine 1 steht.
script geht jetzt.

j


als Antwort auf: [#290776]

Fußnoten zu Endnoten und umgekehrt

zenocosini
Beiträge gesamt: 15

5. Dez 2007, 14:50
Beitrag # 29 von 31
Beitrag ID: #325792
Bewertung:
(4780 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Fischer,

folgendes Skript funktionierte prima unter InDesign CS2, unter CS3 bricht es jedoch sofort mit der Fehlermeldung 55 ab, dass das Objekt die Eigenschaft oder Methode "app.findPreferences = app.changePreferences" nicht unterstützt. Gibt es eine Möglichkeit, das Skript entsprechend zu ändern? Oder gibt es vielleicht schon eine Fassung, die unter CS3 läuft? Unter http://www.hilfdirselbst.org/indesign.php bin ich leider nicht fündig geworden.


// footnotes2endnotes.js
for (oneStory = 0; oneStory <app.documents[0].stories.length; oneStory++){
notes2text(app.documents[0].stories[oneStory] )
}

function notes2text( story )
{
app.findPreferences = app.changePreferences = null
var notes = story.search( '^F' )
if( notes.length > 0 )
{
for( var k = 0; k < story.footnotes.length; k++ )
{
story.insertionPoints[-1].contents = '\\r'
story.footnotes[k].characters[0].contents = (k+1)+"";
story.footnotes[k].texts[0].move(
LocationOptions.after, story.insertionPoints[-1] )
}
var notes = story.search( '^F' )
for( var k = notes.length-1; k>=0; k--)
notes[k].contents = (k+1) + "";
}
}

Vielen Dank und herzliche Grüße
Rudi Schmitt


als Antwort auf: [#236733]

Fußnoten zu Endnoten und umgekehrt

Martin Fischer
  
Beiträge gesamt: 12783

5. Dez 2007, 16:20
Beitrag # 30 von 31
Beitrag ID: #325807
Bewertung:
(4747 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Rudi,

in CS3 hat sich die Searchengine geändert.

Damit sollte es gehen:
Code
// footnotes2endnotesCS3.js 

app.findTextPreferences = app.changeTextPreferences = null;
app.findChangeTextOptions.includeFootnotes = false;
app.findTextPreferences.findWhat = '^F';

for (oneStory = 0; oneStory <app.documents[0].stories.length; oneStory++){
notes2text(app.documents[0].stories[oneStory] )
}

function notes2text( story )
{

var notes = story.findText( )
if( notes.length > 0 )
{
for ( var k = 0; k < story.footnotes.length; k++ )
{
story.insertionPoints[-1].contents = '\r'
story.footnotes[k].characters[0].contents = (k+1)+"";
story.footnotes[k].texts[0].move( LocationOptions.after, story.insertionPoints[-1] )
}
var notes = story.findText( );
for ( var k = notes.length-1; k>=0; k--)
notes[k].contents = (k+1) + "";
}
}



als Antwort auf: [#325792]
X