[GastForen Programme Print/Bildbearbeitung Adobe InDesign Indizierung automatisieren

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

Indizierung automatisieren

Doro W.
Beiträge gesamt: 305

24. Mai 2005, 16:03
Beitrag # 1 von 22
Bewertung:
(29506 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo allerseits,
ich will einen Index erstellen zu einem Text, bei dem die aufzunehmenden Begriffe sämtlichst mit Zeichenformat formatiert sind. Kann man das irgendwie automatisieren? Der gute alte Pagemaker konnte das (auch wenn er keine zuverlässigen Indizes erstellen kann ....).
Für einen anderen Index habe ich eine Themenliste in Word, kann ich die automatisch als Themenliste in ID importieren?
Danke und Grüße
Doro
X

Indizierung automatisieren

Martin Fischer
  
Beiträge gesamt: 12783

29. Mai 2005, 23:43
Beitrag # 2 von 22
Beitrag ID: #168388
Bewertung:
(29466 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Doro,

vielleicht findest Du hier ein Skript, das Dir bei der Automatisierung der Indexerstellung weiterhilft:

http://csscripting.berlios.de/

Index from character style
Creates an index based on keywords in the specified character style.

Index from list
Creates an index from a text-file list by searching in the document for the specified keywords. The text file has one keyword per line, if a line contains two tabseparated keywords, the first is used for searching and the second for indexing.

Grüßle
Martin


als Antwort auf: [#167536]

Indizierung automatisieren

rohrfrei
Beiträge gesamt: 4492

2. Dez 2005, 15:34
Beitrag # 3 von 22
Beitrag ID: #198949
Bewertung:
(29376 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

kann es sein, daß der Link mittlerweile tot ist? Kennt jemand eine neue URL ?

Gruß


als Antwort auf: [#168388]

Indizierung automatisieren

Martin Fischer
  
Beiträge gesamt: 12783

2. Dez 2005, 15:43
Beitrag # 4 von 22
Beitrag ID: #198952
Bewertung:
(29372 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Der Link scheint tot zu sein.
Eine neue URL kenne ich nicht.
Aber sag mal, was suchst Du?


als Antwort auf: [#198949]

Indizierung automatisieren

rohrfrei
Beiträge gesamt: 4492

5. Dez 2005, 15:43
Beitrag # 5 von 22
Beitrag ID: #199215
Bewertung:
(29325 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich würde die Scripte einfach mal gerne ausprobieren. Ich lese hier jetzt schon seit zwei Tagen kreuz und quer wegen Infos zur Index-Erstellung. So richtig das wahre habe ich aber für meinen Fall noch nicht gefunden, daher will ich gerne mal über den Tellerrand hinaussschauen.

Per Google gibt es diese Scripte nicht mehr zum Download. Auf einer japanischen Site steht etwas davon in ASCII, aber teilweise mit japanischen Sonderzeichen drin, das wird wohl nicht funzen.

Wenn jemand diese Scripte noch auf der Platte hat, wäre es nett, wenn er sich mal meldet. Danke.

Gruß.


als Antwort auf: [#198952]

Indizierung automatisieren

Martin Fischer
  
Beiträge gesamt: 12783

5. Dez 2005, 16:07
Beitrag # 6 von 22
Beitrag ID: #199225
Bewertung:
(29316 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Rohrfrei,

hier IndexFromCharacterStyle.js (für InDesign CS, könne auch mit CS2 funktionieren):

Code
/* 
Index from character style

Creates an index based on keywords in the specified character style.

(c) 2005 PM. All rights reserved.
This script is licensed under the Artistic License,
see http://csscripting.berlios.de/license/ for details.

Version: 0.0.1
Date: 2005-03-07

More scripts are available at http://csscripting.berlios.de/
*/


var d = app.dialogs.add( {name: "Index from character style", canCancel: true} );
var deleteOldCB, swapCB, charStyleDD;

var doc = app.activeDocument;
var idx = doc.indexes.length ? doc.indexes.item(0) : undefined;

with ( d.dialogColumns.add() )
{

with ( dialogRows.add() )
{
dialogColumns.add().staticTexts.add( {staticLabel: 'Create index from character style'} );
charStyleDD = dialogColumns.add().dropdowns.add( {minWidth: 300, stringList: app.activeDocument.characterStyles.everyItem().name.slice(1), selectedIndex: 0} );
}

deleteOldCB = dialogRows.add().checkboxControls.add( {checkedState: false, staticLabel: "Delete old index and topics"} );
swapCB = dialogRows.add().checkboxControls.add( {checkedState: false, staticLabel: "Ab Cd ... --> Cd ..., Ab"} );
}

if ( !app.documents.length || !d.show() )
{
d.destroy();
exit();
}


var charStyleIndex = charStyleDD.selectedIndex + 1;
var deleteOld = deleteOldCB.checkedState;
var swap = swapCB.checkedState;

d.destroy();


if ( deleteOld && idx && idx.topics.length > 0 )
idx.topics.everyItem().remove();

if ( !idx )
idx = doc.indexes.add();

app.findPreferences = app.changePreferences = undefined;

for ( var i = 0; i < doc.stories.length; i++ )
{
// Step 1: find ranges of the character style. search() for {appliedCharacterStyle: ...} would
// be alot easier, but it's far too slow to resolve the returned matches.
var tsr = doc.stories.item(i).textStyleRanges;
if ( tsr.length < 1 )
continue;
var acs = [].concat( tsr.everyItem().appliedCharacterStyle );
var matches = new Array();
var j = 0;
for ( ; j < tsr.length; j++ )
if ( acs[j].index == charStyleIndex )
for ( matches.push( [tsr[j].index, tsr[j].length] ), j++; j < tsr.length && acs[j].index == charStyleIndex; j++ )
matches[matches.length - 1][1] += tsr[j].length;

var text = doc.stories.item(i).contents;
for ( var j = 0; j < matches.length; j++ )
{
var entry = text.substr( matches[j][0], matches[j][1] );
var topic = idx.topics.add(swap ? entry.replace( /(\S+)\s+(\S.*)/, '$2, $1' ) : entry )

topic.pageReferences.add( doc.stories.item(i), matches[j][0] + j, PageReferenceType.currentPage );
}
}
idx.update();



als Antwort auf: [#199215]

Indizierung automatisieren

Martin Fischer
  
Beiträge gesamt: 12783

5. Dez 2005, 16:10
Beitrag # 7 von 22
Beitrag ID: #199226
Bewertung:
(29311 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Und hier IndexFromList.js für InDesign CS:

Code
/* 
Index from list

Creates an index from a text-file list by searching in the document for the
specified keywords. The text file has one keyword per line, if a line
contains two tabseparated keywords, the first is used for searching
and the second for indexing.

(c) 2005 PM. All rights reserved.
This script is licensed under the Artistic License,
see http://csscripting.berlios.de/license/ for details.

Version: 0.0.1
Date: 2005-03-07

More scripts are available at http://csscripting.berlios.de/
*/

var d = app.dialogs.add( {name: "Index from list", canCancel: true} );
var addEntriesEG, deleteOldCB, swapCB, replaceCharStyleEG, charStyleDD, caseSensitiveCB, wholeWordCB;

var doc = app.activeDocument;
var idx = doc.indexes.length ? doc.indexes.item(0) : undefined;

with ( d.dialogColumns.add() )
{
with ( addEntriesEG = dialogRows.add().enablingGroups.add( {staticLabel: "Add entries to index", checkedState: true} ).dialogColumns.add() )
{
deleteOldCB = dialogRows.add().checkboxControls.add( {checkedState: false, staticLabel: "Delete old index and topics"} );
swapCB = dialogRows.add().checkboxControls.add( {checkedState: false, staticLabel: "Ab Cd ... --> Cd ..., Ab"} );
}

with ( replaceCharStyleEG = dialogRows.add().enablingGroups.add( {staticLabel: "Apply character style to entries", checkedState: false} ) )
charStyleDD = dropdowns.add( {minWidth: 300, stringList: [].concat(app.activeDocument.characterStyles.everyItem().name), selectedIndex: 0} );

/*
with ( dialogRows.add().borderPanels.add() )
{
dialogColumns.add().staticTexts.add( {staticLabel: "Search preferences"} );
with ( dialogColumns.add() )
{
caseSensitiveCB = checkboxControls.add( {checkedState: false, staticLabel: "Case sensitive"} );
//wholeWordCB = checkboxControls.add( {checkedState: false, staticLabel: "Match whole words only"} );
}
}
*/
caseSensitiveCB = dialogRows.add().checkboxControls.add( {checkedState: false, staticLabel: "Case sensitive search"} );

}

if ( !app.documents.length || !d.show() )
{
d.destroy();
exit();
}


var addEntries = addEntriesEG.checkedState;
var deleteOld = deleteOldCB.checkedState;
var swap = swapCB.checkedState;
var replaceCharStyle = replaceCharStyleEG.checkedState;
var charStyle = doc.characterStyles.item(charStyleDD.selectedIndex);
var caseSensitive = caseSensitiveCB.checkedState ? true : false;
//var wholeWord = wholeWordCB.checkedState ? true : false;

d.destroy();


var file = File.openDialog( 'Select text file containing index entries.' );

if ( !file )
exit();
else
// XXX: ID bug, File.openDialog().open("r") may fail...
file = new File(file);

file.encoding = "UTF-8";
if ( !file.open( "r" ) )
{
alert( "Failed to open file for reading." );
exit();
}

if ( deleteOld && idx && idx.topics.length > 0 )
idx.topics.everyItem().remove();

var entries = file.read().split( /\r?\n/ );

if ( !idx )
idx = doc.indexes.add();

app.findPreferences = app.changePreferences = undefined;
for ( var oneEntry = 0; oneEntry < entries.length; oneEntry++ )
{
var entry = entries[oneEntry].split( "\t", 2 );

if ( entry[0].length < 1 )
continue;

if ( entry.length < 2 )
{
entry.push( entry[0] );
if ( swap )
entry[1] = entry[1].replace( /(\S+)\s+(\S.*)/, '$2, $1' );
}

// XXX: builtin quote for regex?
var re = new RegExp( entry[0].replace( /[$^\\.*+?(){}[\]|]/g, "\\$&" ), (caseSensitive ? "g" : "ig") );
var topic = idx.topics.add(entry[1]);

for ( var j = 0; j < doc.stories.length; j++ )
{
// Note: We reload the story in every iteration because it's difficult
// to predict exactly where ID inserted the page reference markers.
var text = doc.stories.item(j).contents;
re.lastIndex = 0;
for ( var match, delta = 0; match = re.exec(text); delta++ )
topic.pageReferences.add( doc.stories.item(j), match.index + delta, PageReferenceType.currentPage );
}
if ( replaceCharStyle )
doc.search( entry[0], false, caseSensitive, undefined, undefined, {appliedCharacterStyle: charStyle} );
}
idx.update();



als Antwort auf: [#199215]

Indizierung automatisieren

Martin Fischer
  
Beiträge gesamt: 12783

5. Dez 2005, 16:13
Beitrag # 8 von 22
Beitrag ID: #199227
Bewertung:
(29309 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Übrigens, hier ein Workaround, fall Du mehrere Register erstellen/verwalten mußt:
http://www.hilfdirselbst.ch/..._P189882.html#189882


als Antwort auf: [#199226]

Indizierung automatisieren

rohrfrei
Beiträge gesamt: 4492

5. Dez 2005, 16:39
Beitrag # 9 von 22
Beitrag ID: #199231
Bewertung:
(29293 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

puh, das ist ja excellent, vielen Dank. Damit werde ich erstmal ein wenig Zeit verbringen, denke ich.

Den anderen Tip habe ich schon gesehen, danke. Genau so werde ich es wahrscheinlich auch machen.

Gruß


als Antwort auf: [#199227]

Indizierung automatisieren

cajmere
Beiträge gesamt: 11

16. Jan 2007, 14:49
Beitrag # 10 von 22
Beitrag ID: #270939
Bewertung:
(27894 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Martin Fischer ] Und hier IndexFromList.js für InDesign CS

Leider funktioniert das Skript nicht munter InDesign CS2, das Skript entsprechend zu fixen ist mir nicht gelungen. Kennt jemand ein gleichwertiges Skript für CS2?!

Danke schon mal!
/cajmere


als Antwort auf: [#199226]

Indizierung automatisieren

zaphodbeeblebroxx
Beiträge gesamt: 408

16. Jan 2007, 15:44
Beitrag # 11 von 22
Beitrag ID: #270961
Bewertung:
(27869 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

im englischen Adobe-InDesign-Forum habe ich mal folgendes Skript von Peter Kahrel gefunden, dass man noch entsprechend abändern müsste:

Code
doc = app.activeDocument;  
if( doc.indexes.length == 0 )
   doc.indexes.add();
app.findPreferences = app.changePreferences = null;
app.findPreferences.fontStyle = 'Bold';
toindex = doc.search();
for( oneItem = toindex.length-1; oneItem > -1; oneItem-- )
   {
   try
      {
      newtopic = doc.indexes[0].topics.add( toindex[oneItem].contents );
      newtopic.pageReferences.add( toindex[oneItem], PageReferenceType.currentPage );
      }
   catch(_)
      {}
   }


Damit kann man einen Index (mit einer Indexstufe) aus allen Wörtern, die mit "Bold" formatiert sind, erstellen.

Wenn nach einem best. Zeichenformat (z.B. "MeinZeichenformat") gesucht werden soll müsste folgende Zeile geändert werden:

Code
app.findPreferences.appliedCharacterStyle = 'MeinZeichenformat'; 



zaphodbeeblebroxx


als Antwort auf: [#270939]

Indizierung automatisieren

Bernhard Werner
Beiträge gesamt: 5131

8. Aug 2007, 17:45
Beitrag # 12 von 22
Beitrag ID: #307042
Bewertung:
(27096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

gibt es auch eine Möglichkeit, dieses Script von Peter Kahrel auch auf ein gesammtes Buch anzuwenden?

Dank und Gruß
Bernhard


als Antwort auf: [#270961]

Indizierung automatisieren

zaphodbeeblebroxx
Beiträge gesamt: 408

8. Aug 2007, 17:50
Beitrag # 13 von 22
Beitrag ID: #307045
Bewertung:
(27093 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ja das geht auch. Per Skript können alle Dokumente eines Buchs "bearbeitet" werden. Such mal im Forum nach "Buch" + "Skript".

Es gibt verschiedene Bsp. für Skripte, die alle Dokumente eines Buchs bearbeiten.

Hier ein Bsp., wie das aussehen könnte:

Code
//DESCRIPTION: Ändert alle Dokumente eines Buchs 
//
if ((app.documents.length == 0) && (app.books.length == 1)) {
var myChoice = confirm("ACHTUNG:\rDas Skript ändert in einem geöffneten Buch alle Dokumente!\rVor Ausführung des Skripts unbedingt eine SICHERUNGSKOPIE aller Dokumente des Buchs anlegen!!\r\rWeiter mit YES, Skript abbrechen mit NO", true,);
if (myChoice != true){
exit();
}
var theDocs = app.books[0].bookContents;
//
for (oneDoc = 0; oneDoc < theDocs.length; oneDoc++) {
myDoc = app.open(File(theDocs[oneDoc].fullName), false);
//
// Hier müssen die Code-Zeilen rein, die in jedem Buch-Dokument ausgeführt werden sollen
//
myDoc.close(SaveOptions.yes);
}
alert("Fertig. " + app.books[0].bookContents.length + " Dokumente bearbeitet!");
exit();
}
alert("Bitte alle InDesign-Dokumente schließen und nur ein Buch öffnen!");
exit();
}


In dem markierten Bereich muss noch rein, was mit den jeweiligen Dokumenten des Buchs passieren soll. Das Skript arbeitet nur, wenn alle InDesign-Dokumente geschlossen sind und nur ein Buch geöffnet ist.


als Antwort auf: [#307042]
(Dieser Beitrag wurde von zaphodbeeblebroxx am 8. Aug 2007, 18:03 geändert)

Indizierung automatisieren

Bernhard Werner
Beiträge gesamt: 5131

8. Aug 2007, 18:43
Beitrag # 14 von 22
Beitrag ID: #307060
Bewertung:
(27075 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hab' nun diese gefunden: http://www.hilfdirselbst.ch/...i?post=228925#228925

Klappt bestens. :-)

[edit]Deines sogar noch besser, wenn man die letzte Klammer weglässt. :-)[/edit]

Vielen Dank!

Gruß
Bernhard


als Antwort auf: [#307045]
(Dieser Beitrag wurde von Bernhard Werner am 8. Aug 2007, 18:44 geändert)

Indizierung automatisieren

Bernhard Werner
Beiträge gesamt: 5131

8. Aug 2007, 19:14
Beitrag # 15 von 22
Beitrag ID: #307065
Bewertung:
(27058 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mal eine blöde Frage. Kann es hin und wieder vorkommen, das Scripte mal funktionieren und mal nicht? Mal kommen Fehlermeldungen, die nach einem Neustart nicht mehr erscheinen oder es kommen Fehlermeldungen, die nicht sein können oder die Aktion wird nicht ausgeführt/angewendet.

Oder bin ich einfach nur zu doof?

Dank und Gruß
Bernhard


als Antwort auf: [#307045]
X

Aktuell

PDF / Print
enfocus_300

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!