Direct import of EPS outlines

We will move topics to this forum, once we've implemented the requested feature(s) and/or enhancement(s).
Post Reply

Would you like a Paste from EPS command?

Poll ended at Mon Dec 18, 2006 12:01 am

yes
1
33%
no
2
67%
 
Total votes: 3

lmnau
Posts: 2
Joined: Sun Dec 03, 2006 11:46 pm

Direct import of EPS outlines

Post by lmnau »

I find it bizarre that when dealing with fonts, you can't copy an outline out of Illustrator and paste it into the Character Cell. This would make things so much quicker and easier, and produce a better result, than having to export each character as a Hi Res bitmap or tiff, and then have the program reinterperate the contours.

While I love the end result of your program, having to export each character ouline first is an absolute pig of a workflow.

While EPS import was a standard feature of programs like Letraset, Font Studio, Font Lab, and some programs I can no longer run under Mac OS9, and they ranged in price from $100 upto the $10,000. the only one real left is FontLab and that sucks.

See what you can do.
portismedia
Posts: 13
Joined: Wed Feb 14, 2007 3:27 am
Location: Mississippi

I Agree EPS should be supported

Post by portismedia »

I have tried using vector graphics with FCP and the go crazy when cut and pasted. I tried importing them as WMF files and they are improved but still a mile away form the vector graphic I created in Illustrator CS.

I hope they consider improving this. Other font editors allow smooth trasnition from vector graphics.
fontomaker
Posts: 11
Joined: Fri Nov 26, 2004 12:38 pm

Post by fontomaker »

I requested EPS (or .AI) import, or clipboard pasting into FCP many years ago, nothing came out of it. I don't understand what people even do in FCP, surely not designing fonts from scratch. I can do things in my vector editor that FCP will never be able to do.

A native .EPS or .AI (Illustrator version 7 would do) import, without retracing the image (because of loosing details) would be a dream come true.
Bhikkhu Pesala
Top Typographer
Top Typographer
Posts: 9877
Joined: Tue Oct 29, 2002 5:28 am
Location: Seven Kings, London UK
Contact:

Post by Bhikkhu Pesala »

As far as I know, nothing has changed since this post. Font Creator still uses Truetype Quadratic Bezier Curves, not Postscript Type One Cubic Bezier Curves. I am sure that the internal format will never be changed, so import of postscript outlines will never give a one to one conversion, though I am sure Erwin will improve vector import if he can. I wonder, though, if it is worth the effort.

People do indeed design fonts from scratch in FontCreator. Many may scan bitmaps of fonts drawn on paper or cut and paste via the Windows clipboard.

All it comes down to is learning to use the drawing tools in FontCreator instead of those in Adobe Illustrator. If you have Corel Draw, you could try exporting to TTF from there, and then fix the font metrics etc., in FontCreator.
I can do things in my vector editor that FCP will never be able to do.
Have you tried persuading Adobe to produce a Truetype Export filter for their program? I can do things in FontCreator that Xara Extreme or Adobe Illustrator may never do — create Truetype Fonts. :D

Fontmaker, have you made any fonts yet?
Last edited by Bhikkhu Pesala on Wed Mar 21, 2007 8:32 am, edited 2 times in total.
My FontsReviews: MainTypeFont CreatorHelpFC15 + MT12.0 @ Win 10 64-bit build 19045.2486
Erwin Denissen
Moderator
Moderator
Posts: 11155
Joined: Fri Oct 04, 2002 12:41 am
Location: Bilthoven, The Netherlands
Contact:

Post by Erwin Denissen »

We would really like to add import and export functionality that handles EPS and other vector formats, but that would take a lot of time to implement.

Fortunately it is already possible to get a 99% perfect vector import, as described here:
Vector Grapahic (EPS, WMF, FILE) PROBLEMS

For now either accept a 99% perfect import or pay $649 and try to achieve 99.9% results with FontLab.
Erwin Denissen
High-Logic
Proven Font Technology
fontomaker
Posts: 11
Joined: Fri Nov 26, 2004 12:38 pm

Post by fontomaker »

