[GastForen Programme Print/Bildbearbeitung Adobe Illustrator Problem mit Illustrator Skript bei Dateinamen mit einem "." im Namen

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

Problem mit Illustrator Skript bei Dateinamen mit einem "." im Namen

Ad-Rock
Beiträge gesamt: 11

27. Aug 2020, 08:46
Beitrag # 1 von 8
Bewertung:
(94349 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich benutze öfters ein Skript, um AI-Dateien zu SVG-Dateien zu konvertieren.

Das funktioniert an sich richtig gut, allerdings verhaspelt sich das Skript, wenn die Ausgangsdateinamen Punkte im Namen enthalten (z.B. "Datei1.2.ai").

Ich denke, dass dieser Code-Block angepasst werden müsste, aber trotz viel lesen und rumprobieren kriege ich es nicht hin...

Hier der gesamte Code des Skripts

Code
/********************************************************** 

ADOBE SYSTEMS INCORPORATED
Copyright 2005-2010 Adobe Systems Incorporated
All Rights Reserved

NOTICE: Adobe permits you to use, modify, and
distribute this file in accordance with the terms
of the Adobe license agreement accompanying it.
If you have received this file from a source
other than Adobe, then your use, modification,
or distribution of it requires the prior
written permission of Adobe.

*********************************************************/

/**********************************************************

Save as SVGs.jsx

DESCRIPTION

This sample gets files specified by the user from the
selected folder and batch processes them and saves them
as SVGs in the user desired destination with the same
file name.

Based on Adobe's "Save as PDFs" sample script, intended for Illustrator CS6

**********************************************************/

// Main Code [Execution of script begins here]

// uncomment to suppress Illustrator warning dialogs
// app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS;

var destFolder, sourceFolder, files, fileType, sourceDoc, targetFile, svgSaveOpts;

// Select the source folder.
sourceFolder = Folder.selectDialog( 'Quell-Verzeichnis mit AI-Dateien auswählen', '~' );

// If a valid folder is selected
if ( sourceFolder != null )
{
files = new Array();
fileType = prompt( 'Select type of Illustrator files to you want to process. Eg: *.ai', ' ' );

// Get all files matching the pattern
files = sourceFolder.getFiles( fileType );

if ( files.length > 0 )
{
// Get the destination to save the files
destFolder = Folder.selectDialog( 'Ziel-Verzeichnis für die SVGs auswählen.', '~' );
for ( i = 0; i < files.length; i++ )
{
sourceDoc = app.open(files[i]); // returns the document object

// Call function getNewName to get the name and file to save the SVG
targetFile = getNewName();

// Call function getSVGOptions get the SVGSaveOptions for the files
svgSaveOpts = getSVGOptions( );

// Save as svg
sourceDoc.exportFile(targetFile, ExportType.SVG, svgSaveOpts );

sourceDoc.close();
}
alert( 'Files are saved as SVG in ' + destFolder );
}
else
{
alert( 'No matching files found' );
}
}


/*********************************************************

getNewName: Function to get the new file name. The primary
name is the same as the source file.

**********************************************************/

function getNewName()
{
var ext, docName, newName, saveInFile, docName;
docName = sourceDoc.name;
ext = '.svg'; // new extension for svg file
newName = "";

for ( var i = 0 ; docName[i] != "." ; i++ )
{
newName += docName[i];
}
newName += ext; // full svg name of the file

// Create a file object to save the svg
saveInFile = new File( destFolder + '/' + newName );


return saveInFile;
}


function getSVGOptions()
{
var svgSaveOpts = new ExportOptionsSVG();
svgSaveOpts.DTD = SVGDTDVersion.SVG1_1;
svgSaveOpts.embedRasterImages = false;
svgSaveOpts.cssProperties = SVGCSSPropertyLocation.STYLEATTRIBUTES;
svgSaveOpts.coordinatePrecision = 3;
svgSaveOpts.fontType = SVGFontType.SVGFONT;
svgSaveOpts.documentEncoding = SVGDocumentEncoding.UTF8;
svgSaveOpts.fontSubsetting = SVGFontSubsetting.None;
svgSaveOpts.response = false;
svgSaveOpts.sVGTextOnPath = true;
svgSaveOpts.slices = false;
svgSaveOpts.preserveEditability = false;
svgSaveOpts.sVGAutoKerning = false;
return svgSaveOpts; }


Hier noch ein Beispiel was passiert:

Drei Ursprungsdateien sollen umgewandelt werden:
900.10.ai
900.11.ai
900.12.ai

Erstellt wird nur eine SVG-Datei:
900.svg

Es sollten srei SVG-Dateien erstellt, leider wird nur die eine Datei mit falschem Namen erstellt.

Bei Quell-Dateien ohne Punkt im Namen funktioniert alles prima...

Kann mir da eventuell jemand helfen?

Vielen Dank und liebe Grüße,
BlindJones
X

Problem mit Illustrator Skript bei Dateinamen mit einem "." im Namen

Ad-Rock
Beiträge gesamt: 11

29. Aug 2020, 20:20
Beitrag # 2 von 8
Beitrag ID: #576562
Bewertung:
(94238 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Schade, dass hier niemand Lust hatte zu antworten.

Der Beitrag kann aber auch geschlossen werden, ich habe anderweitig Hilfe erhalten und das Skript funktioniert jetzt auch bei Sonderzeichen im Dateinamen.


als Antwort auf: [#576543]

Problem mit Illustrator Skript bei Dateinamen mit einem "." im Namen

Peter Lenz
Beiträge gesamt: 2802

29. Aug 2020, 21:01
Beitrag # 3 von 8
Beitrag ID: #576563
Bewertung:
(94223 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Ad-Rock,

das hat nichts mit Lust zu tun. Es gibt nicht so viele Personen, die sich mit Illustrator-Scripten auskennen.

Außerdem antworten wir hier alle ehrenamtlich, und wenn uns die entsprechende Zeit zur Verfügung steht. Ich bin übrigens nicht mit Scripts vertraut.

Da Du anderweitig Hilfe bekommen hast, wäre es dennoch schön, wenn Du das Resultat hier veröffentlichen würdest.

Viele Grüße Peter


als Antwort auf: [#576562]

Problem mit Illustrator Skript bei Dateinamen mit einem "." im Namen

Ad-Rock
Beiträge gesamt: 11

29. Aug 2020, 21:53
Beitrag # 4 von 8
Beitrag ID: #576564
Bewertung:
(94198 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Hallo Ad-Rock,

das hat nichts mit Lust zu tun. Es gibt nicht so viele Personen, die sich mit Illustrator-Scripten auskennen.

Außerdem antworten wir hier alle ehrenamtlich, und wenn uns die entsprechende Zeit zur Verfügung steht. Ich bin übrigens nicht mit Scripts vertraut.

Da Du anderweitig Hilfe bekommen hast, wäre es dennoch schön, wenn Du das Resultat hier veröffentlichen würdest.

Viele Grüße Peter


Hallo Peter,

es geht hier trotz Illustrator-Unterforum um reines Java-Script, und in der Vergangenheit wurde mir so schnell in diesem Forum geantwortet, dass ich zeitlang Premmium-Mitglied geworden bin.
Das habe ich erneut überlegt vor diesem Post, aber über 110 Ansichten und keine Antwort ist schon schade. Vielleicht war die Frage zu kompliziert formuliert oder ähnliches.

Ich kopiere die Code-Lösung hier noch rein später, ich teste den Code erst noch auf Herz und Nieren.

LG
Ad-Rock


als Antwort auf: [#576563]

Problem mit Illustrator Skript bei Dateinamen mit einem "." im Namen

Thomas Richard
Beiträge gesamt: 19334

1. Sep 2020, 13:46
Beitrag # 5 von 8
Beitrag ID: #576591
Bewertung:
(93700 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Der Grund warum das nicht klappt, ist die nicht allzu behutsame Behandlung des vorherigen Dateinamens um ihn in einen neuen Namen umzuwandeln.

Code
docName = sourceDoc.name;  
ext = '.svg'; // new extension for svg file
newName = "";

for ( var i = 0 ; docName[i] != "." ; i++ )
{
newName += docName[i];
}
newName += ext; // full svg name of the file

// Create a file object to save the svg
saveInFile = new File( destFolder + '/' + newName );


Warum da nicht mit basename gearbeitet wurde oder zumindestens das kappen des alten Suffixes von hinten angegangen wurde, ist mir auch unklar. Der vorhandene Code sammelt die Namensteile Zeichenweise von vorne bis zum ersten Punkt und kappt ihn dort, daher die komischen Ergebnisse.


als Antwort auf: [#576564]

Problem mit Illustrator Skript bei Dateinamen mit einem "." im Namen

pixxxelschubser
Beiträge gesamt: 1708

2. Sep 2020, 21:53
Beitrag # 6 von 8
Beitrag ID: #576613
Bewertung: |||
(93521 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo @Ad-Rock,
entschuldige vielmals, dass manche (von den sehr sehr sehr wenigen) Illustrator Skriptern in ihrem Urlaub interessante Fragen zwar lesen, aber dennoch nicht antworten - gerade weil die Beantwortung einige, unter Umständen zeitraubende Tests und auf jeden Fall das Studium des Quellcodes voraussetzt.

Andere lesen, weil sie vielleicht eine Lösung anbieten möchten - es aber letztlich mangels der speziellen Problematik nicht vermögen.

In diesem Fall hat dir ja dein Crossposting https://community.adobe.com/...td-p/11390815?page=1 im Adobe Forum bereits weitergeholfen. Und Vasily hat dir dort eine gute Lösung aufgezeigt. Sie sollte problemlos funktionieren. Ich verwende diese Variante auch sehr häufig.

Aber nein. Auch wenn diese Frage durch Javascript und Regex zu lösen war - Illustrator Scripting mit reinem Javascript gleichzusetzen wäre ziemlich töricht. Das sind definitiv Äpfel und Birnen!


<edit>
Und nicht vergessen: Solange du die Namenskonventionen beachtest (manche Zeichen z.B. der Punkt gehören einfach NICHT in einen Dateinamen!) funktioniert auch das ursprüngliche Script


als Antwort auf: [#576564]
(Dieser Beitrag wurde von pixxxelschubser am 2. Sep 2020, 21:59 geändert)

Problem mit Illustrator Skript bei Dateinamen mit einem "." im Namen

Uwe Laubender
Beiträge gesamt: 5316

3. Sep 2020, 11:37
Beitrag # 7 von 8
Beitrag ID: #576628
Bewertung:
(93436 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat von pixxxelschubser …Und Vasily hat dir dort eine gute Lösung aufgezeigt. Sie sollte problemlos funktionieren…


Hallo zusammen,
da bin ich mir nicht ganz so sicher.

Muss mein "Bauchgefühl" aber noch mit ein paar Tests untermauern.
Vielleicht am Wochenende, falls ich Zeit habe.

Aber zum restlichen Adobe-Code muss ich noch sagen:
Potentielle Probleme birgt auch die Auswertung des Prompts zur Ermittlung des Werts der Variable fileType.

Zumindest findet keine Prüfung statt, ob der Anwender "Unsinn" im Prompt eingetragen hat.
Auch nicht, ob das Prompt mit Abbruch beantwortet wurde.


als Antwort auf: [#576613]

Problem mit Illustrator Skript bei Dateinamen mit einem "." im Namen

pixxxelschubser
Beiträge gesamt: 1708

3. Sep 2020, 15:39
Beitrag # 8 von 8
Beitrag ID: #576641
Bewertung:
(93412 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,
bin ja auf deine Ergebnisse gespannt. Für den TO hat sich das Thema ja wahrscheinlich erledigt.

Zum Code selbst: der Regex passt – ungetestet. Den verwende ich persönlich am liebsten, egal ob mit replace() oder mit match() oder oder oder. Und da es IMHO nur um das Überschreiben des Dateinamens gehen dürfte, habe ich mir den restlichen Code überhaupt nicht wirklich angesehen. Sieht aber insgesamt doch ein bisschen verbesserungswürdig aus.

Letztlich scheint das eingangs gepostete Script wohl nur ein "Example script" von Adobe zu sein.


als Antwort auf: [#576628]
X