[luatex] combining files with pure LuaTeX

Reinhard Kotucha reinhard.kotucha at web.de
Sun Sep 26 16:17:06 CEST 2010


On 26 September 2010 Pablo Rodríguez wrote:

 > Hi there,
 > 
 > I have to combine PDF of two kinds in a way I describe bellow using only 
 > the LuaTeX win32 binary distributed at 
 > http://foundry.supelec.fr/gf/project/luatex (installing a complete TeX 
 > distribution isn't an option for me). I guess that this could be 
 > achieved with a LuaTeX script, but I don't know how.
 > 
 > I have two kind of PDF documents: A4-paged document and an image. Both 
 > are given to me. I don't have to modify them, only to combine them in a 
 > new document. The only thing is to place the image.pdf on a specific 
 > location on the pages of the document.pdf. document.pdf could have 
 > multiple pages and image.pdf must be added on all pages, but not all on 
 > the same position.
 > 
 > How could this be achieved? (The whole thing is a more complex process, 
 > but this is the first step.)


I did this with pdftex a week ago, but it works with luatex too.  The
first step is to place the image on a single A4 page and call this file
background.pdf


Then copy the stuff below to a file called add-background.tex:
-------------------------------------------------------------------
% add-background.tex
%
% Usage: luatex add-background <some_file>.pdf
%
% Copyright (C) 2010 Reinhard Kotucha.
% You may freely use, modify and/or distribute this file.

\newlinechar`^^J \ifdefined\documentclass\nonstopmode
\errmessage{^^J! ERROR: Use luatex, not lualatex!^^J!
                  ================================^^J}
\batchmode\fi

\pdfcompresslevel=9 \pdfmapfile{}
\pdfoutput=1 \pdfminorversion=5 \pdfobjcompresslevel=3
\pdfhorigin0pt \pdfvorigin0pt \count0=1 \catcode`\_=12
\pdfximage page 1 {background.pdf}
\newcount\background \background=\pdflastximage

\def\recurse{\pdfximage page \count0 {\file}%
   \setbox0\hbox{\rlap{\expandafter\pdfrefximage\background}%
   \pdfrefximage\pdflastximage}%
   \pdfpagewidth=\wd0 \pdfpageheight=\ht0 \shipout\box0
   \advance\count0 by 1
   \ifnum\count0>\pdflastximagepages\expandafter\end
   \else\expandafter\recurse\fi}

\def\process#1 {\def\file{#1}\recurse}\catcode32=13 \let\ \space
\everypar{\setbox2\lastbox\process}
-------------------------------------------------------------------


Then run

  luatex add-background <your-file>

on the command line, where <your-file> is the PDF file you want to put
the background image on each page.

You can set 

  \pdfminorversion=4 \pdfobjcompresslevel=0

if necessary, it depends on the software you are using in further
steps.  I had to do this because the Multivalent library I was using
didn't support object stream compression. 

Regards,
  Reinhard

-- 
----------------------------------------------------------------------------
Reinhard Kotucha			              Phone: +49-511-3373112
Marschnerstr. 25
D-30167 Hannover	                      mailto:reinhard.kotucha at web.de
----------------------------------------------------------------------------
Microsoft isn't the answer. Microsoft is the question, and the answer is NO.
----------------------------------------------------------------------------



More information about the luatex mailing list