Connect failed: Connection timed out

[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Excel-Datei platzieren und Tabellenformat zuweisen

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

Excel-Datei platzieren und Tabellenformat zuweisen

in_design
Beiträge gesamt: 31

22. Aug 2013, 19:02
Beitrag # 1 von 27
Bewertung:
(6872 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich habe ein Problem beim Zuweisen eines Tabellenformats. Das Programm stürzt immer ab und sagt, dass das Tabellenobjekt nicht gültig ist. Das Platzieren selbst funktioniert aber.

Wenn ich aber zuvor die Tabelle manuell platziere, also nicht per Skript, das Tabellenformat zuweise und dann die Tabelle inkl. TextFrame lösche, funktioniert das Skript.

Code
var myDoc = app.activeDocument;  
var myFrame = myDoc.pages[0].textFrames.add();
myFrame.geometricBounds = [50,50,100,100];
myFrame.place(File('~/Desktop/test.xlsx'), true);
myFrame.tables[0].appliedTableStyle = "MeinTabellenFormat";


Vielen Dank schon mal für Eure Hilfe.

(Dieser Beitrag wurde von in_design am 22. Aug 2013, 19:04 geändert)
X

Excel-Datei platzieren und Tabellenformat zuweisen

WernerPerplies
Beiträge gesamt: 2760

22. Aug 2013, 19:27
Beitrag # 2 von 27
Beitrag ID: #516549
Bewertung:
(6860 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich vermute mal, das die Tabelle zum Zeitpunkt der Zuweisung (noch?) nicht existiert, oder nicht in den Rahmen platziert wurde.

Ich würde das Skript mal im Einzelschrittverfahren durchgehen und nach der Platzierung die Länge von myFrame.tables prüfen.


als Antwort auf: [#516548]

Excel-Datei platzieren und Tabellenformat zuweisen

in_design
Beiträge gesamt: 31

22. Aug 2013, 19:35
Beitrag # 3 von 27
Beitrag ID: #516550
Bewertung:
(6855 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Genau das ist das Problem. Die Tabelle wird nach dem Aufruf der place-Methode angezeigt. myFrame.tables.length ist aber 0. Als wäre das Platzieren noch nicht abgeschlossen.


als Antwort auf: [#516549]

Excel-Datei platzieren und Tabellenformat zuweisen

WernerPerplies
Beiträge gesamt: 2760

22. Aug 2013, 20:15
Beitrag # 4 von 27
Beitrag ID: #516551
Bewertung:
(6812 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Als wäre das Platzieren noch nicht abgeschlossen.

Nein, das denke ich nicht, vielmehr ist die Tabelle vermutlich nicht da, wo Du sie erwartest.

Probiere mal folgendes aus:

1. Selektiere die Tabelle
2. Im ESTK - JavaScript-Konsole (Ziel InDesign auswählen):
Code
app.activeDocument.selection[0]; 
dann
app.activeDocument.selection[0].parent.select();

Was ist selektiert?
ggf. kannst Du Dich weiter hochhangeln:
Code
app.activeDocument.selection[0].parent.parent.select() 
usw.


Wenn Du dann weißt, wo die Tabelle zu finden ist, kannst Du sie auch gezielt selektieren.
Alles klar?


als Antwort auf: [#516550]

Excel-Datei platzieren und Tabellenformat zuweisen

in_design
Beiträge gesamt: 31

22. Aug 2013, 20:20
Beitrag # 5 von 27
Beitrag ID: #516552
Bewertung:
(6807 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ WernerPerplies ]
Zitat Als wäre das Platzieren noch nicht abgeschlossen.

Nein, das denke ich nicht, vielmehr ist die Tabelle vermutlich nicht da, wo Du sie erwartest.

Probiere mal folgendes aus:

1. Selektiere die Tabelle
2. Im ESTK - JavaScript-Konsole (Ziel InDesign auswählen):
Code
app.activeDocument.selection[0]; 
dann
app.activeDocument.selection[0].parent.select();

Was ist selektiert?
ggf. kannst Du Dich weiter hochhangeln:
Code
app.activeDocument.selection[0].parent.parent.select() 
usw.


Wenn Du dann weißt, wo die Tabelle zu finden ist, kannst Du sie auch gezielt selektieren.
Alles klar?


Vielen Dank, das werde ich gleich ausprobieren.

Seltsam ist nur, dass das Skript funktioniert und die Tabelle auch an der Stelle ist, wo ich sie erwarte, wenn ich zuvor einmal die Tabelle mit CMD-D (also manuell) platziert habe.


als Antwort auf: [#516551]

Excel-Datei platzieren und Tabellenformat zuweisen

in_design
Beiträge gesamt: 31

22. Aug 2013, 20:35
Beitrag # 6 von 27
Beitrag ID: #516553
Bewertung:
(6770 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Die Tabelle ist fest in einem TextFrame eingebettet. Ich kann die gar nicht einzeln selektieren.

mir kommt es eher so vor, als würde gar keine Tabelle existieren und beim Platzieren der Inhalt der Tabelle in den TextFrame geschrieben werden.


als Antwort auf: [#516551]
(Dieser Beitrag wurde von in_design am 22. Aug 2013, 20:38 geändert)

Excel-Datei platzieren und Tabellenformat zuweisen

WernerPerplies
Beiträge gesamt: 2760

22. Aug 2013, 20:39
Beitrag # 7 von 27
Beitrag ID: #516554
Bewertung:
(6764 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Dann starte mit der Selektion einer Zelle.


als Antwort auf: [#516553]

Excel-Datei platzieren und Tabellenformat zuweisen

in_design
Beiträge gesamt: 31

22. Aug 2013, 20:54
Beitrag # 8 von 27
Beitrag ID: #516555
Bewertung:
(6749 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich kann ja nicht einmal eine Zelle selektieren...

Code
var myDoc = app.activeDocument;   
var myFrame = myDoc.pages[0].textFrames.add();
myFrame.geometricBounds = [50,50,100,100];

app.scriptPreferences.userInteractionLevel=UserInteractionLevels.INTERACT_WITH_ALL;
myFrame.place(File('~/Desktop/test.xlsx'), true);
app.scriptPreferences.userInteractionLevel=UserInteractionLevels.NEVER_INTERACT;

myFrame.tables[0].appliedTableStyle = "MeinTabellenFormat";


So funktioniert es aber, obwohl ich im Dialog nur auf "OK" klicke und auch nichts an den Importeinstellungen verändere....


als Antwort auf: [#516554]
(Dieser Beitrag wurde von in_design am 22. Aug 2013, 21:07 geändert)

Excel-Datei platzieren und Tabellenformat zuweisen

WernerPerplies
Beiträge gesamt: 2760

22. Aug 2013, 21:08
Beitrag # 9 von 27
Beitrag ID: #516556
Bewertung:
(6721 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe mal hier versucht, das nachzustellen, bei mir funktioniert alles.

aber das würde auch funktionieren:

Code
var myDoc = app.activeDocument;    
var myFrame = myDoc.pages[0].textFrames.add();
myFrame.geometricBounds = [50,50,100,100];
var table = myFrame.place(File('C:\\Users\\Werner Perplies\\Documents\\!!!!!!Testordner\\Mappe1.xlsx'), true)[0].tables[0];
table.appliedTableStyle = "tableFormat";

Ich bin dann mal weg.


als Antwort auf: [#516555]

Excel-Datei platzieren und Tabellenformat zuweisen

in_design
Beiträge gesamt: 31

22. Aug 2013, 21:23
Beitrag # 10 von 27
Beitrag ID: #516557
Bewertung:
(6710 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
vielen Dank noch mal für die Hilfe.

funktioniert es bei ihnen auch, wenn sie den dialog der place-methode mit "false"" unterdrücken?

bei mir funktioniert es leider noch nicht. die variable table ist ungültig.

ich werde es morgen mal auf einem anderen rechner probieren...

schönen abend noch.


als Antwort auf: [#516556]

Excel-Datei platzieren und Tabellenformat zuweisen

WernerPerplies
Beiträge gesamt: 2760

23. Aug 2013, 07:16
Beitrag # 11 von 27
Beitrag ID: #516563
Bewertung:
(6592 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat funktioniert es bei ihnen auch, wenn sie den dialog der place-methode mit "false"" unterdrücken?

ja.
So, ich habe den Test noch etwas erweitert, so funktioniert es bei mir für alle Einstellungen:
show -> true/false
und
if(!show)
Code
#target InDesign; 
// tested with CS6, windows
main ()

function main()
{
try
{
// store for later use
var userInteractionLevel = app.scriptPreferences.userInteractionLevel;
// Whether to display the import options dialog (Optional) (default: false)
var show = true;
// define tableformat to use
var tableFormat = "tableFormat";
if (!show)
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL;
else
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT;
var doc = app.activeDocument;
var frame = doc.pages[0].textFrames.add();
frame.geometricBounds = [50,50,100,100];
var table = frame.place(File('C:\\Users\\Werner Perplies\\Documents\\!!!!!!Testordner\\Mappe1.xlsx'), show)[0].tables[0];
table.appliedTableStyle = tableFormat;
// restore
app.scriptPreferences.userInteractionLevel = userInteractionLevel;
}
catch (error)
{
alert(error.meessage + "\n" + error.line);
}
}



als Antwort auf: [#516557]

Excel-Datei platzieren und Tabellenformat zuweisen

in_design
Beiträge gesamt: 31

23. Aug 2013, 08:17
Beitrag # 12 von 27
Beitrag ID: #516566
Bewertung:
(6576 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
vielen Dank für die Mühe., funktioniert bei mir leider noch immer nicht. Bekomme als Fehler "23 - undefined".

Könnte das vielleicht einmal jemand mit Indesign unter OS X testen?

bei mir funktioniert es übrigens auch auf dem zweiten Rechner nicht... :-(


als Antwort auf: [#516563]

Excel-Datei platzieren und Tabellenformat zuweisen

WernerPerplies
Beiträge gesamt: 2760

23. Aug 2013, 08:30
Beitrag # 13 von 27
Beitrag ID: #516568
Bewertung:
(6571 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ok, jetzt bekomme ich den Fehler auch, hängt also irgendwie von den Einstellungen ab.

Ich versuche das herauszufinden


als Antwort auf: [#516566]

Excel-Datei platzieren und Tabellenformat zuweisen

in_design
Beiträge gesamt: 31

23. Aug 2013, 08:35
Beitrag # 14 von 27
Beitrag ID: #516570
Bewertung:
(6560 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ WernerPerplies ] Ok, jetzt bekomme ich den Fehler auch, hängt also irgendwie von den Einstellungen ab.

Ich versuche das herauszufinden


Bitte noch beachten, dass das Skript funktiniert, sobald man zuvor einmal manuell beim Platzieren-Dialog auf OK geklickt hat.

Will man das Skript testen, muss man vorher das Dokument und Indesign vollständig schließen.


als Antwort auf: [#516568]

Excel-Datei platzieren und Tabellenformat zuweisen

Uwe Laubender
Beiträge gesamt: 5316

23. Aug 2013, 08:57
Beitrag # 15 von 27
Beitrag ID: #516574
Bewertung:
(6538 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, zusammen!

Man könnte die Variable der Tabelle auch mit myTextFrame.tables[0] verbinden.

Und falls das nichts fruchtet InDesign mit einem sleep(1000) ein wenig Zeit lassen, um sie aufzubauen.

Auch ein app.activeDocument.recompose() könnte nicht schaden.

Hab' jetzt leider keine Zeit zum Testen…


als Antwort auf: [#516568]
X