This page will hold lecture notes, and pointers to other useful material for the G53DOC course.
The G53DOC Coursework is now available and is due in on 17th May 2013 at 5pm. Electronic submission details will be listed shortly. The question is available in this PDF and there are some support files available here. The coursework is to be submitted as a single .zip
or .tar.gz
archive via the cw submit
system, with the submission ID 533. For more information on cw submit
, see here.
The support files contain some sample Encapsulated PostScript files for you to experiment with, as well as the definition of the Flowable
interface. Also, provided is Space.java
, which implments a simple Flowable
object that can be used to insert horizontal and/or vertical space into a flow.
Lectures are on Mondays at 2pm (in C1 in the Exchange) and Thursday mornings at 11am (in B11 in the Amenities building). There is also a lecture slot at Friday 10am which we will use occasionally (look out for announcements).
A brief overview of how Text is stored on a computer from the earliest codes to ASCII and Unicode.
A look at various algorithms to search text including the Boyer-Moore algorithm.
Continuing our look at various algorithms to search text this time, Burrows-Wheeler Transform.
Also includes an introduction Page Description Languages.
An introduction to the Adobe Graphics Model.
An introduction to Adobe PostScript.
Continuing our look at Adobe PostScript.
Introduction to the history behind the creation of PDF.
You will find it useful to read the The Camelot Project paper and this interview with John Warnock from the ‘Seybold Report’as well.
The internals of PDF.
Some useful resources are:
How the COS objects in PDF are organized to form the structures in PDF.
An introduction to the terminology of Typography…
No slides for this lecture but we looked at how to construct a simple line-breaking algorithm in PostScript, and started to consider the algorithm presented in Don Knuth and Michael Plass's seminal paper.
A Java implementation of the TeX line breaking algorithm can be found here. It makes use of FontBox to parse the afm file Times-Roman.afm
, which is compiled in the folder libs
. You will need to specify this in the classpath when compiling or running the code, e.g. with this flag:
-cp libs/FontBox-0.1.0/lib/FontBox-0.1.0.jar:. *.java 2>&1
The class Typeset
takes the following parameters:
java Typesetter font point_size measure (in inches)
Although the values of font
and point_size
are hard-coded in a couple of places (you may want to fix this). It will output the typeset paragraph as PostScript to stdout and debugging messages to stderr.
I suggest you try some of the ‘Further Applications’ specified in the Knuth-Plass paper. This should be easy to do by modifying Typeset.java
to add()
the correct (Box
, Glue
and Penalty
) objects into the Typesetter
.
Somethings to try would be:
The sample Type 3 font created in the lecture can be found here.
An Introduction to Electronic Books. Most of the exmaples of EPUB in this lecture are based around the EPUB2 standard.
Coverage of EPUB3, I strongly recommend you read both Content Documents 3.0 and the Publications 3.0 documents from the EPUB3 standard.
Also several sample EPUB3 documents can be found here, which cover most of the EPUB3 features.
Slides from the second half of this lecture, there may be the odd extra example in these but are otherwise identical to the other PDF.
A whistle-stop overview of the whole course.
Labs are on Mondays at 15:00, in CS-B52.