diff options
author | Taco Hoekwater <taco@elvenkind.com> | 2009-04-16 07:56:44 +0000 |
---|---|---|
committer | Taco Hoekwater <taco@elvenkind.com> | 2009-04-16 07:56:44 +0000 |
commit | 40c2ba944e1cee0677734608263cbc7ba3a729bf (patch) | |
tree | 6da3acbd4e74eb5854f90416313fb56a4eb29824 /Build/source/texk/web2c/luatexdir/pdf/pdfpage.h | |
parent | 79e9c535970a1887e1b6b2196cd90775955ea486 (diff) |
Import luatex 0.39.0
git-svn-id: svn://tug.org/texlive/trunk@12733 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/pdf/pdfpage.h')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/pdf/pdfpage.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/luatexdir/pdf/pdfpage.h b/Build/source/texk/web2c/luatexdir/pdf/pdfpage.h new file mode 100644 index 00000000000..5cae6a0f601 --- /dev/null +++ b/Build/source/texk/web2c/luatexdir/pdf/pdfpage.h @@ -0,0 +1,85 @@ +/* pdfpage.h + + Copyright 2009 Taco Hoekwater <taco@luatex.org> + + This file is part of LuaTeX. + + LuaTeX is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your + option) any later version. + + LuaTeX is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + License for more details. + + You should have received a copy of the GNU General Public License along + with LuaTeX; if not, see <http://www.gnu.org/licenses/>. */ + +/* $Id: pdfpage.h 2267 2009-04-12 18:23:21Z oneiros $ */ + +#ifndef PDFPAGE_H +# define PDFPAGE_H +/**********************************************************************/ + +typedef struct { + long m; /* mantissa (significand) */ + int e; /* exponent * -1 */ +} pdffloat; + +typedef struct { + pdffloat h; + pdffloat v; +} pdfpos; + +typedef enum { PMODE_NONE, PMODE_PAGE, PMODE_TEXT, PMODE_CHARARRAY, + PMODE_CHAR +} pos_mode; + +typedef enum { WMODE_H, WMODE_V } writing_mode; /* []TJ runs horizontal or vertical */ + +# define is_pagemode(p) ((p)->mode == PMODE_PAGE) +# define is_textmode(p) ((p)->mode == PMODE_TEXT) +# define is_chararraymode(p) ((p)->mode == PMODE_CHARARRAY) +# define is_charmode(p) ((p)->mode == PMODE_CHAR) + +# define setpdffloat(a,b,c) {(a).m = (b); (a).e = (c);} + +typedef struct { + pdfpos pdf; /* pos. on page (PDF page raster) */ + pdfpos pdf_bt_pos; /* pos. at begin of BT-ET group (PDF page raster) */ + pdfpos pdf_tj_pos; /* pos. at begin of TJ array (PDF page raster) */ + pdffloat cw; /* pos. within [(..)..]TJ array (glyph raster); + cw.e = fractional digits in /Widths array */ + pdffloat tj_delta; /* rel. movement in [(..)..]TJ array (glyph raster) */ + pdffloat fs; /* font size in PDF units */ + pdffloat hz; /* HZ expansion factor */ + pdffloat ext; /* ExtendFont factor */ + pdffloat cm[6]; /* cm array */ + pdffloat tm[6]; /* Tm array */ + double k1; /* conv. factor from TeX sp to PDF page raster */ + double k2; /* conv. factor from PDF page raster to TJ array raster */ + internal_font_number f_cur; /* TeX font number */ + internal_font_number f_pdf; /* /F* font number, of unexpanded base font! */ + writing_mode wmode; /* PDF writing mode WMode (horizontal/vertical) */ + pos_mode mode; /* current positioning mode */ +} pdfstructure; + +/**********************************************************************/ + +boolean calc_pdfpos(pdfstructure * p, scaledpos * pos); +void pdf_end_string_nl(); +void pdf_goto_pagemode(); +void pdf_page_init(); +void pdf_place_form(scaled h, scaled v, integer i); +void pdf_place_glyph(internal_font_number f, integer c); +void pdf_place_rule(scaled h, scaled v, scaled wd, scaled ht); +void pdf_print_charwidth(internal_font_number f, int i); +void pdf_print_cm(pdffloat * cm); +void pdf_set_pos(scaled h, scaled v); +void pos_finish(pdfstructure * p); +void print_pdffloat(pdffloat * f); + +/**********************************************************************/ +#endif |