summaryrefslogtreecommitdiff
path: root/devices/vector/gdevpdti.h
diff options
context:
space:
mode:
Diffstat (limited to 'devices/vector/gdevpdti.h')
-rw-r--r--devices/vector/gdevpdti.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/devices/vector/gdevpdti.h b/devices/vector/gdevpdti.h
new file mode 100644
index 000000000..de624a925
--- /dev/null
+++ b/devices/vector/gdevpdti.h
@@ -0,0 +1,95 @@
+/* Copyright (C) 2001-2012 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied,
+ modified or distributed except as expressly authorized under the terms
+ of the license contained in the file LICENSE in this distribution.
+
+ Refer to licensing information at http://www.artifex.com or contact
+ Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
+ CA 94903, U.S.A., +1(415)492-9861, for further information.
+*/
+
+
+/* Bitmap font interface for pdfwrite */
+
+#ifndef gdevpdti_INCLUDED
+# define gdevpdti_INCLUDED
+
+#include "gdevpdt.h"
+
+/*
+ * Bitmap fonts are Type 3 fonts created internally by pdfwrite. Their
+ * CharProc consists of a single bitmap image at "device" resolution.
+ */
+
+/* ================ Types and structures ================ */
+
+/* Define the state structure for tracking bitmap fonts. */
+/*typedef struct pdf_bitmap_fonts_s pdf_bitmap_fonts_t;*/
+struct pdf_bitmap_fonts_s {
+ pdf_font_resource_t *open_font; /* current Type 3 synthesized font */
+ bool use_open_font; /* if false, start new open_font */
+ long bitmap_encoding_id;
+ int max_embedded_code; /* max Type 3 code used */
+};
+
+#ifndef pdf_bitmap_fonts_DEFINED
+# define pdf_bitmap_fonts_DEFINED
+typedef struct pdf_bitmap_fonts_s pdf_bitmap_fonts_t;
+#endif
+
+/* ================ Procedures ================ */
+
+/* Exported for gdevpdf.c */
+
+/*
+ * Update text state at the end of a page.
+ */
+void pdf_close_text_page(gx_device_pdf *pdev);
+
+/* Exported for gdevpdfb.c */
+
+/* Return the Y offset for a bitmap character image. */
+int pdf_char_image_y_offset(const gx_device_pdf *pdev, int x, int y, int h);
+
+/* Retrieve the x and y offsets for a charproc */
+int pdf_charproc_x_offset(pdf_char_proc_t *pcp);
+int pdf_charproc_y_offset(pdf_char_proc_t *pcp);
+
+/* Begin a CharProc for an embedded (bitmap) font. */
+int pdf_begin_char_proc(gx_device_pdf * pdev, int w, int h, int x_width,
+ int y_offset, int x_offset, gs_id id, pdf_char_proc_t **ppcp,
+ pdf_stream_position_t * ppos);
+
+/* End a CharProc. */
+int pdf_end_char_proc(gx_device_pdf * pdev, pdf_stream_position_t * ppos);
+
+int pdf_free_charproc_ownership(gx_device_pdf * pdev, pdf_resource_t *pres);
+
+/* Put out a reference to an image as a character in an embedded font. */
+int pdf_do_char_image(gx_device_pdf * pdev, const pdf_char_proc_t * pcp,
+ const gs_matrix * pimat);
+
+/* Only used within text code */
+
+/*
+ * Allocate and initialize bookkeeping for bitmap fonts.
+ */
+pdf_bitmap_fonts_t *pdf_bitmap_fonts_alloc(gs_memory_t *mem);
+
+/*
+ * Write the Encoding for bitmap fonts, if needed.
+ */
+int pdf_write_bitmap_fonts_Encoding(gx_device_pdf *pdev);
+
+/* Write the contents of a Type 3 bitmap font resource. */
+int pdf_write_contents_bitmap(gx_device_pdf *pdev, pdf_font_resource_t *pdfont);
+
+/* Mark glyph names for garbager. */
+void pdf_mark_glyph_names(const pdf_font_resource_t *pdfont, const gs_memory_t *memory);
+
+#endif /* gdevpdti_INCLUDED */