Rubriken:
Last Modified: 15. June 2004
von
D. Droege
|
|
(Old) NEWS
June 2004:
There is a new Version of PDFViewer (1.41) available.
It provides Compact Font Format (CFF, aka Type1C)
and TrueType (TTF) support using external programs.
See below.
The Application
PDFViewer is an application to view so called PDF
files on NEXTSTEP/OpenStep Systems. PDF is Adobes "Portable
Document Format", intended to make media-rich documents accessible
on any kind of computer and system platform.
The PDF format is used by the Adobe Acrobat suite of programs.
For more information about PDF have a look at the
Adobe web site or at the
PDF specification.
PDFViewer runs on all Next/OpenStep systems since NEXTSTEP 3.1.
It is "quad-fat", that is, compiled for Motorola (NeXT), Intel, SPARC and HP-PA
architectures. PDFViewer is freely available and can be
found on most major Nextstep FTP archive sites.
In case you can't locate it on a FTP server near you, or if you want to
try a possibly newer version not yet uploaded to the archives, you might
want to look into my
FTP download area.
Be warned though that such newer versions might not
yet be as stable as the uploaded ones.
For further information about the program have a look into the
Readme file.
PDFViewer is "localized" and provides English,
German and French as languages for its user interface.
Security and Encryption
The PDF format allows to encrypt documents. Though this method is
proven not to be as secure as desired (look here for
details on (un-)security of PDF files),
appropriate decryption must be provided by the PDF reading
program to view such documents. PDFViewer provides
decryption if equiped with an additional bundle ("Plug-In").
Due to legal reasons, this bundle is only available here at my
FTP download area as
Standard.pdfcrypt.tar.gz.
The current (as of 1997) U.S. laws disallow the export of such
cryptographic software, while importing it is legal.
You may thus download it from the above place if you live
in the U.S, but you should not place it in a public place
where it could be transfered to another country.
Here in Germany, usage and distribution of the bundle are not
restricted by any laws, at least not for now (and hopefully
this won't change, though some bone heads try to).
For any other country you should know yourself.
Compact Font Format and TrueType support
[Attention: There was a bug in cfftot1
included in the lcdf-typetools-2.2 package.
Please upgrade to the -2.4 package.]
In June 2004 I added support for CFF and TrueType fonts embedded in PDF files
after I happily found the cfftot1 program which is part
of Eddie Kohlers LCDF Typetools
and ttf2pt1 at
http://ttf2pt1.sourceforge.net/.
As both programs are rather tricky to compile on Nextstep or Openstep
I provide binaries for both in my download area
(see Locations below).
They are compiled using Nextstep 3.3 and run on Openstep as well.
cfftot1 and its friends can be found in the
lcdf-typetools-2.4.NI.b.tar.gz package.
It needs a special compiler, therefore I can only provide
binaries for m68k and iX86 machines.
ttf2pt1 is in the
ttf2pt1-3.4.4_ModDr.NIHS.b.tar.gz package.
I had to modify it a little to deal with nameless embedded
TrueType fonts (as generated by ghostscript e.g.).
You can find the modifications in the file
ttf2pt1-3.4.4.newNOpt.diff, additionally I will
suggest these modifications for inclusion in the official release.
To use the CFF to Type1 conversion set a default for PDFViewer, like
dwrite PDFViewer CFFtoPFAProg "cd '%s'; /use/local/bin/cfftot1 -q -a -o %s.pfa %s.cff"
The first '%s' will be replaced with the name of the temporary
directory (/tmp by default, see below), any further '%s' (up to 3)
will be replaced with the font name, e.g. 'Optima-Oblique'.
Similar, to use the TrueType to Type1 conversion,
set the TTFtoPFAProg default for PDFViewer, like
dwrite PDFViewer TTFtoPFAProg "cd '%s'; /usr/local/bin/ttf2pt1 -e -G a -l latin1 -N %s %s.ttf"
As with CFFtoPFAProg, the first '%s' will be replaced with the name of the temporary
directory (/tmp by default, see below), any further '%s' (up to 3)
will be replaced with the font name, e.g. 'Tahoma'.
If you want to use another directory than /tmp as scratch directory
for conversion, change this with
dwrite PDFViewer FontConvDir '/some/other/temp/dir'
Currently, the generated files in FontConvDir are
not deleted but kept and reused if they occur in other documents.
This might pose problems with partially included fonts.
If so, please drop me a note and a suggestion what to do with these files.
Compiling the lcdf-typetools
It is rather tricky to copmpile the LCDF Typetools
on Openstep and even more on Nextstep.
Here are some hints: The official Openstep C/C++ Compiler (gcc version 2.7.2.1,
NeXT-version cc-744.13) is not capable to compile the LCDF Typetools
due to his rather limited C++ support.
I was successful using the "egcs-2.91.66" release I installed
long ago on my Openstep system. This beast is available at the
PEANUTS-Archive in
this directory as egcs-i386.1.1.2.2.NI.b.tar.gz resp.
egcs-m68k.1.1.2.2.NI.b.tar.gz.
(This is the
gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release) version)
for Openstep:
running './configure --without-kpathsea' and 'make' (GNU make!)
produced a usable cfftot1 (besides a lot of other programs).
for Nextstep:
install egcs-2.91.66 (see above), then in file
/usr/local/lib/gcc-lib/i386-next-nextstep3/egcs-2.91.66/specs.nextstep3
delete '-read_only_relocs suppress' from the line behind '*link:'
then you need some include files from an Openstep installation
into the directory /usr/local/i386-next-nextstep3/include/
(or /usr/local/m68k-next-nextstep3/include/ if you work
on black hardware).
The needed files come from an Openstep /usr/include/bsd directory and are
sys/cdefs.h
i386/endian.h
i386/types.h
m68k/endian.h
m68k/types.h
hppa/endian.h
hppa/types.h
sparc/endian.h
sparc/types.h
machine/endian.h
machine/types.h
Additionally, you must create a symbolic link:
ln -s . /usr/local/i386-next-nextstep3/include/bsd
(or for "m68k" ... you get the picture)
I'm not sure, if this is really all, but this should at least
solve most of the problems
Compiling the ttf2pt1
Unpack the ttf2pt1-3.4.4 package from Sourceforge,
apply the diff-file ttf2pt1-3.4.4.newNOpt.diff
using the 'patch' program
(or simply get the modified source from my download area,
the package is called ttf2pt1-3.4.4_Dr.s.tar.gz).
There is no ./configure, so you have to tweak the Makefile.
It uses some unusual methods, esspecially for installing,
so you will have to poke around quite a bit.
But copying the generated executables to the desired location
should work as well.
You'll need some additional files: the getopt routines
from some recent GNU software, e.g. make-3.80
(the needed files are
getopt.c getopt1.c getopt.h gettext.h).
Then, you need an implementation of snprintf().
There is one available at
http://www.ijs.si/software/snprintf/
which worked fine for me - just copy the files
snprintf.c and snprintf.h
into the ttf2pt1-3.4.4 directory.
Then extend the list of .o files to be
generated and linked with ttftpt1 by
getopt.o getopt1.o and snprintf.o.
Don't forget to add the option -Dstrdup=NXCopyStringBuffer
to the CFLAGS definition.
Those were the essential steps I did to get it compiled.
Your mileage may vary.
Status
Currently, further development of PDFViewer
occurs occasionally at best. The latest version uploaded to the archives ist
v1.22b, the latest available one is v1.41 (June 2004).
See the the README file for new features.
The successor of Openstep, Apple's MacOS X (Server)
has its own PDF viewing capabilities, since PDF becomes its
central graphics format (replacing PostScript).
Some initial work to make PDFViewer
a native OpenStep application had been done late in 1997.
This version of PDFViewer (version 2.0-alpha)
is available at the local download area (see above),
but is very unstable, not reliable and not recomended to use.
This pre-version is available for Rhapsody DR2 (PPC and Intel)
and for Openstep 4.x.
Warning: The 2.0 versions are not recomended to use.
Please use version 1.41 which runs fine on any Nextstep/Openstep
system since 3.1.
Locations
Here are some FTP locations where you can get PDFViewer
from. These are large servers and thus rather suitable for
downloads. (If you come across other interesting locations, let me know.)
The exact file names vary according to PDFViewer's current
version number, therefore the links point to the directory it lives in.
Sorry - I don't know of any server in the U.S. (yet).
If you'd like to see any further information here about
PDFViewer please
drop me a note.
Detlev Droege,
University of Koblenz,
Dept. of Computer Science,
P.O.Box 201 602, 56016 Koblenz, Germany,
EMail:
droege@informatik.uni-koblenz.de
Fon: +49-261-287-2769 Fax: +49-261-287-100-2769
|