1/*---------------------------------------------------------------------------* 2 | PDFlib - A library for generating PDF on the fly | 3 +---------------------------------------------------------------------------+ 4 | Copyright (c) 1997-2004 Thomas Merz and PDFlib GmbH. All rights reserved. | 5 +---------------------------------------------------------------------------+ 6 | | 7 | This software is subject to the PDFlib license. It is NOT in the | 8 | public domain. Extended versions and commercial licenses are | 9 | available, please check http://www.pdflib.com. | 10 | | 11 *---------------------------------------------------------------------------*/ 12 13/* $Id: p_pdi.c 14574 2005-10-29 16:27:43Z bonefish $ 14 * 15 * PDF import routines (require the PDI library) 16 * 17 */ 18 19#define P_PDI_C 20 21#include "p_intern.h" 22 23 24PDFLIB_API int PDFLIB_CALL 25PDF_open_pdi( 26 PDF *p, 27 const char *filename, 28 const char *optlist, 29 int reserved) 30{ 31 static const char fn[] = "PDF_open_pdi"; 32 int retval = -1; 33 34 if (!pdf_enter_api(p, fn, 35 (pdf_state) (pdf_state_object | pdf_state_document | pdf_state_page), 36 "(p[%p], \"%s\", \"%s\", %d)", 37 (void *) p, filename, optlist, reserved)) 38 { 39 PDF_RETURN_HANDLE(p, retval) 40 } 41 42 pdc_error(p->pdc, PDF_E_UNSUPP_PDI, 0, 0, 0, 0); 43 44 PDF_RETURN_HANDLE(p, retval) 45} 46 47PDFLIB_API int PDFLIB_CALL 48PDF_open_pdi_callback( 49 PDF *p, 50 void *opaque, 51 size_t filesize, 52 size_t (*readproc)(void *opaque, void *buffer, size_t size), 53 int (*seekproc)(void *opaque, long offset), 54 const char *optlist) 55{ 56 static const char fn[] = "PDF_open_pdi_callback"; 57 int retval = -1; 58 59 if (!pdf_enter_api(p, fn, 60 (pdf_state) (pdf_state_object | pdf_state_document | pdf_state_page), 61 "(p[%p], opaque[%p], %ld, readproc[%p], seekproc[%p] \"%s\")", 62 (void *)p, opaque, filesize, readproc, seekproc, optlist)) 63 { 64 PDF_RETURN_HANDLE(p, retval) 65 } 66 67 pdc_error(p->pdc, PDF_E_UNSUPP_PDI, 0, 0, 0, 0); 68 69 PDF_RETURN_HANDLE(p, retval) 70} 71 72PDFLIB_API void PDFLIB_CALL 73PDF_close_pdi(PDF *p, int doc) 74{ 75 static const char fn[] = "PDF_close_pdi"; 76 77 if (!pdf_enter_api(p, fn, 78 (pdf_state) (pdf_state_object | pdf_state_document | pdf_state_page), 79 "(p[%p], %d)\n", (void *) p, doc)) 80 return; 81 82 pdc_error(p->pdc, PDF_E_UNSUPP_PDI, 0, 0, 0, 0); 83 84 return; 85} 86 87PDFLIB_API int PDFLIB_CALL 88PDF_open_pdi_page( PDF *p, int doc, int page, const char *optlist) 89{ 90 static const char fn[] = "PDF_open_pdi_page"; 91 int retval = -1; 92 93 if (!pdf_enter_api(p, fn, 94 (pdf_state) (pdf_state_document | pdf_state_page), 95 "(p[%p], %d, %d, \"%s\")", (void *) p, doc, page, optlist)) 96 { 97 PDF_RETURN_HANDLE(p, retval) 98 } 99 100 pdc_error(p->pdc, PDF_E_UNSUPP_PDI, 0, 0, 0, 0); 101 102 PDF_RETURN_HANDLE(p, retval) 103} 104 105PDFLIB_API void PDFLIB_CALL 106PDF_fit_pdi_page(PDF *p, int page, float x, float y, const char *optlist) 107{ 108 static const char fn[] = "PDF_fit_pdi_page"; 109 110 /* precise scope diagnosis in pdf__place_image */ 111 if (!pdf_enter_api(p, fn, pdf_state_content, 112 "(p[%p], %d, %g, %g, \"%s\")\n", (void *) p, page, x, y, optlist)) 113 return; 114 115 pdc_error(p->pdc, PDF_E_UNSUPP_PDI, 0, 0, 0, 0); 116 117 return; 118} 119 120PDFLIB_API void PDFLIB_CALL 121PDF_place_pdi_page(PDF *p, int page, float x, float y, float sx, float sy) 122{ 123 static const char fn[] = "PDF_place_pdi_page"; 124 125 if (!pdf_enter_api(p, fn, pdf_state_content, 126 "(p[%p], %d, %g, %g, %g, %g)\n", (void *) p, page, x, y, sx, sy)) 127 return; 128 129 pdc_error(p->pdc, PDF_E_UNSUPP_PDI, 0, 0, 0, 0); 130 131 return; 132} 133 134PDFLIB_API void PDFLIB_CALL 135PDF_close_pdi_page(PDF *p, int page) 136{ 137 static const char fn[] = "PDF_close_pdi_page"; 138 139 if (!pdf_enter_api(p, fn, 140 (pdf_state) (pdf_state_document | pdf_state_page), 141 "(p[%p], %d)\n", (void *) p, page)) 142 return; 143 144 pdc_error(p->pdc, PDF_E_UNSUPP_PDI, 0, 0, 0, 0); 145 146 return; 147} 148 149PDFLIB_API const char *PDFLIB_CALL 150PDF_get_pdi_parameter( 151 PDF *p, 152 const char *key, 153 int doc, 154 int page, 155 int idx, 156 int *len) 157{ 158 static const char fn[] = "PDF_get_pdi_parameter"; 159 160 if (!pdf_enter_api(p, fn, pdf_state_all, 161 "(p[%p], \"%s\", %d, %d, %d, len[%p])\n", 162 (void *) p, key, doc, page, idx, len)) 163 return (const char *) NULL; 164 165 pdc_error(p->pdc, PDF_E_UNSUPP_PDI, 0, 0, 0, 0); 166 167 return (const char *) NULL; 168} 169 170PDFLIB_API float PDFLIB_CALL 171PDF_get_pdi_value(PDF *p, const char *key, int doc, int page, int idx) 172{ 173 static const char fn[] = "PDF_get_pdi_value"; 174 175 if (!pdf_enter_api(p, fn, pdf_state_all, 176 "(p[%p], \"%s\", %d, %d, %d)\n", 177 (void *) p, key, doc, page, idx)) 178 return (float) 0; 179 180 pdc_error(p->pdc, PDF_E_UNSUPP_PDI, 0, 0, 0, 0); 181 182 return (float) 0; 183} 184 185PDFLIB_API int PDFLIB_CALL 186PDF_process_pdi(PDF *p, int doc, int page, const char *optlist) 187{ 188 static const char fn[] = "PDF_process_pdi"; 189 190 if (!pdf_enter_api(p, fn, 191 (pdf_state) (pdf_state_document), 192 "(p[%p], %d, %d, %s)\n", (void *) p, doc, page, optlist)) 193 { 194 PDF_RETURN_BOOLEAN(p, -1); 195 } 196 197 pdc_error(p->pdc, PDF_E_UNSUPP_PDI, 0, 0, 0, 0); 198 199 PDF_RETURN_BOOLEAN(p, -1); 200} 201 202