wenn auf der Benutzeroberfläche ein Hyperlink gelöscht wird, dann wird dieser in Text umgewandelt. Ein Dialog weist ausdrücklich darauf hin.
Wenn hingegen per Skript ein Querverweis mit dem remove()-Befehl gelöscht wird, bleibt von ihm nichts mehr übrig.
Ferner ist es auf der Benutzeroberfläche möglich, auf einen ausgewählten Querverweis über das Kontextmenü oder über /Schrift/Textvariablen/Variablen in Text konvertieren den entsprechenden Befehl (Variable in Text konvertieren) anzuwenden. Die Quelle des Hyperlinks wird zu einer Art Twitter: Sie ist nun einerseits Text (wird anders als ein Querverweis bei einer Suche nach den entsprechenden Zeichen per Textsuche oder GREP-Suche gefunden). Auf der anderen Seite ist sie noch ein bißchen Querverweis. D.h. sie wird in der Querverweispalette noch angezeigt und per Skript kann diese Stelle als Querverweisquelle angesprochen werden.
Wird so ein Querverweis – halb Text, halb Querverweis – aktualisiert, verschwindet seine Text-Eigenschaft wieder; er ist wieder ganz und gar Querverweis.
Wende ich auf einen Querverweis, der mit dem Befehl 'Variable in Text konvertieren' behandelt worden ist, den remove()-Befehl an, dann bleibt richtiger Text übrig.
Ich hätte es gerne etwas einfacher, ohne die Benutzeroberfläche zu bemühen: Gibt es eine Möglichkeit, einen Querverweis per Skript in Text umzuwandeln?
Mein Kontext: Bekanntlich ist es nicht ohne Weiteres möglich, innerhalb einer Tabelle, die über mehrere verkettete Textrahmen über mehrere Seiten umbricht, festzustellen, auf welcher Seite sich Text bzw. eine bestimmte Zelle befindet.
Es ist möglich, die Seite über einen Umweg herauszubekommen: verankere einen Textrahmen innerhalb der Zelle, deren Seitenposition ermittelt werden soll, löse diese Verankerung und ermittle die Seite, auf welcher sich der Textrahmen befindet (siehe auch Seitenzahl für Tabellenzelleninhalt ermitteln ).
Eine weitere Möglichkeit wäre, innerhalb einer Zelle einen Querverweis eines Einfügepunkts auf sich selbst erstellen mit der Seitenzahl <pageNum /> als Querverweisformat. Wenn es nun möglich wäre, diesen Querverweis per Skript in Text umzuwandeln und den konvertierten Text auszuwerten, dann könnte man darüber die entsprechende Seitenzahl ermitteln.
Nun ist mir doch noch eine Idee gekommen, die zu funktionieren scheint. Man darf nicht den Hyperlink löschen, sondern muss seine Quelle per remove()-Befehl beseitigen. Dann bleibt Text übrig.
Nun braucht man nur noch diesen Text auswerten und danach zu löschen und schon hat man damit die gewünschte Seitenzahl.
Viele Grüße Martin
(Dieser Beitrag wurde von Martin Fischer am 31. Jan 2012, 17:57 geändert)
Das Ergebnis entspricht dem, was ich auf der Benutzeroberfläche (UI) entdeckt habe (s.o.): ein Querverweis lässt sich in Text konvertieren. Nach der Konvertierung funktioniert er einerseits als Text (läßt sich editieren, formatieren und suchen) und er bleibt andererseits auch Querverweis (lässt sich als solcher aktualisieren und ist danach nicht mehr als Text editierbar). Was ist das für ein seltsames Objekt?
Aber Dein Hinweis hat mich noch auf zwei weitere Lösungen gebracht. convertToText() gibt ein Text-Objekt zurück, dessen Inhalt (contents) ermittelt werden kann; in dem hier diskutierten Fall also der Name der Seite, auf der sich die Tabellenzelle befindet.
Um dieses Ergebnis zu erhalten, ist es aber gar nicht notwendig, den Querverweis in Text zu konvertieren. Die Property resultText liefert das gewünschte Ergebnis.
Danke, Dein Hinweis hat mir sehr geholfen.
(Peter, verstehst Du meine Antwort oder soll ich sie Dir per email in englischer Übersetzung zukommen lassen?)
Viele Grüße Martin
(Dieser Beitrag wurde von Martin Fischer am 31. Jan 2012, 23:55 geändert)
wir setzen folgendes Skript ein, welches wir aus dem Forum haben, um die Querverweise aufzulösen:
try{ for(var i = 0; i < app.documents.length; i++){ app.activeDocument.stories.everyItem().textVariableInstances.everyItem().convertToText();} }catch(e){alert("Da ist wohl was schief gelaufen!r" + e);};
D.h. hiermit wird der Text des Ziels bei der Quelle eingesetzt und der Hyperlink entfernt. Allerdings funktioniert das nur bei gewöhnlichen Textrahmen und nicht innerhalb einer Tabellenzelle. Wie müsste das Skript aussehen, wenn auch innerhalb der Tabellenzelle der Hyperlink aufgelöst werden soll? Optimalerweise sollte das Skript das gesamte Dokument durchlaufen ohne dass einzelne Rahmen angewählt werden müssen.
Hallo, Hans-Gerd! Ich hab's auch nicht getestet, aber fehlen bei Dir im Code nicht noch die gesammelten Zellen aller Tabellen?
Die eigentliche Frage lautet: schließt die Collection der "Table.textVariableInstances" auch diejenige aller Zellen mit ein? Falls ja und ich gehe mal davon aus, vergiß den Code-Schnipsel hier:
ABER: es werden auf jeden Fall Tabellen ausgelassen, die in Tabellen verschachtelt sind!
Hm, da das Elternobjekt von "textVariableInstances" u.a. auch "Footnote" und "Note" sein kann, müssen wahrscheinlich noch mehr Fälle abgegrast werden. ***** Mit herzlichem Gruß, Uwe Laubender
Hallo zusammen, vielen Dank für die Antworten und sorry, dass ich mich jetzt erst wieder darauf melde. Früher war es leider nicht möglich. Wir haben zwischenzeitlich die Lösung für unser Problem. Die Lösung sieht wie folgt aus:
Vielleicht kann es ja irgendwann jemand gebrauchen...
bin auf der Suche nach Skripten, die Querverweise bearbeiten, auf diesen Thread gestoßen. Ist es denkbar, aus diesen Ansätzen hier und dem weiter oben genannten Thema "Seitenzahl für Tabellenzelleninhalt ermitteln" eine Lösung für meine Frage http://www.hilfdirselbst.ch/...Tabelle_P532963.html zu finden? Kurzfassung: QV auf Zellen einer doppelseitigen Tabelle haben immer nur die Seitenzahl des Textrahmenmittelpunktes, lässt sich das per Script für die Tabellenzellen korrigieren, auf der anderen Seite liegen?