[comp.lang.postscript] Downloading Adobe fonts

marcg@phred.UUCP (Marc Greisen) (01/13/88)

We recently bought a postscript printer (A QMS ps 800 II) to use with
our word processing package in the preparation of our service manuals.
Please note that this printer is not to be used by a MacIntosh or
connected to AppleTalk.

We also bought some fonts from Adobe that match what we currently use
in our manuals.

Heres the catch.  If we want to use the fonts we have to download them
from a Mac.  Adobe only supports downloading of it's fonts from a Mac.
I would like to have the fonts downloaded from the Vax after a reboot
(the power often goes out here during the winter months).  I have
talked with Adobe technical support and they do not seem willing to
talk about working out a way I can download from my Vax.

Has anyone else worked this out?  Is Adobe so tied to Apple that they
will only work with Macs?  I am willing to put in the programming 
effort to accomplish the downloading but I need some pointers on the
way it's done.


		Marc Greisen
		Physio-Control Corp.,
		Redmond Washington
		(206)867-4535
		...tikal!phred!marcg
		

sob@harvisr.harvard.edu (Scott Bradner) (01/13/88)

It is even more stupid than you think.  The "old" Adobe fonts can be
made into files that can be downloaded from the non-mac host without
problem. ( We've been doing this for our linotron & laserwriter for
quite a while. )  In the name of improvement, Adobe changed to a non
copy protected version of the font, the old one was software limited
to installation on just one ( or 5 ) printer, not types of printers,
the Adobe install program did something with the printer serial number.

