[GastForen Programme Print/Bildbearbeitung Adobe InDesign (InDesign CS2) Skript zu Versalien; Differenzierung nach Schriftschnitten möglich?

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

(InDesign CS2) Skript zu Versalien; Differenzierung nach Schriftschnitten möglich?

--silke--
Beiträge gesamt: 27

19. Dez 2007, 08:47
Beitrag # 1 von 5
Bewertung:
(7856 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen, liebe Skripte-Versierte,
kann mir eineR von euch sagen, ob es möglich ist – bzw. ›wie das funktioniert‹ –, das Skript, das Versalien ein bestimmtes Zeichnformat zuweist, dazu zu bringen, nur die Zeichen mit einen bestimmten Schriftschnitt (z.B. normal oder kursiv) zu beachten?
Schöne Grüße
Silke Doepner
X

(InDesign CS2) Skript zu Versalien; Differenzierung nach Schriftschnitten möglich?

zaphodbeeblebroxx
Beiträge gesamt: 408

19. Dez 2007, 16:11
Beitrag # 2 von 5
Beitrag ID: #327889
Bewertung:
(7816 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Hallo Silke,

welches Skript verwendest Du für die Zuweisung eines ZF für Versalien?

im Skript müsste eine Zeile sein, in der die "Suchanweisung" steht. Hier müssten die "app.findPreferences" für die Suche nach einem bestimmten Schriftschnitt (fontStyle:"NameDesSchriftschnittes") ergänzt werden.


als Antwort auf: [#327774]

(InDesign CS2) Skript zu Versalien; Differenzierung nach Schriftschnitten möglich?

--silke--
Beiträge gesamt: 27

19. Dez 2007, 16:38
Beitrag # 3 von 5
Beitrag ID: #327890
Bewertung:
(7804 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mathhias,
das von mir benutzte Skript nennt sich ›ApplyCharacterStyleToCapitals.jsx‹. Die Zeile, die du angibst, kommt 2mal darin vor. Ich kenn mich ja leider nicht aus, aber vermute, dass deine Anmerkung irgendwie eher bei der zweiten Stelle einzufügen wäre (aber: Falls ja, dann wie?).
Ich füge die Zeile und ein wenig DrumHerum ein, und hoffe, du kannst mir (noch-)weiter helfen:
Zitat app.findPreferences = app.changePreferences = null;
// XXX: Assumes search() only returns undefined when aborted.
replacements = app.activeDocument.selection[0].search( match, false, true, undefined, findAttributes, {appliedCharacterStyle: charStyle} );


Grüße
Silke


als Antwort auf: [#327889]

(InDesign CS2) Skript zu Versalien; Differenzierung nach Schriftschnitten möglich?

zaphodbeeblebroxx
Beiträge gesamt: 408

20. Dez 2007, 12:08
Beitrag # 4 von 5
Beitrag ID: #327999
Bewertung:
(7756 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Hallo Silke,

ich habe das Skript "ApplyCharacterStyleToCapitals.js" von der HDS-Skriptsammlung genommen und zwei Zeilen abgeändert (Zeile 131 und Zeile 142). In diesen Zeilen musst Du den genauen Namen des Schriftschnittes eintragen, den Du suchst. Hier bitte die genaue Schreibweise aus dem InDesign-Schriftmenü übernehmen. Ich habe das mal für eine Schrift gemacht, bei der der kursiv-Schnitt "Italic" benannt ist (mit einem Großbuchstaben am Anfang).

Code
// ApplyCharacterStyleToCapitals.js  
/*
Apply character style to capitals

Applies a certain character style to a sequence of capitals,
possibly separated by padding characters. The characters
used can be specified by the user.

Download script source.

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

Version: 0.2.0
Date: 2005-03-08

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


if ( app.documents.length < 1 )
exit();

if ( !(app.activeDocument.selection[0] instanceof Text) )
{
alert( "Select text to change." );
exit();
}

var d = app.dialogs.add( {name: "Format capitals"} );
var charStyleDD, dontApplyEG, charactersTEB, paddingCharsEG, paddingCharsTEB, keepLogCB;
var dontApplyCBs = new Array();
with ( d.dialogColumns.add() )
{
with ( dialogRows.add() )
{
dialogColumns.add().staticTexts.add( {staticLabel: "Apply character style"} );
charStyleDD = dialogColumns.add().dropdowns.add( {stringList: [].concat( app.activeDocument.characterStyles.everyItem().name ), selectedIndex: 0} );
}

with ( dialogRows.add() )
{
dialogColumns.add().staticTexts.add( {staticLabel: "Characters"} );
charactersTEB = dialogColumns.add().textEditboxes.add( {editContents: "A-Z", minWidth: 300 } );
}

with ( paddingCharsEG = dialogRows.add().enablingGroups.add( {staticLabel: "Allow padding characters", checkedState: true} ) )
paddingCharsTEB = textEditboxes.add( {editContents: "\\u2000-\\u200D\\u00A0\\u0026\\u00AD", minWidth: 300} );

with ( dontApplyEG = dialogRows.add().enablingGroups.add( {staticLabel: "Don't apply to paragraph styles", checkedState: false} ) )
{
var cols = [dialogColumns.add(), dialogColumns.add()];
for ( var k = 0; k < app.activeDocument.paragraphStyles.length; k++ )
dontApplyCBs.push( cols[k % 2].dialogRows.add().checkboxControls.add( {checkedState: false, staticLabel: app.activeDocument.paragraphStyles.item(k).name} ) );
}

keepLogCB = dialogRows.add().checkboxControls.add( {checkedState: false, staticLabel: "Save log file"} );
}

var re;
for ( ; ; )
{
if ( !d.show() )
{
d.destroy();
exit();
}

if ( charactersTEB.editContents.length < 1 )
{
alert( "Illegal specification of allowed characters." );
continue;
}

if ( paddingCharsEG.checkedState && charactersTEB.editContents.length > 0 )
re = "[" + charactersTEB.editContents.replace( /(?=[\[\]])/g, "\\" ) + "](?:[" + paddingCharsTEB.editContents.replace( /(?=[\[\]])/g, "\\" ) + "]?[" + charactersTEB.editContents.replace( /(?=[\[\]])/g, "\\" ) + "])+";
else
re = "[" + charactersTEB.editContents.replace( /(?=[\[\]])/g, "\\" ) + "]{2,}";

try { re = new RegExp( re, "g" ); }
catch ( e ) { alert( "Failed to compile regular expression: " + e ); continue; }


break;
}

var log, logFile, keepLog;
if ( keepLog = keepLogCB.checkedState )
{
for ( ; ; )
{
if ( logFile = File.saveDialog( "Select where to save log file." ) )
{
logFile = new File( logFile );
if ( logFile.exists && !confirm( 'Warning: "' + logFile.name + '" already exists. Are you sure you want to append to it?' ) )
continue;

if ( !logFile.open( "e", "TEXT", "????" ) )
alert( "Unable to open log file for editing." );
else
break;
}
else
{
d.destroy();
exit();
}
}
}

if ( keepLog ) log( "Searching for matching words..." );
var charStyle = app.activeDocument.characterStyles.item( charStyleDD.selectedIndex );
var txt = app.activeDocument.selection[0].contents;
var match;
var matches = new Object();
while ( match = re.exec( txt ) )
matches[match[0].replace( /\^/g, "^^" )] = 1;

var nmatches = 0;
for ( match in matches )
nmatches++;

if ( keepLog ) log( nmatches + " match(es) found. Abort execution by removing this file." );

var nreplacements = 0;
var start = new Date();

// Using extra search() rather than modifying characters.itemByRange(...) is far faster.
if ( !dontApplyEG.checkedState )
doReplacements( matches, {fontStyle:"Italic"} );
else
{
var n = 0;
for ( var k = 0; k < dontApplyCBs.length; k++ )
if ( !dontApplyCBs[k].checkedState )
n++;

nmatches *= n;
for ( var k = 0; k < dontApplyCBs.length; k++ )
if ( !dontApplyCBs[k].checkedState )
if ( !doReplacements( matches, {appliedParagraphStyle: app.activeDocument.paragraphStyles.item(k), fontStyle:"Italic"} ) )
break;
}

app.findPreferences = app.changePreferences = null;
d.destroy();
if ( keepLog ) log( "Total search time: " + formatDuration( (new Date()).getTime() - start.getTime() ) );

function log ( str )
{
if ( !logFile.exists )
{
if ( confirm( "Log file removed. Abort execution of script?" ) )
{
d.destroy();
exit();
}
}

// Ignore any errors here... (Poor mans flush().)
if ( logFile.open( "e", "TEXT", "????" ) )
try
{
logFile.lineFeed = "unix";
logFile.seek( 0, 2 );
logFile.writeln( str );
logFile.close();
}
catch ( e ) { ; }
else
alert( "failed to open log." );
}

function doReplacements ( matches, findAttributes )
{
var previous = new Date();

if ( findAttributes != undefined && keepLog )
log( 'Starting replacements for paragraph style "' + findAttributes.appliedParagraphStyle.name + '".' );

for ( match in matches )
{
var replacements;
for ( ; ; )
{
app.findPreferences = app.changePreferences = null;
// XXX: Assumes search() only returns undefined when aborted.
replacements = app.activeDocument.selection[0].search( match, false, true, undefined, findAttributes, {appliedCharacterStyle: charStyle} );
if ( replacements != undefined )
break;
else if ( confirm( "Are you sure you want to abort the script?" ) )
return(false);
}

nreplacements++;
if ( keepLog )
{
var current = new Date();
// Note: Each search() takes about the same, number of replacements doesn't matter.
log( '[' + (nreplacements/nmatches * 100).toFixed(0) + '%] Replaced ' + replacements.length + ' occurrence(s) of "' + match + '" in ' + ((current.getTime() - previous.getTime())/1000).toFixed(3) + 's. ETA ' + formatDuration( (current.getTime() - start.getTime()) * (nmatches-nreplacements)/nreplacements ) );
previous = current;
}
}

return(true);
}

function formatDuration ( ms )
{
var s, m, h, d;
s = ms/1000;
s -= (d = Math.floor( s/(60*60*24) )) * 60*60*24;
s -= (h = Math.floor( s/(60*60) )) * 60*60;
s -= (m = Math.floor( s/60 )) * 60;
s = Math.round(s);

if ( d != 0 )
return( d + "d " + h + "h " + m + "m " + s + "s" );
else if ( h != 0 )
return( h + "h " + m + "m " + s + "s" );
else if ( m != 0 )
return( m + "m " + s + "s" );
else
return( s + "s" );
}


Macht das Skript nun das, was Du gerne hättest?


als Antwort auf: [#327890]

(InDesign CS2) Skript zu Versalien; Differenzierung nach Schriftschnitten möglich?

--silke--
Beiträge gesamt: 27

20. Dez 2007, 13:39
Beitrag # 5 von 5
Beitrag ID: #328042
Bewertung:
(7732 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Matthias,
das tut es! Und dank deiner verständlichen Anleitung bin ich jetzt auch in der Lage es auf alle möglichen anderen Schriftschnitte anzuwenden – 1000dank!
Und natürlich stolpert mensch immer über neue spannende Sachen, und so ist mir aufgefallen, dass das Skript die Versalien“Wörter“ nicht erfasst, die (erst normal getippt und dann) mit dem Versalisierungsicon ›TT‹ zu Großbuchstaben gemacht wurden. Weißt du – oder sonst jemand der Anwesenden, natürlich –, warum das so ist?
Silke


als Antwort auf: [#327999]
X

Aktuell

InDesign / Illustrator
MTT_300x300_11_2022

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
17.04.2024

Online
Mittwoch, 17. Apr. 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

Ja

Organisator: Impressed / Günther Business Solutions

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

Und es geht doch: Automatisierung im Großformatdruck!