Bhikkhu Pesala wrote:Fontmaker, have you made any fonts yet?
I've never made truetype fonts on PC since I'm personally not satisfied with the tools available. I did vector fonts easily on Acorn Archimedes (drag and drop my vector object simply onto a glyph, change kerning, spacing, etc, save, done.). I pixelled tons of fonts on old computer systems and for some PS1 Games.

BTW, below find an original exported Illustrator 7 ASCII file, I skipped all 'description' sections which 'look like' they can be skipped anyway, since we only want the vector data, fancy fillings and such can be ignored. This data is a font converted to curves, Helvetica Black, Letter A. Commands like %AI5_BeginLayer can be skipped too, since layers can be ignored. All Necessary Vector data can be found between "0 J" and LB:

%AI5_BeginLayer
1 1 1 1 0 0 0 0 0 0 Lb
(Layer 1) Ln
1 XR
0.25 w
2 j
[ ] 0 d
0 J
0.00 0.00 0.00 (Black) 0 1 Xx
*u
162.56 269.77 m < (1) This is the GREEN shape
133.75 269.77 l
147.87 319.66 l
162.56 269.77 l < (2) Endpoint is the same the startpoint(1) to close this shape
f
119.83 222.39 m < (3) This is the RED shape
125.05 240.76 l
170.49 240.76 l
175.91 222.39 l
221.35 222.39 l
171.46 361.63 l
125.05 361.63 l
75.16 222.39 l
119.83 222.39 l < (4) Again, tle last point has to be the same as (3) to close this shape
f
*U
LB
%AI5_EndLayer

The black shape on the left is the result after parsing the .AI file above.
Image

The full documentation of .AI7 can be found here (its big but IMO 70% of this documentation could be skipped since it contains data not needed for a simple shape import).
http://partners.adobe.com/public/develo ... Format.pdf

I'm just posting this to show that it looks like to me there is not much essential information which needs to be interpreted of the .AI file. I'm just a basic hobby programmer with little knowledge of bit of bits and bytes myself. I wouldn't be able to do it myself and it surely it will take weeks/months to interprete this data. I would like to help if possible, that's all.
Erwin Denissen
Moderator
Moderator
Posts: 11155
Joined: Fri Oct 04, 2002 12:41 am
Location: Bilthoven, The Netherlands
Contact:

Post by Erwin Denissen »

Thanks for your support. Your AI is an example that shows some basic features. We might be able to support such basic commands, but what does a file look like when it is actually created from scratch with Adobe Illustrator? How to cope with open contours, circles, curves and other objects?
Erwin Denissen
High-Logic
Proven Font Technology
fontomaker
Posts: 11
Joined: Fri Nov 26, 2004 12:38 pm

Post by fontomaker »

Yes, the AI i posted shows some very basic features: Lines.

Now, below is a FULL example of an Illustrator 7 format created from scratch. I don't want to scare you off since it looks weird, buy mind you, most of the sections can be simply ignored!

Mark the script below, copy it, past it into a text editor, save the text with the extension . AI and it can be back loaded into Adobe Illustrator. It contains a black circle.

Code: Select all

