Just to summarise (for the benefit of archives and posterity), the following is /almost/ sufficient to achieve PDF/X-1A:2003 compliance using plain XeTeX. Full compliance can be achieved using Adobe Acrobat. > \newif \ifpdfxa > \pdfxatrue > > \ifpdfxa > \special {pdf: put @thispage << /ArtBox [0 0 498.89641 708.65968] >>} > \special {pdf: put @thispage << /BleedBox [0 0 498.89641 708.65968] >>} > \special {pdf: put @thispage << /CropBox [0 0 498.89641 708.65968] >>} > \special {pdf: put @thispage << /MediaBox [0 0 498.89641 708.65968] >>} > \special {pdf: put @thispage << /TrimBox [0 0 498.89641 708.65968] >>} > \special {pdf: docinfo << /GTS_PDFXVersion (PDF/X-1:2001) > /GTS_PDFXConformance (PDF/X-1a:2001) >>} > \special {pdf: put @catalog << /PageMode /UseNone /OutputIntents [ << > /Info (none) /Type /OutputIntent /S /GTS_PDFX /OutputConditionIdentifier > (Custom) /RegistryName (http://www.color.org/) >> ] >>} > \special {pdf: dest (page.1) [@thispage /XYZ @xpos @ypos null]} > \special {pdf: docinfo << /Title(Document Title)/Subject(Some > subject)/Creator(XeTeX)/ModDate(D:yyyymmddhhmmss)/Author(Your > Name)/Producer(XeTeX version)/Keywords(Whatever)/Trapped/False >>} > \fi The caveats are as follows :
1. a hook will need to be inserted into \shipout to insert the bounding boxes on each page; 2. the colours will need to be converted to the desired output profile using Adobe Acrobat; 3. the file will need to be reduced in size with Acrobat 4+ compatibility but with no image compression in order to convert it to PDF 1.3; 4. the dimensions of the bounding boxes are for B5 in so-called "big points" (Postscript points) and will need to be amended for other page sizes; 5. \setboundingboxes will have to be called explicitly for the first page only. \shipout can be hooked as follows : \def \setboundingboxes {% \special {pdf: put @thispage << /ArtBox [0 0 498.89641 708.65968] >>}% \special {pdf: put @thispage << /BleedBox [0 0 498.89641 708.65968] >>}% \special {pdf: put @thispage << /CropBox [0 0 498.89641 708.65968] >>}% \special {pdf: put @thispage << /MediaBox [0 0 498.89641 708.65968] >>}% \special {pdf: put @thispage << /TrimBox [0 0 498.89641 708.65968] >>}% } \newcount \maxpage \maxpage = <whatever> \let \Shipout = \shipout \def \shipout {\ifnum \pageno < \maxpage \setboundingboxes \fi \Shipout} -- Philip Taylor
-------------------------------------------------- Subscriptions, Archive, and List information, etc.: http://tug.org/mailman/listinfo/xetex