When we went out and purchased a new Adobe font a while ago ( Garamond,
if that is important, I don't think it is ), we found out that the
procedure had changed and now the non-copy protected fonts are binary
not ascii with no way to convert them, and transcript's communication
program, (pscom) cannot deal with binary font files.  After much
"discussion" with the person at Adobe tech support ( some of it quite
bitter from my end ), she agreed to swap my "new" font for an "old" font.

I don't know if this can be a standard procedure, they will run out
of "old" fonts someday. ( As it turns out, we did not go through 
with the swap, the Garamond was for a single job & it was not worth
the pain )

Andy are you listening? Can anything be done so that Adobe's fonts
can be used with Adobe's own program?

Scott Bradner
Harvard University

jtkohl@athena.mit.edu (John T Kohl) (01/13/88)

In article <1934@phred.UUCP> marcg@phred.UUCP (Marc Greisen) writes:
>...
>We also bought some fonts from Adobe that match what we currently use
>in our manuals.
>
>Heres the catch.  If we want to use the fonts we have to download them
>from a Mac.  Adobe only supports downloading of it's fonts from a Mac.

I'd be interested in knowing how they can sell fonts for PS printers
which don't do AppleTalk (or do they not sell such fonts?)  We have many
DEC ScriptPrinters (LN03R's) and a couple LPS40's, and I am trying to
convince some people to get Palatino for them.  But none of them speak
AppleTalk.  The LN03R's speak RS232, and the LPS40's speak DECNET.

Has anybody bought extra fonts for these printers?
----
John Kohl
MIT/Project Athena

greid@ondine (Glenn Reid) (01/15/88)

Adobe fonts currently are distributed in two formats: MS-DOS and
Macintosh diskettes.  There is a slightly different file format for
each of these media.  The Macintosh font programs are in a format
designed by Apple:  they are stored as POST resources.  The PC format
is a fairly simple one that we designed at Adobe.  The fonts themselves
are largely hexadecimal data, and each of the file formats is designed
to permit this segment of the fonts to be compressed to binary in order
to save space.

Our original font offerings were copy-protected by a software mechanism
that produced fonts that would only work on a printer for which the
font was initialized.  This copy protection has been removed.  The
ability to produce portable (ASCII) fonts was also removed, to minimize
the ability to "port" these fonts to other systems, given that the
licensing agreement still enforces use on a specified number of
printers (either 1 or 5, I think).

The one fly in this ointment is that there exist people who only need
to use the fonts on a single printer, from a single host, but who
happen to need it on a system which is neither a Macintosh nor an IBM
PC (for example, a Sun or a Vax).

Adobe has produced a document describing the file formats of the
Macintosh and PC font products, and it is not terribly difficult to
write a utility to convert them for use on another system.  We do not
encourage this as a product offering because of the licensing agreement
for the fonts themselves.  However, for individual users, we are happy
to assist you in overcoming this hurdle so that you can use our font
products from other systems.

You can call Adobe technical support and ask for the document entitled
"Supporting Downloadable PostScript Fonts."  The number is 415-961-4400.
(I'd appreciate it if you don't ask for me directly--send me mail if you
want to contact me).

Glenn Reid
Adobe Systems
PostScript Software Support

mg@cidam.rmit.oz (Mike A. Gigante) (01/16/88)

The format of the binary font files is described in an Adobe document
which is part ofd the postscript developer's kit. This plus the red & blue
books should allow you to do what you want.  I don't have the documents
or books here at home so I'm not sure how much work would be involved.
I wouldn't be surprised if you had to write a bit of code, but it would
seem quite do-able.

Get the developer's kit and take a look.  It is available free from
Adobe.

eriks@yunexus.UUCP (Eriks Rugelis) (01/18/88)

add me to the list of people interested in downloading Adobe fonts
without using a Macintosh...  all of my Postscript printers are
attached via serial ports to time-sharing systems (Mac's don't qualify!!)

hello Adobe?  are you listening?

P.S.
how about an Adobe supplied controller that speaks Ethernet (and NOT Appletalk)
the only one out there now is on an LPS40 and THAT box exceeds
our budget by a significant amount

Eriks

-- 
Voice: Eriks Rugelis Ma Bell: 416/736-5257 x.2688 NetNorth: eriks@yulibra
Soon to be: eriks@libra.yorku.ca UUCP: seismo!mnetor!yunexus!eriks

tj@gpu.utcs.toronto.edu (Terry Jones) (01/19/88)

In article <1934@phred.UUCP> marcg@phred.UUCP (Marc Greisen) writes:
>Heres the catch.  If we want to use the fonts we have to download them
>from a Mac.  Adobe only supports downloading of it's fonts from a Mac.
>I would like to have the fonts downloaded from the Vax after a reboot
>(the power often goes out here during the winter months).  I have
>talked with Adobe technical support and they do not seem willing to
>talk about working out a way I can download from my Vax.

From discussions I have had with Adobe there is a way to take the
fonts and make a "text" form of them. You do this on a Mac as you
initialize them for a printer, then you can take them to a PC or VAX
for downloading.

This may have changed but I haven't heard that it has.

jos@idca.tds.PHILIPS.nl (Jos Vos) (01/06/89)

Is somebody having a simple program (to be used on UNIX) to download
Adobe fonts to a PostScript printer?
I've got a nice (?? :-) MS-Dos diskette with an MS-Dos application,
but I want that application run on UNIX.

We already traced the PC-to-printer channel, and I assume I can find
out how it is done (most of the font file is sent in hex, some parts
are sent as-they-are), but it's always easier to get a ready-to-use
program.

-- 
-- ######   Jos Vos   ######   Internet   jos@idca.tds.philips.nl   ######
-- ######             ######   UUCP         ...!mcvax!philapd!jos   ######

syd@dsinc.UUCP (Syd Weinstein) (01/10/89)

In article <755@ssp15.idca.tds.philips.nl> jos@idca.tds.PHILIPS.nl (Jos Vos) writes:
>Is somebody having a simple program (to be used on UNIX) to download
>Adobe fonts to a PostScript printer?
>I've got a nice (?? :-) MS-Dos diskette with an MS-Dos application,
>but I want that application run on UNIX.
That hex is the font download.  As a user that has the postscript
printer on my Unix system, what I did was 'tap' the line from my PC
to the printer and downloaded each file once, saving what it sent.
(Later I did the same thing using their parallel downloader when that
came out and my Sun traping the output to a file.)

I now just 'cat' that info to the printer and it works fine.  I did strip
off the extra garbage header that Adobe used to put on the old serial
down load.  The newer parallel download program they have does not
put on any extra garbage and is perfect for a capture.



-- 
=====================================================================
Sydney S. Weinstein, CDP, CCP                   Elm Coordinator
Datacomp Systems, Inc.				Voice: (215) 947-9900
{allegra,bpa,vu-vlsi}!dsinc!syd	                FAX:   (215) 938-0235

jimi@h-three.UUCP (jimi) (01/11/89)

In article <755@ssp15.idca.tds.philips.nl>, jos@idca.tds.PHILIPS.nl (Jos Vos) writes:
> Is somebody having a simple program (to be used on UNIX) to download
> Adobe fonts to a PostScript printer?
> I've got a nice (?? :-) MS-Dos diskette with an MS-Dos application,
> but I want that application run on UNIX.
> 
> We already traced the PC-to-printer channel, and I assume I can find
> out how it is done (most of the font file is sent in hex, some parts
> are sent as-they-are), but it's always easier to get a ready-to-use
> program.

Here is a program that "`unpacks` IBM PC-format Adobe PostScript fonts
into a downloadable form" on UNIX systems.

Input is *___.PFB files from Adobe distribution diskettes; output is
fonts that are ready to be downloaded.

Usage: unfont [ -v ] [ files ]

	-v	Prints execution information on the standard error.

Example usage (unpacks IBM PC version of Adobe's Palatino Roman):

	unfont POR_____.PFB > PalatinoR.down

N.B. Be sure to delete my signature at the end of this posting.

__________________________________CUT_HERE______________________________________
/*
 * NOTICE
 *
 * Copyright 1988, 1989 by h-three Systems Corporation.
 *
 * Permission is hereby granted for this software's free reproduction
 * and modification for non-commercial purposes, provided that this
 * notice is retained. Commercial enterprises may give away copies
 * as part of their products provided that they do so without charge,
 * that they retain this notice, and that they acknowledge the source
 * of the software.
 *
 *	PostScript is a registered trademark of Adobe Systems Incorporated.
 *	IBM is a registered trademark of International Business Machines
 *	  Corporation.
 *
 *	h-three Systems Corporation
 *	100 Park Drive Suite 204/ P.O. Box 12557
 *	Research Triangle Park, NC  27709
 */

#ifdef NOWHAT
static char *sccsid = "%W% - %E%";
#endif

/*
 * unfont.c
 *
 * usage: unfont [ -v ] [ files ]
 *	-v 	Prints execution information on the standard error.
 *
 * Unpacks IBM PC-format PostScript fonts into a downloadable form.
 *
 */

char *USAGE = "\
usage: unfont [ -? ] [ -v ]  [files ]\n\
	-?	Prints this message.\n\
	-v 	Prints execution information on the standard error.\n\
";

#include <stdio.h>
#include <fcntl.h>
#include <ctype.h>
#include <varargs.h>

#define OK	0
#define FAILURE (-1)
#define Failed(x)	((x) == FAILURE)
#define TRUE	1
#define FALSE	0
typedef char bool;
#define STREQ(a,b)	(strcmp(a,b) == 0)

FILE *fp;

/*
 * used to convert nibbles (n0 is least sig) to ascii-hex
 */

#define N0(c)	    hexbyt[((c) & 0x000f)]
#define N1(c)	    N0((c) >> 4)

char hexbyt[] = "0123456789ABCDEF";

/*
 * vars controlled by command line options
 */

bool verbose = FALSE;			/* be verbose */

extern char *optarg;			/* getopt(3) control vars */
extern int optind;
extern int errno;

char *infile;

char *progname;				/* for error() */

char *strchr(), *strrchr();
long stol(), getparm();

int mygetc();
void dounfont();
long getcount();
void bintohex();

main(argc, argv)
int argc;
char **argv;
{
    register int c;
    bool showusage = FALSE;			/* usage error? */

    /*
     * figure out invocation leaf-name
     */

    if ((progname = strrchr(argv[0], '/')) == (char *) NULL)
	progname = argv[0];
    else
	progname++;

    argv[0] = progname;				/* for getopt err reporting */

    /*
     *	Check options and arguments.
     */

    progname = argv[0];
    while ((c = getopt(argc, argv, "v")) != EOF)
	switch (c)
	{
	    case 'v':				/* toggle verbose */
		verbose = ! verbose;
		break;

	    case '?':
		showusage = TRUE;
	}

    if (showusage)
    {
	(void) fprintf(stderr, "%s", USAGE);
	exit(1);
    }

/* unfont stuff		*/

    if (argv[optind])
    {
        for ( ; argv[optind]; optind++)
	{
	    if (!(fp = fopen(argv[optind], "r"))) {
		error(0, "can't open input file '%s'", argv[optind]);	
		continue;
	    }

	    infile = argv[optind];
	    dounfont();
	    close(fp);
	}
    }
    else
    {
	infile = "<stdin>";
	fp = stdin;
        dounfont();
    }
    exit(0);
}

long getcount();

void 
dounfont()
{
    register int c; 
    register int ch;
             long count;
    register int i;

    for (;;)
    {
	if ((c = mygetc()) != 0x80) {
		error(0, "not a proper font data segment '%s'", infile);
		error(0, "foobar char is 0x%x", c);
		exit(1);
	}
	c = mygetc();
	switch (c) {
	case 1:		
		/* get count, output count bytes to stdout	*/
		count = getcount();
		if (verbose)
		    fprintf(stderr, "case1 count is %ld\n", count);
		for (i=0; i<count; i++)
    			putchar(mygetc());
		break;
	case 2:		
		/* get count, convert count bytes to hex, output	*/
		/* to stdout						*/
		count = getcount();
		if (verbose)
		    fprintf(stderr, "case2 count is %ld\n", count);
		bintohex(count);
		break;
	case 3:		
		/* reached EOF; next file, please 			*/
		if (verbose)
		    fprintf(stderr, "logical eof encountered\n");
		return;

	default:
		error(0, "not a valid segment type '%s'", infile);	
		return;
	}
    }
}

/* 
 * getc for error-checking	
 */

int
mygetc()
{
	int ch;
    	if ((ch = getc(fp)) == -1) {
	    error(-1, "unexpected eof on input in '%s'", infile);
	    exit(1);
	}
    	return(ch);
}

/*
 * get count of bytes from segment header
 */

long
getcount()
{
	int i;
	long count = 0;

    	for (i=0; i<4; i++)
       		count += ((long) mygetc()) << (i * 8);
	return(count);
}

/* 
 * convert binary to ASCII hex and write it to stdout
 */

void
bintohex(count)
long count;
{
	int ch;
	long i;

	for (i=0; i<count; i++) {
	        if ((i % 30) == 0)
		    putchar('\n');
   		ch = mygetc();
    		putchar(N1(ch));
    		putchar(N0(ch));
	}
}

/* end of unfont stuff

/*
 * error(errn, arglist)
 *	report an error to stderr using printf(3) conventions.
 *	Any output is preceded by '<progname>: '
 *	If 'errn' is non-zero, it is assumed to be an 'errno' and its
 *	associated error message is appended to the output.
 */

/*VARARGS*/
error(errn, va_alist)
int errn;
va_dcl
{
    va_list arglist;
    register char *format;
    extern char *sys_errlist[];
    extern int sys_nerr;
    extern int errno;

    if (errn == -1)			    /* use errno if -1 */
	errn = errno;

    va_start(arglist);
    format = va_arg(arglist, char *);
    (void) fprintf(stderr, "%s: ", progname);
    (void) vfprintf(stderr, format, arglist);
    va_end(arglist);

    if (errn)
	if ((errn > 0) && (errn <= sys_nerr))
	    (void) fprintf(stderr, " (%s)\n", sys_errlist[errn]);
	else
	    (void) fprintf(stderr, " (unknown errno=%d)\n", errn);
    else
	(void) fprintf(stderr, "\n");
}
-- 
Jim Ingram	          uunet!h-three!jimi | jimi%h-three@uunet.uu.net
h-three Systems Corporation   P.O. Box 12557 RTP NC 27709   919 549 8334

paul@ardent.UUCP (Paul Ausick) (01/12/89)

> 
> Here is a program that "`unpacks` IBM PC-format Adobe PostScript fonts
> into a downloadable form" on UNIX systems.
> ....

Does anyone have a similar program to unpack Mac-format Adobe fonts to a
Unix downloadable form? I've got a couple of Adobe fonts I use on the Mac
that I'd like to get on my Unix system.

Thanks.


-- 
/Paul Ausick
Ardent Computer Corporation
880 West Maude Ave.		uucp: uunet!ardent!paul
Sunnyvale, CA 94086		408/732-0400

jos@idca.tds.PHILIPS.nl (Jos Vos) (01/12/89)

In article <49@dsinc.UUCP> syd@dsinc.UUCP (Syd Weinstein) writes:

>That hex is the font download.  As a user that has the postscript
>printer on my Unix system, what I did was 'tap' the line from my PC
>to the printer and downloaded each file once, saving what it sent.
>(Later I did the same thing using their parallel downloader when that
>came out and my Sun traping the output to a file.)

I agree. I did *exactly* the same, but I wouldn't be forced to do
the same for each new font I buy. So, it's much easier to have a
program...

-- 
-- ######   Jos Vos   ######   Internet   jos@idca.tds.philips.nl   ######
-- ######             ######   UUCP         ...!mcvax!philapd!jos   ######

prc@maxim.ERBE.SE (Robert Claeson) (01/12/89)

In article <1652@ardent.UUCP>, paul@ardent.UUCP (Paul Ausick) writes:

> > Here is a program that "`unpacks` IBM PC-format Adobe PostScript fonts
> > into a downloadable form" on UNIX systems.

> Does anyone have a similar program to unpack Mac-format Adobe fonts to a
> Unix downloadable form? I've got a couple of Adobe fonts I use on the Mac
> that I'd like to get on my Unix system.

Or a program to convert Adobe's screen fonts for the MacIntosh to MS-Windows
screen fonts? I've got a couple of Adobe's Mac screen fonts that I'd like
to use on a PC with MS-Windows.
-- 
Robert Claeson, ERBE DATA AB, P.O. Box 77, S-175 22 Jarfalla, Sweden
"No problems." -- Alf
Tel: +46 758-202 50  EUnet:    rclaeson@ERBE.SE  uucp:   uunet!erbe.se!rclaeson
Fax: +46 758-197 20  Internet: rclaeson@ERBE.SE  BITNET: rclaeson@ERBE.SE

bezanson@adobe.COM (Brian Bezanson) (01/17/89)

In article <455@maxim.ERBE.SE> prc@maxim.ERBE.SE (Robert Claeson) writes:
>Or a program to convert Adobe's screen fonts for the MacIntosh to MS-Windows
>screen fonts? I've got a couple of Adobe's Mac screen fonts that I'd like
>to use on a PC with MS-Windows.

Adobe does have screen fonts available for MS-DOS machines running either
windows or ventura publisher (GEM). The screen fonts are available directly
from Adobe or CompuServe. If you would like fonts from Adobe, you can contact 
our Amsterdam office (for European customers, at 011-31-20-575-3193).
---------------
Brian Bezanson
Adobe Systems
bezanson@adobe.com@decwrl.dec.com

Standard Disclaimers apply.