%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(TM) 7.0
%%For: (owner of this software)
%%Title: (Untitled3 *)
%%CreationDate: (22/03/07) (08:33 PM)
%%BoundingBox: 240 334 388 483
%%DocumentProcessColors: Cyan Magenta Yellow Black
%%DocumentNeededResources: procset Adobe_level2_AI5 1.2 0 
%%+ procset Adobe_packedarray 2.0 0
%%+ procset Adobe_ColorImage_AI6 1.1 0
%%+ procset Adobe_cshow 2.0 8
%%+ procset Adobe_cmykcolor 1.1 0
%%+ procset Adobe_customcolor 1.0 0
%%+ procset Adobe_typography_AI5 1.0 1
%%+ procset Adobe_pattern_AI3 1.0 1
%%+ procset Adobe_Illustrator_AI5 1.2 0
%AI3_ColorUsage: Color
%AI5_FileFormat 2.0
%%EndComments
%%BeginProlog
%%IncludeResource: procset Adobe_level2_AI5 1.2 0
%%IncludeResource: procset Adobe_packedarray 2.0 0
%%IncludeResource: procset Adobe_ColorImage_AI6 1.1 0
%%IncludeResource: procset Adobe_cshow 2.0 8
%%IncludeResource: procset Adobe_cmykcolor 1.1 0
%%IncludeResource: procset Adobe_customcolor 1.0 0
%%IncludeResource: procset Adobe_typography_AI5 1.1 0
%%IncludeResource: procset Adobe_pattern_AI3 1.0 1
%%IncludeResource: procset Adobe_Illustrator_AI5 1.2 0
%%EndProlog
%%BeginSetup
Adobe_level2_AI5 /initialize get exec
Adobe_packedarray /initialize get exec
Adobe_ColorImage_AI6  /initialize get exec
Adobe_cshow /initialize get exec
Adobe_cmykcolor /initialize get exec
Adobe_customcolor /initialize get exec
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
Adobe_pattern_AI3 /initialize get exec
Adobe_Illustrator_AI5 /initialize get exec
%%EndSetup
%AI5_BeginLayer
1 1 1 1 0 0 0 0 0 0 Lb
(Layer 1) Ln
1 XR
0.50 w
2 j
[ ] 0 d
0 J
0.00 0.00 0.00 1.00 (_89820080) 0 x
314.76 483.60 m                                   < Circle Description Data
355.73 483.60 388.99 450.34 388.99 409.37 c
388.99 368.39 355.73 335.13 314.76 335.13 c
273.78 335.13 240.53 368.39 240.53 409.37 c
240.53 450.34 273.78 483.60 314.76 483.60 c
f
LB
%AI5_EndLayer
%%PageTrailer
showpage
%%Trailer
Adobe_Illustrator_AI5 /terminate get exec
Adobe_level2_AI5 /terminate get exec
Adobe_packedarray /terminate get exec
Adobe_ColorImage_AI6 /terminate get exec
Adobe_cshow /terminate get exec
Adobe_cmykcolor /terminate get exec
Adobe_customcolor /terminate get exec
Adobe_typography_AI5 /terminate get exec
Adobe_pattern_AI3 /terminate get exec
%%EOF
This is the circle created in my vector program and exported it as .AI, which is the code above. If you like I can create more examples, which might be better to sent you per email though instead of spamming this forum.
Image
Last edited by fontomaker on Thu Mar 22, 2007 10:03 am, edited 1 time in total.
fontomaker
Posts: 11
Joined: Fri Nov 26, 2004 12:38 pm

Post by fontomaker »

And this is the same circle as above, except the top and left bezier curve points have been moved. See the image first:
Image

