Thread View: adobe.postscript.programming
3 messages
3 total messages
Started by Stephen_Moye
Wed, 06 Dec 2006 17:29
Is this legal?: /(NameOfSomething)
Author: Stephen_Moye
Date: Wed, 06 Dec 2006 17:29
Date: Wed, 06 Dec 2006 17:29
33 lines
1683 bytes
1683 bytes
An author has sent us some graphics made with a program called "inkscape". The eps file has this coding:
/newlatin1font {findfont dup length dict copy dup
/Encoding ISOLatin1Encoding put definefont} def
/(Times-Roman-ISOLatin1) /(Times-Roman) newlatin1font
I don't think that I have ever seen parens used in this way before. It seems to produce this error in Distiller (I'm using Distiller 5 on unix):
12:27 prdsgm@snort:/<7>diagrams% still cone-on-square.eps
CID support library initialization completed.
Distilling:
PS file: cone-on-square.eps (8,832 bytes)
BEGIN MESSAGES: cone-on-square.eps
%%[ Error: Times-Roman-ISOLatin1 not found. Font cannot be embedded. ]%%
%%[ Error: invalidfont; OffendingCommand: findfont ]%%
Stack:
/Font
(Times-Roman-ISOLatin1)
/
(Times-Roman-ISOLatin1)
/
%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%
%%[ Warning: PostScript error. No PDF file produced. ] %%
JOB FAILED: cone-on-square.eps
END MESSAGES: cone-on-square.eps
Time: 0.6 seconds
12:28 prdsgm@snort:/<7>diagrams%
Re: Is this legal?: /(NameOfSomething)
Author: SaGS
Date: Thu, 07 Dec 2006 08:00
Date: Thu, 07 Dec 2006 08:00
33 lines
2414 bytes
2414 bytes
<Stephen_Moye@adobeforums.com> wrote in message
news:3bc27cf3.-1@webcrossing.la2eafNXanI...
> An author has sent us some graphics made with a program called "inkscape".
> The eps file has this coding:
>
> /newlatin1font {findfont dup length dict copy dup
> /Encoding ISOLatin1Encoding put definefont} def
>
> /(Times-Roman-ISOLatin1) /(Times-Roman) newlatin1font
> ...
> %%[ Error: Times-Roman-ISOLatin1 not found. Font cannot be embedded. ]%%
> ...
It is legal PostScript, but certainly with a different semantic
than what the code intends.
The "/(Times- ..." line in the code fragment above does the following:
- Push a litteral empty name on the operand stack; "/" by itself
is legal.
- Push the string "(Times-Roman-ISOLatin1)"; note that "()" are
delimiters, so there's no need for whitespace between "(" and the
preceding token.
- Push a second empty litteral name.
- Push the string "(Times-Roman)".
- Execute "newlatin1font". This looks or a font named "Times-Roman",
reencodes it, then defines a font with an empty name. Note that
in some circumstances names and strings are interchangable, so
"(Times-Roman)" can be used instead of "/Times-Roman".
- The 1st "/" and "(Times-Roman-ISOLatin1)" are forgotten on the stack.
A consequence of the above it that no font gets defined with the name
"Times-Roman-ISOLatin1", which later leads to the error you mention.
Re: Is this legal?: /(NameOfSomething)
Author: Stephen_Moye
Date: Thu, 07 Dec 2006 10:50
Date: Thu, 07 Dec 2006 10:50
3 lines
753 bytes
753 bytes
Thank you -- that is very clear indeed. SGM
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads