[pdftex] \pdfobj extended [was: Forward looking object references]

Igor Khomyakov igorkh at optonline.net
Fri Mar 28 05:24:58 CET 2003


One possible solution is to assume zero width, height, and depth for
\pdfrefxform that points to a reserved xformnum. We can think of these
references as of special kind of \pdfliterals that also have zero dimensions
but importantly pdftex knows their relative position, and therefore it is
very convenient to include some useful pdf drawings, etc. If one needs to
specify the sizes, he or she can "box" the \pdfrefxform as in the following
example:

   \hbox to ... {\vbox to ... {\pdfrefxform\count1}

The real typesetting of the xform (the media box, etc) occurs when we issue
\pdfxform command -- at this time we already have the sizes of the xform.

The "xform forward references" should be very good for single-pass
typesetting of little fit-into-single-page things that should appear in a
document before their content (value) is known. For example: the total
number of pages (the example below in my previous email), or some summary
table, or a short table of contents that should be put at the beginning of a
document. I think that this functionality will be the most appreciated by
reporting applications that can save a lot by avoiding the second pass.

The other two reasons to implement this functionality are: 1) PDF format
supports it, and 2) since we already can reserve and use the numbers for
objects, it would be more consistent to have similar functionality for
xforms and ximages ;)


Best regards,
Igor.

----- Original Message -----
From: "The Thanh Han" <hanthethanh at users.sourceforge.net>
To: <pdftex at tug.org>
Sent: Thursday, March 27, 2003 9:48 PM
Subject: Re: [pdftex] \pdfobj extended [was: Forward looking object
references]


> I was thinking of it -- unfortunately it doesn't seem possible, as in
> order to use \pdfrefxform, the contents of the form must be known so
> pdftex can calculate how much space the form takes.
>
> It might be done using some tricks with primitives related pdfobj and
> pdfxform -- I am not sure but one can give a try. It ot course requires
> that you know pretty well how pdf works. Heiko, Hans or Martin can
> certainly say more about this.
>
> Theoretically it would be possible to make \pdfxform and \pdfximage work
> this way (given that when using with useobjnum, the form/image
> dimensions must be given). But what it would be good for? If there is a
> really good reason for doing it I will give another try ;)
>
> Thanh
>
> On Wed, Mar 26, 2003 at 10:19:02PM -0500, Igor Khomyakov wrote:
> > Thanh,
> >
> > Are you planning to implement the same functionality
> > (reserveobjnum/useobjnum) for \pdfxform and \pdfximage? For example:
> >
> > ------------------------------------------------
> > \pdfxform reservexformnum
> > \count1=\pdflasxform
> > Page 1 of \hbox{\pdfrefxform\count1}
> > \hrule
> > First page content ...
> > \vfill\eject
> > Page 2 of \hbox{\pdfrefxform\count1}
> > \hrule
> > Second page content ...
> > \setbox0=\hbox{\folio}
> > \pdfxform usexformnum \count1 0
> > \pdfrefxform\pdflastxform
> > \bye
> > --------------------------------------------------------
> >
> > Thanks!
> > Igor.
> >
> > PS: I compiled and ran the new version on Solaris 2.6 -- works nicely!
> >
> >
> > ----- Original Message -----
> > From: "The Thanh Han" <hanthethanh at hotpop.com>
> > To: <pdftex at tug.org>
> > Sent: Wednesday, March 26, 2003 3:36 AM
> > Subject: [pdftex] \pdfobj extended [was: Forward looking object
references]
> >
> >
> > > Hi,
> > >
> > >
> > > I extended the syntax of \pdfobj to:
> > >
> > > \pdfobj <object type spec>                              (h, v, m)
> > > <object type spec> --> reserveobjnum
> > >                     | [useobjnum <number>] [stream [<attr spec>]]
<object
> > contents>
> > > <object contents> --> <file spec>
> > >                     | <general text>
> > >
> > > When the optinal keyword `reserveobjnum' and `useobjnum' is not given,
> > > the behaviour is unchanged.
> > >
> > > Usage example:
> > >
> > > \pdfobj reserveobjnum
> > > \count0=\pdflastobj
> > >
> > > ....
> > >
> > > \pdfobj useobjnum \count0 {test}
> > > \pdfrefobj\pdflastobj
> > >
> > > (or one can use \immediate\pdfobj useobjnum ...  instead of
\pdfrefobj)
> > >
> > > If you use multiple \pdfobj useobjnum with the same object number, the
> > > result is undefined ;)
> > >
> > > The whole sources tarball is available at
> > > http://vinux.sourceforge.net/pdftex
> > >
> > > Further patches will be uploaded to tis location as well.
> > >
> > > Or one can use the texlive p4 server instead.
> > >
> > > Thanh
> > > _______________________________________________
> > > pdftex mailing list
> > > pdftex at tug.org
> > > http://tug.org/mailman/listinfo/pdftex
> _______________________________________________
> pdftex mailing list
> pdftex at tug.org
> http://tug.org/mailman/listinfo/pdftex



More information about the pdftex mailing list