[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Ausgewählten Text googeln

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

Ausgewählten Text googeln

Martin Fischer
  
Beiträge gesamt: 11878

26. Okt 2010, 16:24
Beitrag # 1 von 33
Bewertung:
(7562 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vor ein paar Tagen wandte sich ein Freund mit folgendem Anliegen an mich:

Zitat Ist es mit einem Skript möglich, einen in Indesign aktivierten Text an eine Google-Suche zu übergeben, also den Standardbowser aufzurufen und eine Suche zu starten? Wir müssen nämlich des öfteren Namen in Büchern googeln, ob sie richtig geschrieben sind, und da wäre es schön, nicht immer manuell Aktivieren > Copy > Browser > Paste > Enter zu machen. So ein Skript auf der rechten Maustaste wäre schon prima: Aktivieren des Textes > rechte Maustaste > Skript "Google" aufrufen.


Spontan dachte ich, das ist mit JavaScript nicht möglich.
Dafür braucht's wg. einer programmübergreifenden Aktion AppleScript bzw. VBA.

Doch dann kam mir die Idee, es mit einem temporären Hyperlink zu versuchen.
Und mit der folgenden Skizze klappte es im Prinzip auch auf Knopfdruck (also manueller Start aus der Skriptpalette oder über Tastaturbefehl:

Code
//googleSelection.jsx 
//DESCRIPTION:Recherchiert den ausgewählten Text in Google
//Autor: Martin Fischer
//Datum: Oktober 2010

if (app.selection.length > 0 && app.selection[0].hasOwnProperty ('baseline') && app.selection[0].characters.length > 0)
{
// Hyperlink-String aus Auswahl ermitteln
var _sel = app.selection[0];
var _str = 'http://www.google.de/search?q=\"' + _sel.contents + '\"&ie=UTF-8&oe=UTF-8';

// Hyperlink vorbereiten und anlegen
try
{
var _source = app.documents.firstItem().hyperlinkTextSources.add({sourceText: _sel});
}
catch(e)
{
alert ('Aktive Hyperlinkquelle ausgewählt.');
exit();
}
var _dest = app.documents.firstItem().hyperlinkURLDestinations.add({destinationURL:_str});
var _hyper = app.documents.firstItem().hyperlinks.add({destination:_dest,source: _source})

// Hyperlink anzeigen
_hyper.showDestination ();

// aufräumen
_hyper.remove();
_dest.remove();
_source.remove();
}




Hier die Version für's Kontextmenü (am besten im Startup Skript-Ordner ablegen):

Code
// googleSelection_context.jsx 
//DESCRIPTION:Recherchiert den ausgewählten Text in Google über das Kontextmenü (rechte Maustaste)
//Autor: Martin Fischer
//Datum: Oktober 2010

#targetengine "session"
google_menu();

function google_menu(){
var _text_context_menu = app.menus.item("$ID/RtMouseText");

var g_action = null;
g_action = app.scriptMenuActions.item("Auswahl googeln");
if (g_action == null)
g_action = app.scriptMenuActions.add("Auswahl googeln");

var _event_listener = g_action.eventListeners.add("onInvoke", google_text, false);
var _sep = _text_context_menu.menuSeparators.add();
var _google_menu_item = _text_context_menu.menuItems.add(g_action);

function google_text(myEvent)
{
if (app.selection[0].characters.length > 0)
{
// Hyperlink-String aus Auswahl ermitteln
var _sel = app.selection[0];
var _str = 'http://www.google.de/search?q=\"' + _sel.contents + '\"&ie=UTF-8&oe=UTF-8';

// Hyperlink vorbereiten und anlegen
try
{
var _source = app.documents.firstItem().hyperlinkTextSources.add({sourceText: _sel});
}
catch(e)
{
alert ('Aktive Hyperlinkquelle ausgewählt.');
exit();
}
var _dest = app.documents.firstItem().hyperlinkURLDestinations.add({destinationURL:_str});
var _hyper = app.documents.firstItem().hyperlinks.add({destination:_dest,source: _source})

// Hyperlink anzeigen
_hyper.showDestination ();

// aufräumen
_hyper.remove();
_dest.remove();
_source.remove();
}
else
{
alert ('Kein Text ausgewählt.');
}
}
}



Im Moment knabbere ich noch an zwei Problemen:
1. Wie gehe ich mit der Möglichkeit um, daß im ausgewählten Text bereits ein Hyperlink stecken kann und ihm deswegen nicht nochmals ein temporärer Hyperlink zugewiesen werden kann?

2. Wie gehe ich mit Sonderzeichen um, die als eingeklammerter Unicodewert übergeben werden? Z.B. 'Naz<014D>raîos' – das '<014D>' steht für ein 'o' mit Macron (Balken drüber).


Zu 1. gäbe es die Möglichkeit, im gegebenen Fall den Textinhalt (ohne Hyperlink) in einen temporären Textrahmen zu platzieren und dort die weiteren Operationen für einen temporären Hyperlink zu erledigen, so dass das Original unangetastet bleibt.

Zu 2. könnte ich mir vorstellen, dass man die Sonderzeichen irgendwie greifen kann (Ziffer in spitzen Klammern herausfiltern und durch Irgendwas kodieren). Aber was wäre das Schema für dieses Irgendwas?


Ferner hatte ich noch an einem Schönheitsfehler geknabbert:
Durch diesen temporären Hyperlink, der am Ende wieder gelöscht ist, bekommt das möglicherweise zuvor frisch gesicherte Dokument doch den Geändert-Status. Wie könnte man dem vorbeugen? Statt der remove()-Befehle undo()-Befehle verwenden. Aber das war mir zu unspezifisch und deswegen risikobehaftet.


Inzwischen habe ich an dem Kontextskript in der obigen Form selbst Gefallen gefunden.
Damit schlage ich gerne mal einen Namen oder bibliographische Angaben nach, die mir etwas unklar bzw. schlecht leserlich zur Korrektur/Ergänzung angewiesen werden.

Viele Grüße
Martin

(Dieser Beitrag wurde von Martin Fischer am 27. Okt 2010, 08:27 geändert)
X

Ausgewählten Text googeln

SamiSalami
Beiträge gesamt: 66

26. Okt 2010, 17:34
Beitrag # 2 von 33
Beitrag ID: #455227
Bewertung:
(7537 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich glaube du meinst das mit Irgendwas:
http://www.wissenonline.org/html/url-kodierung.html

Ein wenig friemelig natürlich dass du dich hier mit jedem möglichen Zeichen auseinandersetzen musst;
Du kannst natürlich nen regulären Audruck rüberlaufen lassen und somit schonmal einige ungewolte Zeichen von vornherein ausschließen, wenn du die anderen dann kodieren willst, kommst du um die "jedes-Zeichen-einzeln" - Friemelei nicht herum.

Hoffe das mit der URL-Kodierung hilft dir schonmal :-)
Dazu findest du auch etliche Skripte im Netz!


als Antwort auf: [#455213]

Ausgewählten Text googeln

Martin Fischer
  
Beiträge gesamt: 11878

26. Okt 2010, 18:13
Beitrag # 3 von 33
Beitrag ID: #455236
Bewertung:
(7528 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke, das geht in die richtige Richtung.

Nein, ich möchte nicht jedes einzelne Zeichen auseinandernehmen.

Im Hyperlink von InDesign ist das Unicode-Zeichen noch korrekt vorhanden.
Die Codierung in einen Hexadezimal-Wert in spitzen Klammern ereignet sich bei der Übergabe an den Browser. Es ist deshalb nicht möglich, im URL-String selbst über einen regulären Ausdruck die Ziffern, die von spitzen Klammern umgeben sind, zu ermitteln und umzucodieren.

Es muss eine Regel geben (eventuell einen Unicode-Range außerhalb eines bestimmten Ranges) wie die Zeichen, die bei der Übergabe als Hexadecimal-Werte übergeben werden zu greifen sind. Und diese Zeichen könnten entsprechend umcodiert werden.

Vielleicht versuch ich's mal mit den Zeichen jenseits des Latin-1 Codebereichs.

Die Tabelle mit Maskierungen von Sonderzeichen in Dezimal und Hexadezimal könnte mir noch weiter helfen.
Demnach lässt sich ein Unicodezeichen mit bekanntem hexadezimalem Unicodewert einfach durch Voranstellung von &#x und Beendigung durch das Semikolon adressieren.

----
edit:
Nur zu dumm, dass das Phis # selbst in %23 kodiert wird, um sich damit außer Kraft zu setzen. :-(

Viele Grüße
Martin


als Antwort auf: [#455227]
(Dieser Beitrag wurde von Martin Fischer am 26. Okt 2010, 18:27 geändert)

Ausgewählten Text googeln

Martin Fischer
  
Beiträge gesamt: 11878

26. Okt 2010, 18:56
Beitrag # 4 von 33
Beitrag ID: #455242
Bewertung:
(7512 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hab mal versucht, das Pferd von hinten aufzuzäumen.

Für die Suche nach 'Nazoraîos' (statt 'o' das 'o' mit Macron) – mit Treffern – verwendet Google einen Search-String, den ich hier leider nicht kopierbar darstellen kann (weder als URL noch als CODE), und den ich auch nicht über die Anleitung in Google SOAP Search API richtig analysiert bekomme. :-(

Ich breche an dieser Stelle ab.
Es genügt, wenn das Skript manchmal und in einfacheren Fällen weiterhilft. ;-)

Viele Grüße
Martin


als Antwort auf: [#455236]
(Dieser Beitrag wurde von Martin Fischer am 26. Okt 2010, 19:00 geändert)

Ausgewählten Text googeln

kkauer
Beiträge gesamt: 661

26. Okt 2010, 19:33
Beitrag # 5 von 33
Beitrag ID: #455244
Bewertung:
(7488 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Martin Fischer ] Ich breche an dieser Stelle ab.
Es genügt, wenn das Skript manchmal und in einfacheren Fällen weiterhilft. ;-)


Für die komplizierteren Fälle steht für Mac-User als Plan B (kein Tastaturkürzel, kein Kontextmenüeintrag) ja noch der Eintrag im Dienste-Menü zur Verfügung ;-)


als Antwort auf: [#455242]

Ausgewählten Text googeln

SamiSalami
Beiträge gesamt: 66

26. Okt 2010, 19:39
Beitrag # 6 von 33
Beitrag ID: #455245
Bewertung:
(7486 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Leider kenn ich _noch_ nicht wirklich mit der Google-Engine aus (das werd ich vllt nochmal nachholen). Aber wenn ich das richtig sehe nimmt Google Phrasen mit allen Zeichen, wenn du also den String mit Anführungszeichen übergibst könnte das tatsächlich was verändern... womöglich ist dann die komplette Umkodierung gar nicht nötig (oder habe ich hier den Grund missverstanden?).

Was mir noch aufgefallen ist, dass man bei deiner jetzigen Prüfung auch Bilder selektieren könnte, da diese auch ein Objekt von Character sein können - hierfür würde ich einfach ein weiteres try catch drum herum legen, da es mit einer Grafik eh bei "contents" knallen wird.

Aber ich finde es so schon definitv ein sehr nettes Tool :-)


als Antwort auf: [#455242]

Ausgewählten Text googeln

Martin Fischer
  
Beiträge gesamt: 11878

26. Okt 2010, 19:52
Beitrag # 7 von 33
Beitrag ID: #455246
Bewertung:
(7481 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Für die komplizierteren Fälle steht für Mac-User als Plan B (kein Tastaturkürzel, kein Kontextmenüeintrag) ja noch der Eintrag im Dienste-Menü zur Verfügung ;-)


Ah ...
Ich ahnte doch, dass die Dienste mal für was gut sein würden. ;-)
Dem 'Mit Google suchen' kann man zwar auch eine systemweite Kurztaste zugewiesen. Allerdings komme ich aus InDesign an diesen Befehl per Taste nicht ran. Aber es funktioniert immerhin über's Menü - auch mit Sonderzeichen und sogar der richtigen Schreibrichtung.

Danke für den Hinweis.

Die Anfrage nach der Google-Recherche von ausgewähltem Text in InDesign kam von einem Windows-Anwender.

Viele Grüße
Martin


als Antwort auf: [#455244]
(Dieser Beitrag wurde von Martin Fischer am 26. Okt 2010, 20:03 geändert)

Ausgewählten Text googeln

Martin Fischer
  
Beiträge gesamt: 11878

26. Okt 2010, 19:54
Beitrag # 8 von 33
Beitrag ID: #455247
Bewertung:
(7481 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Was mir noch aufgefallen ist, dass man bei deiner jetzigen Prüfung auch Bilder selektieren könnte, da diese auch ein Objekt von Character sein können - hierfür würde ich einfach ein weiteres try catch drum herum legen, da es mit einer Grafik eh bei "contents" knallen wird.


Manche Skripte setzen eben ein Minimum an Intelligenz vor dem Bildschirm voraus. ;-)
Im Ernst, das könnte man ohne try-catch noch über eine Ermittlung der Zahl der PageItems im Search-String auffangen. Aber das gehört schon zur Kür.

Viele Grüße
Martin


als Antwort auf: [#455245]
(Dieser Beitrag wurde von Martin Fischer am 26. Okt 2010, 19:56 geändert)

Ausgewählten Text googeln

SamiSalami
Beiträge gesamt: 66

26. Okt 2010, 20:21
Beitrag # 9 von 33
Beitrag ID: #455250
Bewertung:
(7452 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Martin Fischer ]
Antwort auf: Was mir noch aufgefallen ist, dass man bei deiner jetzigen Prüfung auch Bilder selektieren könnte, da diese auch ein Objekt von Character sein können - hierfür würde ich einfach ein weiteres try catch drum herum legen, da es mit einer Grafik eh bei "contents" knallen wird.


Manche Skripte setzen eben ein Minimum an Intelligenz vor dem Bildschirm voraus. ;-)
Im Ernst, das könnte man ohne try-catch noch über eine Ermittlung der Zahl der PageItems im Search-String auffangen. Aber das gehört schon zur Kür.


Deswegen wollte ich es ja mit einem try-catch simpel halt ;-P


als Antwort auf: [#455247]

Ausgewählten Text googeln

WernerPerplies
Beiträge gesamt: 2224

26. Okt 2010, 20:30
Beitrag # 10 von 33
Beitrag ID: #455252
Bewertung:
(7449 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

Zitat Die Anfrage nach der Google-Recherche von ausgewähltem Text in InDesign kam von einem Windows-Anwender.


Dann sollte es es auch realisierbar sein, ich würde es dann aber mit einem Windowsprogramm realisieren.

Aber ob es den Aufwand lohnt?

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#455246]

Ausgewählten Text googeln

kkauer
Beiträge gesamt: 661

26. Okt 2010, 20:53
Beitrag # 11 von 33
Beitrag ID: #455258
Bewertung:
(7435 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ WernerPerplies ] Aber ob es den Aufwand lohnt?

Eher nicht, denn die Idee ist ja nicht wirklich speziell und entsprechende Lösungen gibt es bestimmt schon …


als Antwort auf: [#455252]

Ausgewählten Text googeln

WernerPerplies
Beiträge gesamt: 2224

26. Okt 2010, 21:01
Beitrag # 12 von 33
Beitrag ID: #455260
Bewertung:
(7418 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ja, dann müsste man sie nur finden. ;-)

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#455258]

Ausgewählten Text googeln

kkauer
Beiträge gesamt: 661

26. Okt 2010, 21:53
Beitrag # 13 von 33
Beitrag ID: #455278
Bewertung:
(7391 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ WernerPerplies ] Ja, dann müsste man sie nur finden. ;-)


Na dann bastel halt dein
Zitat Windowsprogramm



als Antwort auf: [#455260]
(Dieser Beitrag wurde von kkauer am 26. Okt 2010, 21:54 geändert)

Ausgewählten Text googeln

WernerPerplies
Beiträge gesamt: 2224

27. Okt 2010, 07:33
Beitrag # 14 von 33
Beitrag ID: #455293
Bewertung:
(7351 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Martin,

ich bin nicht ganz sicher, vielleicht war es ja gestern schon etwas spät, aber gab es da nicht einen weiteren Beitrag von Dir?

Sei's drum:

Wie wäre es mit folgender Lösung:

1. Du schreibst ein Skript, das den selektieren Text in eine Datei schreibt.
Diese Datei legst Du in ein festgelegtes, leeres Verzeichnis ab.

Von mir erhältst Du ein Windows-Programm, das folgendes kann:

1. sucht einen Begriff bei Google, der per Drag an Drop auf die Menueleiste meines Programmes gezogen wird.

2. sucht einen Begriff aus einer Datei, die in eine festgelegtes Verzeichnis abgelegt wurde. Das Programm löscht diese Datei automatisch nach Ausführung.

Schicke mir, wenn Du interessiert bist, eine Datei mit einem beliebigen Suchbegriff, damit ich die Codierung testen kann.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#455246]

Ausgewählten Text googeln

Martin Fischer
  
Beiträge gesamt: 11878

27. Okt 2010, 08:26
Beitrag # 15 von 33
Beitrag ID: #455295
Bewertung:
(7337 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Werner,

Zitat ich bin nicht ganz sicher, vielleicht war es ja gestern schon etwas spät, aber gab es da nicht einen weiteren Beitrag von Dir?


Es hat mich in den Fingern gejuckt, aber hat es nicht über die Tastatur geschafft. ;-)

Anbei ein Snippet mit diversen Suchbegriffen mit Zeichen jenseits von Latin-1.

Viele Grüße
Martin


als Antwort auf: [#455293]
Anhang:
zum_googeln.idms (37.1 KB)
Hier Klicken X
Hier Klicken

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
25.10.2018

Hamburg
Donnerstag, 25. Okt. 2018, 10.39 Uhr

Seminar

Viele Funktionen, für die früher Illustrator benötigt wurde, finden sich heute auch in InDesign. Angefangen bei den Pfadwerkzeugen, mit denen sich Linien und Bezier-Pfade zeichnen lassen, über die regulären Zeichenwerkzeuge für Rahmen und Linien bis hin zum Pathfinder, der Vektorobjekte zerschneiden, verbinden und kombinieren kann: InDesign bietet eine Vielzahl von Vektorgrafik-Werkzeugen, mit denen sich auch komplexe Vektorgrafiken erstellen lassen.

München, Donnerstag, 25.10.2018, Seminargebühr 415,31 (inkl. 19% MwSt), 9.30 Uhr bis 17.30 Uhr

Ja

Organisator: Cleverprinting

Vektorgrafik mit Adobe InDesign und Illustrator
Veranstaltungen
25.10.2018

Schule für Gestaltung Zürich
Donnerstag, 25. Okt. 2018, 17.00 - 19.30 Uhr

Seminar

Folgenden Fragen gehe ich – gemeinsam mit Ihnen – während des Seminars auf den Grund: – Sind heutige Farbsysteme auf crossmediale Ausgaben ausgerichtet? – Wie definiert man Farben für den Einsatz in Office- und Direktmarketing-Softwaren? – Welche Farb-Definitionen muss ein heutiges, crossmediales Corporate-Design beinhalten? – Braucht es dazu neue Systeme und Workflows? – Existieren Hilfsmittel für den crossmedialen Datenaustausch (freieFarbe)? – Ist CMYK in heutigen digitalen Produktionen noch sinnvoll und von Vorteil? – Was ist qualitativ besser – verfahrensangepasst oder ausgabeneutral?

Donnerstag, 25. Oktober 2018, von 17.00 Uhr bis 19.30 Uhr
mit anschliessendem Apéro

viscom-Mitglied: Kostenlos
Nichtmitglied: CHF 250.00, zuzüglich MwSt.

Ja

Organisator: viscom

http://www.viscom.ch/?name=agenda&veranstaltungid=854&datum=25.10.2018&suche=1

Hier Klicken