And the Code: (I skipped the the first sections, since they're always the same). EDIT: the only necessary thing changes is the %%BoundingBox: area, which is basicly a box discribing a 2d space area in which objects/shapes below will be drawn. Another thing that changes in the top area is the CreationDate and Time, if you'd like to interprete these :roll:

Code: Select all

%AI5_BeginLayer
1 1 1 1 0 0 0 0 0 0 Lb
(Layer 1) Ln
1 XR
0.50 w
2 j
[ ] 0 d
0 J
0.00 0.00 0.00 1.00 (_89820080) 0 x
314.76 483.60 m
355.73 483.60 388.99 450.34 388.99 409.37 c
388.99 368.39 355.73 335.13 314.76 335.13 c
273.78 335.13 240.53 368.39 240.53 409.37 c
240.53 483.54 240.27 483.60 314.76 483.60 c
f
LB
%AI5_EndLayer
fontomaker
Posts: 11
Joined: Fri Nov 26, 2004 12:38 pm

Post by fontomaker »

Image
%AI5_BeginLayer
1 1 1 1 0 0 0 0 0 0 Lb
(Layer 1) Ln
1 XR
0.50 w
2 j
[ ] 0 d
0 J
0.00 0.00 0.00 1.00 (_89820080) 0 x
317.76 482.10 m
358.73 482.10 391.99 448.84 391.99 407.87 c
391.99 366.89 358.73 333.63 317.76 333.63 c
276.78 333.63 243.53 366.89 243.53 407.87 c
164.67 481.21 232.92 559.21 317.76 482.10 c
f
LB
%AI5_EndLayer

Image

Code: Select all

%AI5_BeginLayer
1 1 1 1 0 0 0 0 0 0 Lb
(Layer 1) Ln
1 XR
0.50 w
2 j
[ ] 0 d
0 J
0.00 0.00 0.00 1.00 (_89820080) 0 x
317.76 482.10 m
352.75 482.10 391.99 448.84 391.99 407.87 c
391.99 366.89 358.73 333.63 317.76 333.63 c
276.78 333.63 243.53 366.89 243.53 407.87 c
164.67 481.21 282.77 482.10 317.76 482.10 c
f
LB
%AI5_EndLayer





Image

Code: Select all

%AI5_BeginLayer
1 1 1 1 0 0 0 0 0 0 Lb
(Layer 1) Ln
1 XR
0.00 0.00 0.00 1.00 (Black) 0 X
0.50 w
2 j
[ ] 0 d
0 J
0.00 0.00 0.00 1.00 (_89820080) 0 x
*u
317.76 482.10 m
352.75 482.10 391.99 448.84 391.99 407.87 c
391.99 366.89 358.73 333.63 317.76 333.63 c
276.78 333.63 243.53 366.89 243.53 407.87 c
164.67 481.21 282.77 482.10 317.76 482.10 c
b
298.92 455.71 m
277.17 389.71 l
358.92 373.21 l
298.92 455.71 l
b
*U
LB
%AI5_EndLayer
Erwin Denissen
Moderator
Moderator
Posts: 11155
Joined: Fri Oct 04, 2002 12:41 am
Location: Bilthoven, The Netherlands
Contact:

Post by Erwin Denissen »

Thanks for sharing more samples. Would it be sufficient for basic AI support, to only process following path construction operators:
m - changes the current point to x, y
l and L - appends a straight line segment
c and C - appends a Bézier curve *

* Bézier curves need to be converted to TrueType curves.

And of course always close open contours.
Erwin Denissen
High-Logic
Proven Font Technology
fontomaker
Posts: 11
Joined: Fri Nov 26, 2004 12:38 pm

Post by fontomaker »

Erwin Denissen wrote:Thanks for sharing more samples. Would it be sufficient for basic AI support, to only process following path construction operators:
m - changes the current point to x, y
l and L - appends a straight line segment
c and C - appends a Bézier curve *

* Bézier curves need to be converted to TrueType curves.

And of course always close open contours.
For me, definately! I never asked for more, simply because its not needed. On top of that, I always convert my created objects into shapes which can be broken down to exactly what you're looking into (m, l/L, c/C). Yay! :)

OK, here are 3 more:
Image

Code: Select all

%AI5_BeginLayer
1 1 1 1 0 0 0 0 0 0 Lb
(Layer 1) Ln
1 XR
0.25 w
2 j
[ ] 0 d
0 J
0.00 0.00 0.00 1.00 (_88477704) 0 x
111.28 737.97 m
112.38 714.71 l
109.60 714.71 l
109.07 718.81 108.34 721.73 107.41 723.49 c
105.90 726.32 103.89 728.40 101.37 729.74 c
98.86 731.08 95.56 731.75 91.46 731.75 c
77.50 731.75 l
77.50 655.98 l
77.50 649.89 78.15 646.09 79.47 644.57 c
81.32 642.53 84.18 641.50 88.03 641.50 c
91.46 641.50 l
91.46 638.80 l
49.41 638.80 l
49.41 641.50 l
52.92 641.50 l
57.11 641.50 60.09 642.77 61.84 645.31 c
62.92 646.87 63.45 650.43 63.45 655.98 c
63.45 731.75 l
51.53 731.75 l
46.90 731.75 43.61 731.41 41.66 730.73 c
39.12 729.80 36.95 728.02 35.15 725.39 c
33.35 722.76 32.27 719.20 31.93 714.71 c
29.15 714.71 l
30.32 737.97 l
111.28 737.97 l
f
LB
%AI5_EndLayer


Image

Code: Select all

%AI5_BeginLayer
1 1 1 1 0 0 0 0 0 0 Lb
(Layer 1) Ln
1 XR
0.25 w
2 j
[ ] 0 d
0 J
0.00 0.00 0.00 1.00 (_88477704) 0 x
*u
132.57 742.80 m
134.61 742.80 136.36 742.08 137.80 740.64 c
139.23 739.20 139.95 737.46 139.95 735.41 c
139.95 733.36 139.23 731.61 137.80 730.14 c
136.36 728.68 134.61 727.95 132.57 727.95 c
130.52 727.95 128.77 728.68 127.30 730.14 c
125.84 731.61 125.11 733.36 125.11 735.41 c
125.11 737.46 125.83 739.20 127.27 740.64 c
128.70 742.08 130.47 742.80 132.57 742.80 c
f
138.64 707.76 m
138.64 653.93 l
138.64 649.74 138.94 646.95 139.55 645.56 c
140.16 644.17 141.06 643.14 142.26 642.45 c
143.45 641.77 145.64 641.43 148.80 641.43 c
148.80 638.80 l
116.26 638.80 l
116.26 641.43 l
119.53 641.43 121.72 641.75 122.84 642.38 c
123.96 643.01 124.85 644.06 125.51 645.52 c
126.17 646.99 126.50 649.79 126.50 653.93 c
126.50 679.75 l
126.50 687.02 126.28 691.72 125.84 693.87 c
125.50 695.43 124.96 696.51 124.23 697.12 c
123.50 697.73 122.50 698.04 121.23 698.04 c
119.87 698.04 118.21 697.67 116.26 696.94 c
115.23 699.57 l
135.42 707.76 l
138.64 707.76 l
f
*U
LB
%AI5_EndLayer





Image

Code: Select all

%AI5_BeginLayer
1 1 1 1 0 0 0 0 0 0 Lb
(Layer 1) Ln
1 XR
0.25 w
2 j
[ ] 0 d
0 J
0.00 0.00 0.00 1.00 (_88477704) 0 x
111.28 737.97 m
112.38 714.71 l
109.60 714.71 l
109.07 718.81 108.34 721.73 107.41 723.49 c
105.90 726.32 103.89 728.40 101.37 729.74 c
98.86 731.08 95.56 731.75 91.46 731.75 c
77.50 731.75 l
77.50 655.98 l
77.50 649.89 78.15 646.09 79.47 644.57 c
81.32 642.53 84.18 641.50 88.03 641.50 c
91.46 641.50 l
91.46 638.80 l
49.41 638.80 l
49.41 641.50 l
52.92 641.50 l
57.11 641.50 60.09 642.77 61.84 645.31 c
62.92 646.87 63.45 650.43 63.45 655.98 c
63.45 731.75 l
51.53 731.75 l
46.90 731.75 43.61 731.41 41.66 730.73 c
39.12 729.80 36.95 728.02 35.15 725.39 c
33.35 722.76 32.27 719.20 31.93 714.71 c
29.15 714.71 l
30.32 737.97 l
111.28 737.97 l
f
*u
132.57 742.80 m
134.61 742.80 136.36 742.08 137.80 740.64 c
139.23 739.20 139.95 737.46 139.95 735.41 c
139.95 733.36 139.23 731.61 137.80 730.14 c
136.36 728.68 134.61 727.95 132.57 727.95 c
130.52 727.95 128.77 728.68 127.30 730.14 c
125.84 731.61 125.11 733.36 125.11 735.41 c
125.11 737.46 125.83 739.20 127.27 740.64 c
128.70 742.08 130.47 742.80 132.57 742.80 c
f
138.64 707.76 m
138.64 653.93 l
138.64 649.74 138.94 646.95 139.55 645.56 c
140.16 644.17 141.06 643.14 142.26 642.45 c
143.45 641.77 145.64 641.43 148.80 641.43 c
148.80 638.80 l
116.26 638.80 l
116.26 641.43 l
119.53 641.43 121.72 641.75 122.84 642.38 c
123.96 643.01 124.85 644.06 125.51 645.52 c
126.17 646.99 126.50 649.79 126.50 653.93 c
126.50 679.75 l
126.50 687.02 126.28 691.72 125.84 693.87 c
125.50 695.43 124.96 696.51 124.23 697.12 c
123.50 697.73 122.50 698.04 121.23 698.04 c
119.87 698.04 118.21 697.67 116.26 696.94 c
115.23 699.57 l
135.42 707.76 l
138.64 707.76 l
f
*U
LB
%AI5_EndLayer



And 2 intersected, overlapping objects:
Image

Code: Select all

%AI5_BeginLayer
1 1 1 1 0 0 0 0 0 0 Lb
(Layer 1) Ln
1 XR
0.00 0.00 0.00 1.00 K
0.50 w
2 j
[ ] 0 d
0 J
0.00 0.00 0.00 1.00 (_88477704) 0 x
*u
73.74 751.76 m
58.20 741.10 47.17 726.82 41.49 708.26 c
95.49 688.76 l
73.74 751.76 l
b
74.91 715.39 m
87.99 729.27 l
77.86 741.28 61.37 749.29 51.24 746.51 c
51.57 735.22 64.65 722.71 74.91 715.39 c
b
*U
LB
%AI5_EndLayer
[/code]





And a 3rd shape has been added...
Image

Code: Select all

%%EndSetup
%AI5_BeginLayer
1 1 1 1 0 0 0 0 0 0 Lb
(Layer 1) Ln
1 XR
0.00 0.00 0.00 1.00 K
0.50 w
2 j
[ ] 0 d
0 J
0.00 0.00 0.00 1.00 (_88477704) 0 x
*u
73.74 751.76 m
58.20 741.10 47.17 726.82 41.49 708.26 c
95.49 688.76 l
73.74 751.76 l
b
74.91 715.39 m
87.99 729.27 l
77.86 741.28 61.37 749.29 51.24 746.51 c
51.57 735.22 64.65 722.71 74.91 715.39 c
b
*U
84.24 756.27 m
90.99 741.64 l
98.87 765.64 l
84.24 756.27 l
b
LB
%AI5_EndLayer
Erwin Denissen
Moderator
Moderator
Posts: 11155
Joined: Fri Oct 04, 2002 12:41 am
Location: Bilthoven, The Netherlands
Contact:

Post by Erwin Denissen »

This might be something than can be added within a reasonable time frame. I've added this to the to-do list and hope to include it in the next upcoming release.
Erwin Denissen
High-Logic
Proven Font Technology
fontomaker
Posts: 11
Joined: Fri Nov 26, 2004 12:38 pm

Post by fontomaker »

Erwin Denissen wrote:This might be something than can be added within a reasonable time frame. I've added this to the to-do list and hope to include it in the next upcoming release.
:shock: :D
Thank you very much!!!

Well, I hope i'm not too greedy, but here is the absolute killer import which every Illustrator user would use: Auto Import with Auto Grabbing, Auto Kerning, see the image below:
Image
On the VERY left is a thin shape (4 points), this height discribes the height of the entire font to be imported, the width of the shape is not important and can be ignored.
From top to bottom:
On the top can be found 2 lines (shapes), each shape contains of 4 line segments. Their witdh is important, their height can be ignored.
Line1 (top): Is the entire witdh of each letter found below. All top lines would be found on the same height.
Line2 (middle): The kerning space for each letter found below. All these lines would be found on the same height as well.
Letter: The letter itself. They are all aligned on the proper Y-space and shouldn't be realigned. Obviously it needs some intelligence here to grab the letter out of the file and place it into the glyph.

The font contains all letters from ASCII code 32 to 126. The most important rule would be that Guidelines or letters must NOT overlap, and a big enough gap must be set from each letter to letter. The auto import function could be customised from which letter (32) to which letter (126) symbols will be found and assigned to. A Demo font in .AI format should be included. Further, proper adjustments could be done in FCP, but most of the work would be already done. :) I'm sure this will attract many new users.

It would be brilliant if FCP could create an .AI (in the format above) out of any Font it can read. You could export any .ttf, modify it in Illustrator (or alike), and then export it back into FCP. That's mindblowing.
Last edited by fontomaker on Thu Mar 22, 2007 6:02 pm, edited 2 times in total.
Post Reply