10 Replies Latest reply on Oct 15, 2012 4:10 AM by jessevictoor

    embed all fonts in eps

    jessevictoor Level 1

      I have a lot of existing eps-files of which the option "embed all fonts" is unchecked.

      Know I have to check the "embed all fonts" in the existing eps-files.

      I tried to modify the script below, but it seems that the embedallfonts is NOT working.

       

      When I do it manually (without script), then it works fine. With script, it doesn't work.

       

       

       

      #target illustrator

       

      // PART 1

      var doc = app.activeDocument;

       

      // PART 2 -> herbewaren eps als eps

      var destFile = new File(decodeURI(doc.fullName).replace(/(?: \[Converted\])?\.eps$/, '.eps'));   // also remove "[Converted]" from filename

      var options = new IllustratorSaveOptions({});   // new save as options

      options.compatibility = Compatibility.ILLUSTRATOR15;   // save as CS5

      options.embedICCProfile=true;

      options.embedAllFonts=true;

      options.pdfCompatible = true;

      options.useCompression = true;

      doc.saveAs(destFile,  options);  // save the file in the same foldere as the eps

       

      // PART 3

      doc.close(SaveOptions.SAVECHANGES);   // close the file with saving

       

       

      Another question will be: can I get a dialog box to put in the path to the eps-files, I can do thereafter it in batch instead of each time opening and closing a file.

        • 1. Re: embed all fonts in eps
          Muppet Mark Level 5

          Uncheck this if you don't want name appending…? Sure you can batch a script to work though lots of files…

           

          Screen shot 2012-10-12 at 09.34.09.png

          • 2. Re: embed all fonts in eps
            jessevictoor Level 1

            Hello Mark,

             

            Thanks for your tip, but maybe it is my fault, that was not really the problem.

            The problem is that the fonts were not embedded at all. There is no error while running. Illustrator closes the file as eps, but when I create a pdf output, the font is not shown.

            When I do it manually, there is no problem, so I thought there is something wrong with the script.

             

            Problem 2 is, when you have 400 wrong saved eps-files and you have to open them manually, that it will take a while.

            Maybe is there someone that can give me starting script that I can say: that is the folder, open the eps files, resave them as eps with fonts embedded.

            • 3. Re: embed all fonts in eps
              Muppet Mark Level 5

              Problem 2 is NO problem at all… Yes you can have script let you choose a folder in Finder/Explorer and filter through the *.eps files you can also choose where to save each too. ( more flexible than actions batch ). First need to work out what is NOT working for you… Are all the required fonts available to the app when opening the files… Any dialogs? or is it all hunky dory?

              • 4. Re: embed all fonts in eps
                jessevictoor Level 1

                The fonts are installed, but my employer was forgotten to check the embed all fonts funtion.

                So, I went to the graphic company for preparing all stuff to print it on paper and I get a phone call that the fonts were not embedded in the eps-files.

                Now I (or we together with the members of this forum I hope) have to solve this problem.

                I get NO errors at all about missing fonts because they are installed here. To solve this problem for future, I want to solve it immediately at a good manner.

                • 5. Re: embed all fonts in eps
                  Muppet Mark Level 5

                  options.embedAllFonts=true; ////// This is wrong… Take a look at the options… What you should have is…

                   

                  options.fontSubsetThreshold = 100; // This should be default so remove the above line if it still no work add this and try force the issue…

                   

                  Oh and var options = new IllustratorSaveOptions({}); should just be var options = new IllustratorSaveOptions(); // No {}

                  • 6. Re: embed all fonts in eps
                    Larry G. Schneider Adobe Community Professional & MVP

                    I think the OP wants to use 0 instead of 100 for the subsetting option. This will force the entire font to be embedded.

                    • 7. Re: embed all fonts in eps
                      Muppet Mark Level 5

                      You is quite right Larry… I do that myself then forget the default is not the way I like it… empty head…

                      • 8. Re: embed all fonts in eps
                        jessevictoor Level 1

                        Results is still the same.

                         

                        In script below I changed the var options to var options=new epssaveoptions() because the existing eps has to be an eps file

                        I inserted also the embedallfonts line and activated and deactived it (by trial and error)

                        I also tried to change the subsetthreshold from 100 to 0

                        What am I doing wrong?

                         

                         

                        #target illustrator

                        // PART 1
                        var doc = app.activeDocument;


                        // PART 2 -> resave eps as eps

                        var destFile = new File(decodeURI(doc.fullName).replace(/(?: \[Converted\])?\.eps$/, '.eps'));   // also remove "[Converted]" from filename
                        var options = new EPSSaveOptions();   // new save as options
                        options.compatibility = Compatibility.ILLUSTRATOR15;   // save as CS5
                        options.embedICCProfile=true;
                        //options.embedallfonts=true;
                        options.fontSubsetThreshold = 100.0;
                        options.pdfCompatible = true;
                        options.useCompression = true;

                        doc.saveAs(destFile,  options);  // save the file in the same foldere as the eps

                         

                        // PART 3
                        doc.close(SaveOptions.DONOTSAVECHANGES);   // close the file with saving

                        • 9. Re: embed all fonts in eps
                          jessevictoor Level 1

                          It is solved and the script works now!

                           

                          Solution:

                           

                          options.embedAllFonts=true;

                           

                          instead of options.embedallfonts=true;

                          • 10. Re: embed all fonts in eps
                            jessevictoor Level 1

                            For the people who are interested. This script asks for a source and target folder, opens an ai or eps file, save to an eps file with fonts embedded, create automatic a scaled png folder and close the file(s).

                             

                             

                             

                            #target illustrator
                            var destFolder, sourceFolder, files, fileType, sourceDoc, targetFile, pngExportOpts;

                            // Selecteer de bronfolder.
                            sourceFolder = Folder.selectDialog( 'Selecteer de folder met je files die je wil converteren naar PNG', '~' );

                            // indien folder geselecteerd is dan....
                            if ( sourceFolder != null )
                            {
                                files = new Array();
                                fileType = prompt( 'Welke type files wil je herbewaren als eps met embedded fonts en converteren naar png? Voorbeeld: *.ai', ' ' );
                              
                                // controleer of alle files aan de juiste extensie voldoen zoals aangegeven hier net boven.
                                files = sourceFolder.getFiles( fileType );
                              
                                if ( files.length > 0 )
                                {
                                    // folder opgeven waar de png-files bewaard moeten worden
                                    destFolder = Folder.selectDialog( 'Selecteer de folder waar de geconverteerde PNG-bestanden bewaard moeten worden.', '~' );
                                    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 pdf
                                        targetFile = getNewName();
                                      
                                        // call funtion getEpsoptions
                                        epsExportOpts=getEpsOptions();
                                      
                                        // Call function getPNGOptions get the PNGExportOptions for the files
                                        pngExportOpts = getPNGOptions();
                                      
                                        // Export as PNG
                                        sourceDoc.exportFile( targetFile, ExportType.PNG24, pngExportOpts );
                                       
                                        // save as eps but with extra options like embed all fonts checked
                                        sourceDoc.saveAs(targetFile,epsExportOpts);
                                    }
                                    alert( 'De bewaarde PNG bestanden staan in volgende folder: ' + destFolder );
                                }
                                else
                                {
                                    alert( 'Geen files gevonden!' );
                                }
                            }

                            /*********************************************************
                            getNewName: Function to get the new file name. The primary
                            name is the same as the source file.
                            Functie om de nieuwe filenaam te genereren. De oorspronkelijke naam wordt gebruikt (zonder extensie)
                            **********************************************************/
                            function getNewName()
                            {
                                var ext, docName, newName, saveInFile, docName;
                                docName = sourceDoc.name;
                                ext = '.png'; // nieuwe extensie voor PNG
                                newName = "";
                                  
                                for ( var i = 0 ; docName[i] != "." ; i++ )
                                {
                                    newName += docName[i];
                                }
                                newName += ext; // volledige naam van nieuw bestand inclusief png-extensie
                              
                                // nieuwe file maken met correctie extensie
                                saveInFile = new File( destFolder + '/' + newName );

                                return saveInFile;
                            }

                            /*********************************************************
                            getPNGOptions: Function to set the PNG saving options of the
                            files using the PDFSaveOptions object.
                            Hier worden de PNG opties beschreven (= als je een opslaan als selecteert, welke opties je aanvinkt en uitvinkt.
                            **********************************************************/
                            function getPNGOptions()
                            {
                              
                                // Hier worden de PNG opties beschreven (= als je een opslaan als selecteert, welke opties je aanvinkt en uitvinkt.
                                var pngExportOpts = new ExportOptionsPNG24();
                              
                                // Setting PNGExportOptions properties. Please see the JavaScript Reference
                                // for a description of these properties.
                                // Add more properties here if you like
                                pngExportOpts.antiAliasing = true;
                                pngExportOpts.artBoardClipping = false;
                                pngExportOpts.horizontalScale = 200;
                                //pngExportOpts.matte = true;
                                //pngExportOpts.matteColor = 0, 0, 0;
                                pngExportOpts.saveAsHTML = false;
                                pngExportOpts.transparency = true;
                                pngExportOpts.verticalScale = 200;

                                return pngExportOpts;
                            }

                            function getEpsOptions()
                            {
                                var epsExportOpts = new EPSSaveOptions();   // new save as options
                                epsExportOpts.compatibility = Compatibility.ILLUSTRATOR15;   // save as CS5
                                epsExportOpts.embedICCProfile=true;
                                epsExportOpts.embedAllFonts=true;
                                epsExportOpts.fontSubsetThreshold = 100.0;
                                epsExportOpts.pdfCompatible = true;
                                epsExportOpts.useCompression = true;
                                return epsExportOpts;  // save the file in the same foldere as the eps