[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Skript um alle Querverweise aus Buch aufzulisten

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

Skript um alle Querverweise aus Buch aufzulisten

hansmaulwurf90
Beiträge gesamt: 6

10. Mär 2011, 10:31
Beitrag # 1 von 6
Bewertung:
(2060 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich habe ein Skript welches mir alle Querverweise aus einem Buch/Dokument auflisten soll, jedoch funktioniet es nicht und ich bin mit meinem Latein am Ende. Kommt immer der Fehler:
"Objekt unterstützt Eigenschaft oder Methode Crossreferences nicht"

Code
// open all book's documents 
var myBookDocuments = new Array;
for (var i = 0; i < app.activeBook.bookContents.length; i++)
{
myBookDocuments[i] = app.open(app.activeBook.bookContents[i].fullName);
}

// create new document for our report
var myDocument = app.documents.add();

for (var i = 0; i < myBookDocuments.length; i++)
{
var myBookDocument = myBookDocuments[i];
var myCrossReferences = myBookDocument.CrossReferences;
var myDocumentName = myBookDocument.name;

// create text frame
var myTextFrame = myDocument.pages.item(-1).textFrames.add({geometricBounds: myGetBounds(myDocument)});

// add header
myTextFrame.parentStory.insertionPoints.item(-1).fontStyle = "Bold";
myTextFrame.parentStory.insertionPoints.item(-1).pointSize = "14";
myTextFrame.parentStory.insertionPoints.item(-1).contents = "List of all cross-references in document " + myDocumentName + "\r";

myTextFrame.parentStory.insertionPoints.item(-1).fontStyle = "Regular";
myTextFrame.parentStory.insertionPoints.item(-1).pointSize = "10";
myTextFrame.parentStory.insertionPoints.item(-1).contents = "\r";

for (var j = 0; j < myCrossReferences.length; j++)
{
// add list item
myTextFrame.parentStory.insertionPoints.item(-1).contents += (j + 1) + "" + "\t" + myCrossReferences[j].contents + "\r";
}

if (i < (myBookDocuments.length - 1))
{
myDocument.pages.add();
}
}

function myGetBounds(myDocument)
{
myPage = myDocument.pages.item(0);
var myPageWidth = myDocument.documentPreferences.pageWidth;
var myPageHeight = myDocument.documentPreferences.pageHeight

if (myPage.side == PageSideOptions.leftHand)
{
var myX2 = myPage.marginPreferences.left;
var myX1 = myPage.marginPreferences.right;
}
else
{
var myX1 = myPage.marginPreferences.left;
var myX2 = myPage.marginPreferences.right;
}

var myY1 = myPage.marginPreferences.top;
var myX2 = myPageWidth - myX2;
var myY2 = myPageHeight - myPage.marginPreferences.bottom;

return [myY1, myX1, myY2, myX2];
}


Danke schon mal.
LG
X

Skript um alle Querverweise aus Buch aufzulisten

Martin Fischer
  
Beiträge gesamt: 12783

10. Mär 2011, 10:46
Beitrag # 2 von 6
Beitrag ID: #466642
Bewertung:
(2056 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sebastian.

versuch's mal mit crossReferences ('c' am Anfang kleingeschrieben).


als Antwort auf: [#466635]
(Dieser Beitrag wurde von Martin Fischer am 10. Mär 2011, 10:47 geändert)

Skript um alle Querverweise aus Buch aufzulisten

hansmaulwurf90
Beiträge gesamt: 6

10. Mär 2011, 10:57
Beitrag # 3 von 6
Beitrag ID: #466645
Bewertung:
(2048 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nein, hat leider nichts gebracht.
Gleicher Fehler.....


als Antwort auf: [#466642]

Skript um alle Querverweise aus Buch aufzulisten

Martin Fischer
  
Beiträge gesamt: 12783

10. Mär 2011, 11:28
Beitrag # 4 von 6
Beitrag ID: #466647
Bewertung:
(2031 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ah, ich verstehe.
InDesign kennt zweierlei Querverweise:
1. Querverweise im Index (crossReferences; mit topic als parent)
2. Querverweise im Text (hyperlinks mit source-Typ crossReferenceSource und document als parent)

Du möchtest nicht die Index-Querverweise ansprechen, sondern die Text-Querverweise (hyperlinks).


Versuch's mal damit.
Code
// open all book's documents  
var myBookDocuments = new Array;
for (var i = 0; i < app.activeBook.bookContents.length; i++)
{
myBookDocuments[i] = app.open(app.activeBook.bookContents[i].fullName);
}

// create new document for our report
var myDocument = app.documents.add();

for (var i = 0; i < myBookDocuments.length; i++)
{
var myBookDocument = myBookDocuments[i]
var myCrossReferences = myBookDocument.hyperlinks;
var myDocumentName = myBookDocument.name;

// create text frame
var myTextFrame = myDocument.pages.item(-1).textFrames.add({geometricBounds: myGetBounds(myDocument)});

// add header
myTextFrame.parentStory.insertionPoints.item(-1).fontStyle = "Bold";
myTextFrame.parentStory.insertionPoints.item(-1).pointSize = "14";
myTextFrame.parentStory.insertionPoints.item(-1).contents = "List of all cross-references in document " + myDocumentName + "\r";

myTextFrame.parentStory.insertionPoints.item(-1).fontStyle = "Regular";
myTextFrame.parentStory.insertionPoints.item(-1).pointSize = "10";
myTextFrame.parentStory.insertionPoints.item(-1).contents = "\r";

for (var j = 0; j < myCrossReferences.length; j++)
{
// add list item
myTextFrame.parentStory.insertionPoints.item(-1).contents += (j + 1) + "" + "\t" + myCrossReferences[j].source.sourceText.contents + "\r";
}

if (i < (myBookDocuments.length - 1))
{
myDocument.pages.add();
}
}

function myGetBounds(myDocument)
{
myPage = myDocument.pages.item(0);
var myPageWidth = myDocument.documentPreferences.pageWidth;
var myPageHeight = myDocument.documentPreferences.pageHeight

if (myPage.side == PageSideOptions.leftHand)
{
var myX2 = myPage.marginPreferences.left;
var myX1 = myPage.marginPreferences.right;
}
else
{
var myX1 = myPage.marginPreferences.left;
var myX2 = myPage.marginPreferences.right;
}

var myY1 = myPage.marginPreferences.top;
var myX2 = myPageWidth - myX2;
var myY2 = myPageHeight - myPage.marginPreferences.bottom;

return [myY1, myX1, myY2, myX2];
}



als Antwort auf: [#466645]
(Dieser Beitrag wurde von Martin Fischer am 10. Mär 2011, 11:29 geändert)

Skript um alle Querverweise aus Buch aufzulisten

hansmaulwurf90
Beiträge gesamt: 6

10. Mär 2011, 12:00
Beitrag # 5 von 6
Beitrag ID: #466652
Bewertung:
(2010 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ahh jetzt,
nochmal vielen Dank.
Ich hoffe das wars jetzt mit dem Skripten... :-)


als Antwort auf: [#466647]

Skript um alle Querverweise aus Buch aufzulisten

Martin Fischer
  
Beiträge gesamt: 12783

10. Mär 2011, 12:11
Beitrag # 6 von 6
Beitrag ID: #466655
Bewertung:
(2003 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Ich hoffe das wars jetzt mit dem Skripten... :-)


Ich hoffe nicht! :-)


als Antwort auf: [#466652]
X