[GastForen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Forenindex -- Lesezeichen

4 Lesezeichen für tabelle

Transparente Konturlinien von Tabellenzellen
Vielleicht so?

Format CS 5.5
...
Kurt Gold
30. Mär 2012, 16:09
Tabellen mit abgerundeten Ecken und unterschiedlicher Füllung - keine generelle Abrundung der Ecken möglich?
Passiert bei mir aber leider.
Das Thema scheint auch nicht unbekannt zu sein (siehe:http://ow.ly/1P1CaO und http://ow.ly/1P1Ca1), jedoch sind die Lösungen zum einen zu aufwändig für ein Buch, was fast ausschließlich aus Tabellen besteht (Variante 1) bzw. nicht nachvollzieh- und umsetzbar (Variante 2)
...
M.Hulot
18. Okt 2012, 12:41
Querverweis in Text umwandeln
Der Name der Seite, auf der eine Tabellenzelle liegt, lässt sich also etwa mit folgendem Konstrukt ermitteln.

Code
// Vor Ausführung Einfügemarke in Tabellenzelle platzieren!  

var doc = app.documents.firstItem();
var s = app.selection[0].insertionPoints.firstItem();

var cr_name = 'Seite';
var cr_format = doc.crossReferenceFormats.itemByName(cr_name);
if (cr_format == null)
{
cr_format = doc.crossReferenceFormats.add({name:cr_name});
cr_format.buildingBlocks.add({blockType:BuildingBlockTypes.PAGE_NUMBER_BUILDING_BLOCK});
}

var cr_source = doc.crossReferenceSources.add ( {sourceText:s, appliedFormat: cr_format} );
var cr_destination = doc.hyperlinkTextDestinations.add ( {destinationText: s } );
var cr = doc.hyperlinks.add ( cr_source, cr_destination );

var str = cr_source.sourceText.textVariableInstances[0].resultText;

cr.remove();
cr_source.sourceText.remove();
cr_destination.remove();

alert('Seite: ' + str);

...
Martin Fischer
1. Feb 2012, 00:02
Tabellenbreite proportional skalieren
Hallo Gerald,

aus aktuellem Anlaß (weil ich's grad selbst so brauche), habe ich in Deinem Skript eine kleine Modifikation gemacht:

Wenn die Tabelle in einem Textrahmen platziert ist, wird im Dialogfeld die Breite des Textrahmens als Ziel für die Gesamtbreite der Tabelle vorgeschlagen.

Andernfalls (z.B. wenn die Tabelle in einer Tabellenzelle platziert ist) wird weiterhin, wie in Deinem Skript, die aktuelle Tabellenbreite eingeblendet.

Code
bGoOn = true; 
aTable = app.selection[0];
if (aTable.constructor.name != "Table") {
aTable = aTable.parent;
if (aTable.constructor.name != "Table") {
aTable = aTable.parent;
if (aTable.constructor.name != "Table") {
alert("Es muss ein Text in einer Zelle markiert sein");
bGoOn = false;
}
}
}
if (bGoOn) {
nc = aTable.columns.length;
tWidth = 0.0;
for (n=0; n < nc; n++) {
tWidth += aTable.columns[n].width;
}
// die Tabelle befindet sich in einem Textrahmen
if (aTable.parent.constructor.name == "TextFrame") {
tfBounds = aTable.parent.geometricBounds;
// vorgeschlagener Wert für die Gesamtbreite der Tabelle = Breite des Textrahmens
myValue = tfBounds[3] - tfBounds[1];
}
else {
// vorgeschlagener Wert für die Gesamtbreite der Tabelle = aktuelle Tabellenbreite
myValue = tWidth;
}
var myDialog = app.dialogs.add({name:"Tabellenbreite"});
with(myDialog.dialogColumns.add()){
var nuWidthField = measurementEditboxes.add({editValue:(2.83465 * myValue), editUnits:MeasurementUnits.millimeters, smallNudge:0.5});
}

var myResult = myDialog.show();
if(myResult == true){
var nuWidth = nuWidthField.editValue * 0.35278;
myDialog.destroy();
scaleClm = nuWidth / tWidth;
for (n=0; n < nc; n++) {
aTable.columns[n].width = scaleClm * aTable.columns[n].width;
}
}
else{
myDialog.destroy();
}
}

...
Martin Fischer
17. Sep 2007, 09:25