diff options
Diffstat (limited to 'Build/source/texk/dvipdfmx/src/pdfdoc.h')
-rw-r--r-- | Build/source/texk/dvipdfmx/src/pdfdoc.h | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/Build/source/texk/dvipdfmx/src/pdfdoc.h b/Build/source/texk/dvipdfmx/src/pdfdoc.h new file mode 100644 index 00000000000..0d160e18a7f --- /dev/null +++ b/Build/source/texk/dvipdfmx/src/pdfdoc.h @@ -0,0 +1,138 @@ +/* $Header: /home/cvsroot/dvipdfmx/src/pdfdoc.h,v 1.19 2005/07/30 11:44:18 hirata Exp $ + + This is dvipdfmx, an eXtended version of dvipdfm by Mark A. Wicks. + + Copyright (C) 2002 by Jin-Hwan Cho and Shunsaku Hirata, + the dvipdfmx project team <dvipdfmx@project.ktug.or.kr> + + Copyright (C) 1998, 1999 by Mark A. Wicks <mwicks@kettering.edu> + + This program 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. + + This program 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. +*/ + +#ifndef _PDFDOC_H_ +#define _PDFDOC_H_ + +#include "pdfobj.h" +#include "pdfdev.h" + +#define PDF_DOC_GRABBING_NEST_MAX 4 + +extern void pdf_doc_set_verbose (void); + +extern void pdf_open_document (const char *filename, + double media_width, double media_height, + double annot_grow_amount, int bookmark_open_depth); +extern void pdf_close_document (void); + + +/* PDF document metadata */ +extern void pdf_doc_set_creator (const char *creator); + + +/* They just return PDF dictionary object. + * Callers are completely responsible for doing right thing... + */ +extern pdf_obj *pdf_doc_get_dictionary (const char *category); +extern pdf_obj *pdf_doc_get_reference (const char *category); + +#define pdf_doc_page_tree() pdf_doc_get_dictionary("Pages") +#define pdf_doc_catalog() pdf_doc_get_dictionary("Catalog") +#define pdf_doc_docinfo() pdf_doc_get_dictionary("Info") +#define pdf_doc_names() pdf_doc_get_dictionary("Names") +#define pdf_doc_this_page() pdf_doc_get_dictionary("@THISPAGE") + +extern long pdf_doc_current_page_number (void); +extern pdf_obj *pdf_doc_current_page_resources (void); + +extern pdf_obj *pdf_doc_ref_page (unsigned long page_no); +#define pdf_doc_this_page_ref() pdf_doc_get_reference("@THISPAGE") +#define pdf_doc_next_page_ref() pdf_doc_get_reference("@NEXTPAGE") +#define pdf_doc_prev_page_ref() pdf_doc_get_reference("@PREVPAGE") + +/* Not really managing tree... + * There should be something for number tree. + */ +extern int pdf_doc_add_names (const char *category, + const void *key, int keylen, pdf_obj *value); + +extern void pdf_doc_set_bop_content (const char *str, unsigned length); +extern void pdf_doc_set_eop_content (const char *str, unsigned length); + +/* Page */ +extern void pdf_doc_begin_page (double scale, double x_origin, double y_origin); +extern void pdf_doc_end_page (void); + +extern void pdf_doc_set_mediabox (unsigned page_no, const pdf_rect *mediabox); +extern void pdf_doc_get_mediabox (unsigned page_no, pdf_rect *mediabox); + +extern void pdf_doc_add_page_content (const char *buffer, unsigned length); +extern void pdf_doc_add_page_resource (const char *category, + const char *resource_name, pdf_obj *resources); + +/* Article thread */ +extern void pdf_doc_begin_article (const char *article_id, pdf_obj *info); +extern void pdf_doc_end_article (const char *article_id); /* Do nothing... */ +extern void pdf_doc_make_article (const char *article_id, + const char **bead_order, int num_beads); +extern void pdf_doc_add_bead (const char *article_id, + const char *bead_id, + long page_no, const pdf_rect *rect); + +/* Bookmarks */ +extern int pdf_doc_bookmarks_up (void); +extern int pdf_doc_bookmarks_down (void); +extern void pdf_doc_bookmarks_add (pdf_obj *dict, int is_open); +extern int pdf_doc_bookmarks_depth (void); + + +/* Form XObject */ +extern void pdf_doc_make_xform (pdf_obj *xform, + pdf_rect *bbox, /* const */ + pdf_tmatrix *matrix, /* const */ + pdf_obj *resources_ref); + +/* Returns xobj_id of started xform. */ +extern int pdf_doc_begin_grabbing (const char *ident, + double ref_x, double ref_y, + const pdf_rect *cropbox); +extern void pdf_doc_end_grabbing (void); + + +/* Annotation */ +extern void pdf_doc_add_annot (unsigned page_no, + const pdf_rect *rect, pdf_obj *annot_dict); + +/* Annotation with auto- clip and line (or page) break */ +extern void pdf_doc_begin_annot (pdf_obj *dict); +extern void pdf_doc_end_annot (void); + +extern void pdf_doc_break_annot (void); +extern void pdf_doc_expand_box (const pdf_rect *rect); + +/* Thumbnail */ +extern void pdf_doc_enable_thumbnails (int thumb_remove); + +/* PageLabels - */ +extern void pdf_doc_set_pagelabel (long page_start, + const char *type, + const void *prefix, int pfrx_len, + long counter_start); + +/* Similar to bop_content */ +#include "pdfcolor.h" +extern void pdf_doc_set_bgcolor (const pdf_color *color); + +#endif /* _PDFDOC_H_ */ |