2
0

sqfpdf.cpp 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032
  1. #include "squirrel.h"
  2. #include "fpdf.h"
  3. #include <string.h>
  4. #include <stdio.h>
  5. class Sq_Fpdf : public FPDF {
  6. protected:
  7. HSQUIRRELVM sqvm;
  8. HSQOBJECT self_weakref;
  9. public:
  10. Sq_Fpdf(HSQUIRRELVM v, HSQOBJECT &self):FPDF(){
  11. sqvm = v;
  12. self_weakref = self;
  13. }
  14. void callVirtual(const SQChar *func_name){
  15. //sq_reservestack(sqvm, 20);
  16. SQInteger top = sq_gettop(sqvm);
  17. sq_pushobject(sqvm, self_weakref);
  18. sq_pushstring(sqvm, func_name, -1);
  19. sq_get(sqvm, -2);
  20. if(sq_gettype(sqvm, -1) == OT_CLOSURE){
  21. sq_push(sqvm, -2); //this
  22. sq_call(sqvm, 1, SQFalse, SQTrue);
  23. }
  24. sq_settop(sqvm, top);
  25. }
  26. void Header (){
  27. callVirtual(_SC("Header"));
  28. };
  29. void Footer () {
  30. callVirtual(_SC("Footer"));
  31. };
  32. bool AcceptPageBreak (){
  33. callVirtual(_SC("AcceptPageBreak"));
  34. return FPDF::AcceptPageBreak();
  35. };
  36. };
  37. static SQRESULT sq_glue_releasehook(SQUserPointer p, SQInteger size)
  38. {
  39. Sq_Fpdf *self = ((Sq_Fpdf *)p);
  40. delete self;
  41. return 1;
  42. }
  43. static SQRESULT sq_glue_constructor(HSQUIRRELVM v)
  44. {
  45. //SQ_FUNC_VARS_NO_TOP(v);
  46. HSQOBJECT self;
  47. sq_resetobject(&self);
  48. sq_getstackobj(v, 1, &self);
  49. Sq_Fpdf *cptr = new Sq_Fpdf(v, self);
  50. sq_setinstanceup(v, 1, cptr);
  51. sq_setreleasehook(v,1, sq_glue_releasehook);
  52. return 1;
  53. }
  54. SQ_OPT_STRING_STRLEN();
  55. static const SQChar *SQ_FPDF_TAG = "Sq_Fpdf";
  56. #define GET_SQ_FPDF() SQ_GET_INSTANCE(v, 1, Sq_Fpdf, SQ_FPDF_TAG)
  57. /* bool AcceptPageBreak( ) */
  58. static SQRESULT sq_glue_AcceptPageBreak(HSQUIRRELVM v){
  59. SQ_FUNC_VARS_NO_TOP(v);
  60. GET_SQ_FPDF();
  61. sq_pushbool(v, self->FPDF::AcceptPageBreak());
  62. return 1;
  63. }
  64. /* void AddFont( char const * afamily , char const * astyle = 0 , char const * afile = 0 ) */
  65. static SQRESULT sq_glue_AddFont(HSQUIRRELVM v){
  66. SQ_FUNC_VARS(v);
  67. GET_SQ_FPDF();
  68. SQ_GET_STRING(v, 2, afamily);
  69. SQ_OPT_STRING(v, 3, astyle, 0);
  70. SQ_OPT_STRING(v, 4, afile, 0);
  71. self->AddFont(afamily, astyle, afile);
  72. return 0;
  73. }
  74. /* int AddLink( ) */
  75. static SQRESULT sq_glue_AddLink(HSQUIRRELVM v){
  76. SQ_FUNC_VARS_NO_TOP(v);
  77. GET_SQ_FPDF();
  78. sq_pushinteger(v, self->AddLink());
  79. return 1;
  80. }
  81. /* void AddPage( FPDF::e_orientation orientation = FPDF::e_orientation_none , FPDF::st_pagesize * psize = 0 ) */
  82. static SQRESULT sq_glue_AddPage(HSQUIRRELVM v){
  83. SQ_FUNC_VARS(v);
  84. GET_SQ_FPDF();
  85. SQ_OPT_INTEGER(v, 2, orientation, FPDF::e_orientation_none);
  86. SQ_OPT_STRING(v, 3, psize, 0);
  87. self->AddPage((FPDF::e_orientation)orientation, 0);
  88. return 0;
  89. }
  90. /* void AliasNbPages( char const * alias = "{nb}" ) */
  91. static SQRESULT sq_glue_AliasNbPages(HSQUIRRELVM v){
  92. SQ_FUNC_VARS(v);
  93. GET_SQ_FPDF();
  94. SQ_OPT_STRING(v, 2, alias, "{nb}");
  95. self->AliasNbPages(alias);
  96. return 0;
  97. }
  98. /* int CalcLines( pdf_float_t w , char const * txt ) */
  99. static SQRESULT sq_glue_CalcLines(HSQUIRRELVM v){
  100. SQ_FUNC_VARS_NO_TOP(v);
  101. GET_SQ_FPDF();
  102. SQ_GET_FLOAT(v, 2, w);
  103. SQ_GET_STRING(v, 3, txt);
  104. sq_pushinteger(v, self->CalcLines(w, txt));
  105. return 1;
  106. }
  107. /* void Cell( pdf_float_t w , pdf_float_t h = 0.0f , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 ) */
  108. static SQRESULT sq_glue_Cell(HSQUIRRELVM v){
  109. SQ_FUNC_VARS(v);
  110. GET_SQ_FPDF();
  111. SQ_GET_FLOAT(v, 2, w);
  112. SQ_OPT_FLOAT(v, 3, h, 0.0f);
  113. SQ_OPT_STRING(v, 4, txt, 0);
  114. SQ_OPT_STRING(v, 5, border, 0);
  115. SQ_OPT_INTEGER(v, 6, ln, 0);
  116. SQ_OPT_INTEGER(v, 7, align, ' ');
  117. SQ_OPT_INTEGER(v, 8, fill, false);
  118. SQ_OPT_INTEGER(v, 9, link, 0);
  119. self->Cell(w, h, txt, border, ln, align, fill, link);
  120. return 0;
  121. }
  122. /* void CellFit( pdf_float_t w , pdf_float_t h = 0 , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 , bool scale = false , bool force = true ) */
  123. static SQRESULT sq_glue_CellFit(HSQUIRRELVM v){
  124. SQ_FUNC_VARS(v);
  125. GET_SQ_FPDF();
  126. SQ_GET_FLOAT(v, 2, w);
  127. SQ_OPT_FLOAT(v, 3, h, 0);
  128. SQ_OPT_STRING(v, 4, txt, 0);
  129. SQ_OPT_STRING(v, 5, border, 0);
  130. SQ_OPT_INTEGER(v, 6, ln, 0);
  131. SQ_OPT_INTEGER(v, 7, align, ' ');
  132. SQ_OPT_INTEGER(v, 8, fill, false);
  133. SQ_OPT_INTEGER(v, 9, link, 0);
  134. SQ_OPT_INTEGER(v, 10, scale, false);
  135. SQ_OPT_INTEGER(v, 11, force, true);
  136. self->CellFit(w, h, txt, border, ln, align, fill, link, scale, force);
  137. return 0;
  138. }
  139. /* void CellFitScale( pdf_float_t w , pdf_float_t h = 0 , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 ) */
  140. static SQRESULT sq_glue_CellFitScale(HSQUIRRELVM v){
  141. SQ_FUNC_VARS(v);
  142. GET_SQ_FPDF();
  143. SQ_GET_FLOAT(v, 2, w);
  144. SQ_OPT_FLOAT(v, 3, h, 0);
  145. SQ_OPT_STRING(v, 4, txt, 0);
  146. SQ_OPT_STRING(v, 5, border, 0);
  147. SQ_OPT_INTEGER(v, 6, ln, 0);
  148. SQ_OPT_INTEGER(v, 7, align, ' ');
  149. SQ_OPT_INTEGER(v, 8, fill, false);
  150. SQ_OPT_INTEGER(v, 9, link, 0);
  151. self->CellFitScale(w, h, txt, border, ln, align, fill, link);
  152. return 0;
  153. }
  154. /* void CellFitScaleForce( pdf_float_t w , pdf_float_t h = 0 , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 ) */
  155. static SQRESULT sq_glue_CellFitScaleForce(HSQUIRRELVM v){
  156. SQ_FUNC_VARS(v);
  157. GET_SQ_FPDF();
  158. SQ_GET_FLOAT(v, 2, w);
  159. SQ_OPT_FLOAT(v, 3, h, 0);
  160. SQ_OPT_STRING(v, 4, txt, 0);
  161. SQ_OPT_STRING(v, 5, border, 0);
  162. SQ_OPT_INTEGER(v, 6, ln, 0);
  163. SQ_OPT_INTEGER(v, 7, align, ' ');
  164. SQ_OPT_INTEGER(v, 8, fill, false);
  165. SQ_OPT_INTEGER(v, 9, link, 0);
  166. self->CellFitScaleForce(w, h, txt, border, ln, align, fill, link);
  167. return 0;
  168. }
  169. /* void CellFitSpace( pdf_float_t w , pdf_float_t h = 0 , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 ) */
  170. static SQRESULT sq_glue_CellFitSpace(HSQUIRRELVM v){
  171. SQ_FUNC_VARS(v);
  172. GET_SQ_FPDF();
  173. SQ_GET_FLOAT(v, 2, w);
  174. SQ_OPT_FLOAT(v, 3, h, 0);
  175. SQ_OPT_STRING(v, 4, txt, 0);
  176. SQ_OPT_STRING(v, 5, border, 0);
  177. SQ_OPT_INTEGER(v, 6, ln, 0);
  178. SQ_OPT_INTEGER(v, 7, align, ' ');
  179. SQ_OPT_INTEGER(v, 8, fill, false);
  180. SQ_OPT_INTEGER(v, 9, link, 0);
  181. self->CellFitSpace(w, h, txt, border, ln, align, fill, link);
  182. return 0;
  183. }
  184. /* void CellFitSpaceForce( pdf_float_t w , pdf_float_t h = 0 , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 ) */
  185. static SQRESULT sq_glue_CellFitSpaceForce(HSQUIRRELVM v){
  186. SQ_FUNC_VARS(v);
  187. GET_SQ_FPDF();
  188. SQ_GET_FLOAT(v, 2, w);
  189. SQ_OPT_FLOAT(v, 3, h, 0);
  190. SQ_OPT_STRING(v, 4, txt, 0);
  191. SQ_OPT_STRING(v, 5, border, 0);
  192. SQ_OPT_INTEGER(v, 6, ln, 0);
  193. SQ_OPT_INTEGER(v, 7, align, ' ');
  194. SQ_OPT_INTEGER(v, 8, fill, false);
  195. SQ_OPT_INTEGER(v, 9, link, 0);
  196. self->CellFitSpaceForce(w, h, txt, border, ln, align, fill, link);
  197. return 0;
  198. }
  199. /* void CheckPageBreak( pdf_float_t height ) */
  200. static SQRESULT sq_glue_CheckPageBreak(HSQUIRRELVM v){
  201. SQ_FUNC_VARS_NO_TOP(v);
  202. GET_SQ_FPDF();
  203. SQ_GET_FLOAT(v, 2, height);
  204. self->CheckPageBreak(height);
  205. return 0;
  206. }
  207. /* void Circle( pdf_float_t x , pdf_float_t y , pdf_float_t r , char const * style = "D" ) */
  208. static SQRESULT sq_glue_Circle(HSQUIRRELVM v){
  209. SQ_FUNC_VARS(v);
  210. GET_SQ_FPDF();
  211. SQ_GET_FLOAT(v, 2, x);
  212. SQ_GET_FLOAT(v, 3, y);
  213. SQ_GET_FLOAT(v, 4, r);
  214. SQ_OPT_STRING(v, 5, style, "D");
  215. self->Circle(x, y, r, style);
  216. return 0;
  217. }
  218. /* void ClippedCell( pdf_float_t w , pdf_float_t h = 0 , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 ) */
  219. static SQRESULT sq_glue_ClippedCell(HSQUIRRELVM v){
  220. SQ_FUNC_VARS(v);
  221. GET_SQ_FPDF();
  222. SQ_GET_FLOAT(v, 2, w);
  223. SQ_OPT_FLOAT(v, 3, h, 0);
  224. SQ_OPT_STRING(v, 4, txt, 0);
  225. SQ_OPT_STRING(v, 5, border, 0);
  226. SQ_OPT_INTEGER(v, 6, ln, 0);
  227. SQ_OPT_INTEGER(v, 7, align, ' ');
  228. SQ_OPT_INTEGER(v, 8, fill, false);
  229. SQ_OPT_INTEGER(v, 9, link, 0);
  230. self->ClippedCell(w, h, txt, border, ln, align, fill, link);
  231. return 0;
  232. }
  233. /* void ClippingRect( pdf_float_t x , pdf_float_t y , pdf_float_t w , pdf_float_t h , bool outline = false ) */
  234. static SQRESULT sq_glue_ClippingRect(HSQUIRRELVM v){
  235. SQ_FUNC_VARS(v);
  236. GET_SQ_FPDF();
  237. SQ_GET_FLOAT(v, 2, x);
  238. SQ_GET_FLOAT(v, 3, y);
  239. SQ_GET_FLOAT(v, 4, w);
  240. SQ_GET_FLOAT(v, 5, h);
  241. SQ_OPT_INTEGER(v, 6, outline, false);
  242. self->ClippingRect(x, y, w, h, outline);
  243. return 0;
  244. }
  245. /* void ClippingText( pdf_float_t x , pdf_float_t y , char const * txt , bool outline = false ) */
  246. static SQRESULT sq_glue_ClippingText(HSQUIRRELVM v){
  247. SQ_FUNC_VARS(v);
  248. GET_SQ_FPDF();
  249. SQ_GET_FLOAT(v, 2, x);
  250. SQ_GET_FLOAT(v, 3, y);
  251. SQ_GET_STRING(v, 4, txt);
  252. SQ_OPT_INTEGER(v, 5, outline, false);
  253. self->ClippingText(x, y, txt, outline);
  254. return 0;
  255. }
  256. /* void Close( ) */
  257. static SQRESULT sq_glue_Close(HSQUIRRELVM v){
  258. SQ_FUNC_VARS_NO_TOP(v);
  259. GET_SQ_FPDF();
  260. self->Close();
  261. return 0;
  262. }
  263. /* void Ellipse( pdf_float_t x , pdf_float_t y , pdf_float_t rx , pdf_float_t ry , char const * style = "D" ) */
  264. static SQRESULT sq_glue_Ellipse(HSQUIRRELVM v){
  265. SQ_FUNC_VARS(v);
  266. GET_SQ_FPDF();
  267. SQ_GET_FLOAT(v, 2, x);
  268. SQ_GET_FLOAT(v, 3, y);
  269. SQ_GET_FLOAT(v, 4, rx);
  270. SQ_GET_FLOAT(v, 5, ry);
  271. SQ_OPT_STRING(v, 6, style, "D");
  272. self->Ellipse(x, y, rx, ry, style);
  273. return 0;
  274. }
  275. /* void Error( char const * msg ) */
  276. static SQRESULT sq_glue_Error(HSQUIRRELVM v){
  277. SQ_FUNC_VARS_NO_TOP(v);
  278. GET_SQ_FPDF();
  279. SQ_GET_STRING(v, 2, msg);
  280. self->Error(msg);
  281. return 0;
  282. }
  283. /* void Footer( ) */
  284. static SQRESULT sq_glue_Footer(HSQUIRRELVM v){
  285. SQ_FUNC_VARS_NO_TOP(v);
  286. GET_SQ_FPDF();
  287. self->FPDF::Footer();
  288. return 0;
  289. }
  290. /* const & GetAliasNbPages( ) */
  291. static SQRESULT sq_glue_GetAliasNbPages(HSQUIRRELVM v){
  292. SQ_FUNC_VARS_NO_TOP(v);
  293. GET_SQ_FPDF();
  294. std::string str = self->GetAliasNbPages();
  295. sq_pushstring(v, str.c_str(), str.size());
  296. return 1;
  297. }
  298. /* void GetDrawColor( FPDF::pdf_color_t & color ) */
  299. static SQRESULT sq_glue_GetDrawColor(HSQUIRRELVM v){
  300. SQ_FUNC_VARS_NO_TOP(v);
  301. GET_SQ_FPDF();
  302. SQ_GET_INTEGER(v, 2, color);
  303. //self->GetDrawColor(color);
  304. return 0;
  305. }
  306. /* void GetFillColor( FPDF::pdf_color_t & color ) */
  307. static SQRESULT sq_glue_GetFillColor(HSQUIRRELVM v){
  308. SQ_FUNC_VARS_NO_TOP(v);
  309. GET_SQ_FPDF();
  310. SQ_GET_INTEGER(v, 2, color);
  311. //self->GetFillColor(color);
  312. return 0;
  313. }
  314. /* void GetFontSettings( font_settings_st & fs ) */
  315. static SQRESULT sq_glue_GetFontSettings(HSQUIRRELVM v){
  316. SQ_FUNC_VARS_NO_TOP(v);
  317. GET_SQ_FPDF();
  318. SQ_GET_INTEGER(v, 2, fs);
  319. //self->GetFontSettings(fs);
  320. return 0;
  321. }
  322. /* pdf_float_t GetFontSize( ) */
  323. static SQRESULT sq_glue_GetFontSize(HSQUIRRELVM v){
  324. SQ_FUNC_VARS_NO_TOP(v);
  325. GET_SQ_FPDF();
  326. sq_pushfloat(v, self->GetFontSize());
  327. return 1;
  328. }
  329. /* pdf_float_t GetH( ) */
  330. static SQRESULT sq_glue_GetH(HSQUIRRELVM v){
  331. SQ_FUNC_VARS_NO_TOP(v);
  332. GET_SQ_FPDF();
  333. sq_pushfloat(v, self->GetH());
  334. return 1;
  335. }
  336. /* pdf_float_t GetLeftMargin( ) */
  337. static SQRESULT sq_glue_GetLeftMargin(HSQUIRRELVM v){
  338. SQ_FUNC_VARS_NO_TOP(v);
  339. GET_SQ_FPDF();
  340. sq_pushfloat(v, self->GetLeftMargin());
  341. return 1;
  342. }
  343. /* pdf_float_t GetRightMargin( ) */
  344. static SQRESULT sq_glue_GetRightMargin(HSQUIRRELVM v){
  345. SQ_FUNC_VARS_NO_TOP(v);
  346. GET_SQ_FPDF();
  347. sq_pushfloat(v, self->GetRightMargin());
  348. return 1;
  349. }
  350. /* pdf_float_t GetStringWidth( char const * s ) */
  351. static SQRESULT sq_glue_GetStringWidth(HSQUIRRELVM v){
  352. SQ_FUNC_VARS_NO_TOP(v);
  353. GET_SQ_FPDF();
  354. SQ_GET_STRING(v, 2, s);
  355. sq_pushfloat(v, self->GetStringWidth(s));
  356. return 1;
  357. }
  358. /* void GetTextColor( FPDF::pdf_color_t & color ) */
  359. static SQRESULT sq_glue_GetTextColor(HSQUIRRELVM v){
  360. SQ_FUNC_VARS_NO_TOP(v);
  361. GET_SQ_FPDF();
  362. SQ_GET_INTEGER(v, 2, color);
  363. //self->GetTextColor(color);
  364. return 0;
  365. }
  366. /* pdf_float_t GetW( ) */
  367. static SQRESULT sq_glue_GetW(HSQUIRRELVM v){
  368. SQ_FUNC_VARS_NO_TOP(v);
  369. GET_SQ_FPDF();
  370. sq_pushfloat(v, self->GetW());
  371. return 1;
  372. }
  373. /* pdf_float_t GetX( ) */
  374. static SQRESULT sq_glue_GetX(HSQUIRRELVM v){
  375. SQ_FUNC_VARS_NO_TOP(v);
  376. GET_SQ_FPDF();
  377. sq_pushfloat(v, self->GetX());
  378. return 1;
  379. }
  380. /* pdf_float_t GetY( ) */
  381. static SQRESULT sq_glue_GetY(HSQUIRRELVM v){
  382. SQ_FUNC_VARS_NO_TOP(v);
  383. GET_SQ_FPDF();
  384. sq_pushfloat(v, self->GetY());
  385. return 1;
  386. }
  387. /* void Header( ) */
  388. static SQRESULT sq_glue_Header(HSQUIRRELVM v){
  389. SQ_FUNC_VARS_NO_TOP(v);
  390. GET_SQ_FPDF();
  391. self->FPDF::Header();
  392. return 0;
  393. }
  394. /* void Image( char const * file , pdf_float_t x = -1 , pdf_float_t y = -1 , pdf_float_t w = 0.0 , pdf_float_t h = 0.0 , char const * atype = 0 , int link = 0 ) */
  395. static SQRESULT sq_glue_Image(HSQUIRRELVM v){
  396. SQ_FUNC_VARS(v);
  397. GET_SQ_FPDF();
  398. SQ_GET_STRING(v, 2, file);
  399. SQ_OPT_FLOAT(v, 3, x, -1);
  400. SQ_OPT_FLOAT(v, 4, y, -1);
  401. SQ_OPT_FLOAT(v, 5, w, 0.0);
  402. SQ_OPT_FLOAT(v, 6, h, 0.0);
  403. SQ_OPT_STRING(v, 7, atype, 0);
  404. SQ_OPT_INTEGER(v, 8, link, 0);
  405. self->Image(file, x, y, w, h, atype, link);
  406. return 0;
  407. }
  408. /* void IncludeJS( char const * script ) */
  409. static SQRESULT sq_glue_IncludeJS(HSQUIRRELVM v){
  410. SQ_FUNC_VARS_NO_TOP(v);
  411. GET_SQ_FPDF();
  412. SQ_GET_STRING(v, 2, script);
  413. self->IncludeJS(script);
  414. return 0;
  415. }
  416. /* void Line( pdf_float_t x1 , pdf_float_t y1 , pdf_float_t x2 , pdf_float_t y2 ) */
  417. static SQRESULT sq_glue_Line(HSQUIRRELVM v){
  418. SQ_FUNC_VARS_NO_TOP(v);
  419. GET_SQ_FPDF();
  420. SQ_GET_FLOAT(v, 2, x1);
  421. SQ_GET_FLOAT(v, 3, y1);
  422. SQ_GET_FLOAT(v, 4, x2);
  423. SQ_GET_FLOAT(v, 5, y2);
  424. self->Line(x1, y1, x2, y2);
  425. return 0;
  426. }
  427. /* void Link( pdf_float_t x , pdf_float_t y , pdf_float_t w , pdf_float_t h , int link ) */
  428. static SQRESULT sq_glue_Link(HSQUIRRELVM v){
  429. SQ_FUNC_VARS_NO_TOP(v);
  430. GET_SQ_FPDF();
  431. SQ_GET_FLOAT(v, 2, x);
  432. SQ_GET_FLOAT(v, 3, y);
  433. SQ_GET_FLOAT(v, 4, w);
  434. SQ_GET_FLOAT(v, 5, h);
  435. SQ_GET_INTEGER(v, 6, link);
  436. self->Link(x, y, w, h, link);
  437. return 0;
  438. }
  439. /* void Ln( pdf_float_t h = 0.0 ) */
  440. static SQRESULT sq_glue_Ln(HSQUIRRELVM v){
  441. SQ_FUNC_VARS(v);
  442. GET_SQ_FPDF();
  443. SQ_OPT_FLOAT(v, 2, h, 0.0);
  444. self->Ln(h);
  445. return 0;
  446. }
  447. /* void MultiCell( pdf_float_t w , pdf_float_t h , char const * txt , char const * border = 0 , char align = 'J' , bool fill = false ) */
  448. static SQRESULT sq_glue_MultiCell(HSQUIRRELVM v){
  449. SQ_FUNC_VARS(v);
  450. GET_SQ_FPDF();
  451. SQ_GET_FLOAT(v, 2, w);
  452. SQ_GET_FLOAT(v, 3, h);
  453. SQ_GET_STRING(v, 4, txt);
  454. SQ_OPT_STRING(v, 5, border, 0);
  455. SQ_OPT_INTEGER(v, 6, align, 'J');
  456. SQ_OPT_INTEGER(v, 7, fill, false);
  457. self->MultiCell(w, h, txt, border, align, fill);
  458. return 0;
  459. }
  460. /* void MultiCellBlt( pdf_float_t w , pdf_float_t h , char const * blt , char const * txt , char const * border = 0 , char align = 'J' , bool fill = false ) */
  461. static SQRESULT sq_glue_MultiCellBlt(HSQUIRRELVM v){
  462. SQ_FUNC_VARS(v);
  463. GET_SQ_FPDF();
  464. SQ_GET_FLOAT(v, 2, w);
  465. SQ_GET_FLOAT(v, 3, h);
  466. SQ_GET_STRING(v, 4, blt);
  467. SQ_GET_STRING(v, 5, txt);
  468. SQ_OPT_STRING(v, 6, border, 0);
  469. SQ_OPT_INTEGER(v, 7, align, 'J');
  470. SQ_OPT_INTEGER(v, 8, fill, false);
  471. self->MultiCellBlt(w, h, blt, txt, border, align, fill);
  472. return 0;
  473. }
  474. /* void Open( ) */
  475. static SQRESULT sq_glue_Open(HSQUIRRELVM v){
  476. SQ_FUNC_VARS_NO_TOP(v);
  477. GET_SQ_FPDF();
  478. self->Open();
  479. return 0;
  480. }
  481. /* string Output( char const * name = 0 , char dest = ' ' ) */
  482. static SQRESULT sq_glue_Output(HSQUIRRELVM v){
  483. SQ_FUNC_VARS(v);
  484. GET_SQ_FPDF();
  485. SQ_OPT_STRING(v, 2, name, 0);
  486. SQ_OPT_INTEGER(v, 3, dest, ' ');
  487. std::string str = self->Output(name, dest);
  488. sq_pushstring(v, str.c_str(), str.size());
  489. return 1;
  490. }
  491. /* int PageNo( ) */
  492. static SQRESULT sq_glue_PageNo(HSQUIRRELVM v){
  493. SQ_FUNC_VARS_NO_TOP(v);
  494. GET_SQ_FPDF();
  495. sq_pushinteger(v, self->PageNo());
  496. return 1;
  497. }
  498. /* void Rect( pdf_float_t x , pdf_float_t y , pdf_float_t w , pdf_float_t h , char const * style = 0 ) */
  499. static SQRESULT sq_glue_Rect(HSQUIRRELVM v){
  500. SQ_FUNC_VARS(v);
  501. GET_SQ_FPDF();
  502. SQ_GET_FLOAT(v, 2, x);
  503. SQ_GET_FLOAT(v, 3, y);
  504. SQ_GET_FLOAT(v, 4, w);
  505. SQ_GET_FLOAT(v, 5, h);
  506. SQ_OPT_STRING(v, 6, style, 0);
  507. self->Rect(x, y, w, h, style);
  508. return 0;
  509. }
  510. /* void Rotate( pdf_float_t angle , pdf_float_t x = -1 , pdf_float_t y = -1 ) */
  511. static SQRESULT sq_glue_Rotate(HSQUIRRELVM v){
  512. SQ_FUNC_VARS(v);
  513. GET_SQ_FPDF();
  514. SQ_GET_FLOAT(v, 2, angle);
  515. SQ_OPT_FLOAT(v, 3, x, -1);
  516. SQ_OPT_FLOAT(v, 4, y, -1);
  517. self->Rotate(angle, x, y);
  518. return 0;
  519. }
  520. /* void RotatedText( pdf_float_t x , pdf_float_t y , char const * txt , pdf_float_t angle ) */
  521. static SQRESULT sq_glue_RotatedText(HSQUIRRELVM v){
  522. SQ_FUNC_VARS_NO_TOP(v);
  523. GET_SQ_FPDF();
  524. SQ_GET_FLOAT(v, 2, x);
  525. SQ_GET_FLOAT(v, 3, y);
  526. SQ_GET_STRING(v, 4, txt);
  527. SQ_GET_FLOAT(v, 5, angle);
  528. self->RotatedText(x, y, txt, angle);
  529. return 0;
  530. }
  531. /* void RoundedRect( pdf_float_t x , pdf_float_t y , pdf_float_t w , pdf_float_t h , pdf_float_t r , char const * style = "" ) */
  532. static SQRESULT sq_glue_RoundedRect(HSQUIRRELVM v){
  533. SQ_FUNC_VARS(v);
  534. GET_SQ_FPDF();
  535. SQ_GET_FLOAT(v, 2, x);
  536. SQ_GET_FLOAT(v, 3, y);
  537. SQ_GET_FLOAT(v, 4, w);
  538. SQ_GET_FLOAT(v, 5, h);
  539. SQ_GET_FLOAT(v, 6, r);
  540. SQ_OPT_STRING(v, 7, style, "");
  541. self->RoundedRect(x, y, w, h, r, style);
  542. return 0;
  543. }
  544. /* void SetAlpha( pdf_float_t alpha , char const * bm = 0 ) */
  545. static SQRESULT sq_glue_SetAlpha(HSQUIRRELVM v){
  546. SQ_FUNC_VARS(v);
  547. GET_SQ_FPDF();
  548. SQ_GET_FLOAT(v, 2, alpha);
  549. SQ_OPT_STRING(v, 3, bm, 0);
  550. self->SetAlpha(alpha, bm);
  551. return 0;
  552. }
  553. /* void SetAuthor( char const * author ) */
  554. static SQRESULT sq_glue_SetAuthor(HSQUIRRELVM v){
  555. SQ_FUNC_VARS_NO_TOP(v);
  556. GET_SQ_FPDF();
  557. SQ_GET_STRING(v, 2, author);
  558. self->SetAuthor(author);
  559. return 0;
  560. }
  561. /* void SetAutoPageBreak( bool b , pdf_float_t margin = 0.0f ) */
  562. static SQRESULT sq_glue_SetAutoPageBreak(HSQUIRRELVM v){
  563. SQ_FUNC_VARS(v);
  564. GET_SQ_FPDF();
  565. SQ_GET_INTEGER(v, 2, b);
  566. SQ_OPT_FLOAT(v, 3, margin, 0.0f);
  567. self->SetAutoPageBreak(b, margin);
  568. return 0;
  569. }
  570. /* void SetCompression( bool compress ) */
  571. static SQRESULT sq_glue_SetCompression(HSQUIRRELVM v){
  572. SQ_FUNC_VARS_NO_TOP(v);
  573. GET_SQ_FPDF();
  574. SQ_GET_BOOL(v, 2, compress);
  575. self->SetCompression(compress);
  576. return 0;
  577. }
  578. /* void SetCreator( char const * creator ) */
  579. static SQRESULT sq_glue_SetCreator(HSQUIRRELVM v){
  580. SQ_FUNC_VARS_NO_TOP(v);
  581. GET_SQ_FPDF();
  582. SQ_GET_STRING(v, 2, creator);
  583. self->SetCreator(creator);
  584. return 0;
  585. }
  586. /* void SetDash( pdf_float_t black = -1 , pdf_float_t white = -1 ) */
  587. static SQRESULT sq_glue_SetDash(HSQUIRRELVM v){
  588. SQ_FUNC_VARS(v);
  589. GET_SQ_FPDF();
  590. SQ_OPT_FLOAT(v, 2, black, -1);
  591. SQ_OPT_FLOAT(v, 3, white, -1);
  592. self->SetDash(black, white);
  593. return 0;
  594. }
  595. /* void SetDisplayMode( FPDF::e_zoom_mode zoom , FPDF::e_layout_mode layout = FPDF::e_layout_default ) */
  596. static SQRESULT sq_glue_SetDisplayMode(HSQUIRRELVM v){
  597. SQ_FUNC_VARS(v);
  598. GET_SQ_FPDF();
  599. SQ_GET_INTEGER(v, 2, zoom);
  600. SQ_OPT_INTEGER(v, 3, layout, FPDF::e_layout_default);
  601. //self->SetDisplayMode(zoom, layout);
  602. return 0;
  603. }
  604. /* void SetDoubleSided( pdf_float_t inner = 7 , pdf_float_t outer = 13 ) */
  605. static SQRESULT sq_glue_SetDoubleSided(HSQUIRRELVM v){
  606. SQ_FUNC_VARS(v);
  607. GET_SQ_FPDF();
  608. SQ_OPT_FLOAT(v, 2, inner, 7);
  609. SQ_OPT_FLOAT(v, 3, outer, 13);
  610. self->SetDoubleSided(inner, outer);
  611. return 0;
  612. }
  613. /* void SetDrawColor( unsigned char r , unsigned char g , unsigned char b ) */
  614. static SQRESULT sq_glue_SetDrawColor(HSQUIRRELVM v){
  615. SQ_FUNC_VARS_NO_TOP(v);
  616. GET_SQ_FPDF();
  617. SQ_GET_INTEGER(v, 2, r);
  618. SQ_GET_INTEGER(v, 3, g);
  619. SQ_GET_INTEGER(v, 4, b);
  620. self->SetDrawColor(r, g, b);
  621. return 0;
  622. }
  623. /* void SetFillColor( unsigned char r , unsigned char g , unsigned char b ) */
  624. static SQRESULT sq_glue_SetFillColor(HSQUIRRELVM v){
  625. SQ_FUNC_VARS_NO_TOP(v);
  626. GET_SQ_FPDF();
  627. SQ_GET_INTEGER(v, 2, r);
  628. SQ_GET_INTEGER(v, 3, g);
  629. SQ_GET_INTEGER(v, 4, b);
  630. self->SetFillColor(r, g, b);
  631. return 0;
  632. }
  633. /* void SetFont( char const * afamily = 0 , char const * astyle = 0 , pdf_float_t size = 0 ) */
  634. static SQRESULT sq_glue_SetFont(HSQUIRRELVM v){
  635. SQ_FUNC_VARS(v);
  636. GET_SQ_FPDF();
  637. SQ_OPT_STRING(v, 2, afamily, 0);
  638. SQ_OPT_STRING(v, 3, astyle, 0);
  639. SQ_OPT_FLOAT(v, 4, size, 0);
  640. self->SetFont(afamily, astyle, size);
  641. return 0;
  642. }
  643. /* void SetFontSettings( font_settings_st & fs ) */
  644. static SQRESULT sq_glue_SetFontSettings(HSQUIRRELVM v){
  645. SQ_FUNC_VARS_NO_TOP(v);
  646. GET_SQ_FPDF();
  647. SQ_GET_INTEGER(v, 2, fs);
  648. //self->SetFontSettings(fs);
  649. return 0;
  650. }
  651. /* void SetFontSize( pdf_float_t size ) */
  652. static SQRESULT sq_glue_SetFontSize(HSQUIRRELVM v){
  653. SQ_FUNC_VARS_NO_TOP(v);
  654. GET_SQ_FPDF();
  655. SQ_GET_FLOAT(v, 2, size);
  656. self->SetFontSize(size);
  657. return 0;
  658. }
  659. /* void SetKeywords( char const * keywords ) */
  660. static SQRESULT sq_glue_SetKeywords(HSQUIRRELVM v){
  661. SQ_FUNC_VARS_NO_TOP(v);
  662. GET_SQ_FPDF();
  663. SQ_GET_STRING(v, 2, keywords);
  664. self->SetKeywords(keywords);
  665. return 0;
  666. }
  667. /* void SetLeftMargin( pdf_float_t margin ) */
  668. static SQRESULT sq_glue_SetLeftMargin(HSQUIRRELVM v){
  669. SQ_FUNC_VARS_NO_TOP(v);
  670. GET_SQ_FPDF();
  671. SQ_GET_FLOAT(v, 2, margin);
  672. self->SetLeftMargin(margin);
  673. return 0;
  674. }
  675. /* void SetLineWidth( pdf_float_t width ) */
  676. static SQRESULT sq_glue_SetLineWidth(HSQUIRRELVM v){
  677. SQ_FUNC_VARS_NO_TOP(v);
  678. GET_SQ_FPDF();
  679. SQ_GET_FLOAT(v, 2, width);
  680. self->SetLineWidth(width);
  681. return 0;
  682. }
  683. /* void SetLink( int link , pdf_float_t y = 0 , int page = -1 ) */
  684. static SQRESULT sq_glue_SetLink(HSQUIRRELVM v){
  685. SQ_FUNC_VARS(v);
  686. GET_SQ_FPDF();
  687. SQ_GET_INTEGER(v, 2, link);
  688. SQ_OPT_FLOAT(v, 3, y, 0);
  689. SQ_OPT_INTEGER(v, 4, page, -1);
  690. self->SetLink(link, y, page);
  691. return 0;
  692. }
  693. /* void SetMargins( pdf_float_t left , pdf_float_t top , pdf_float_t right = 0.0f ) */
  694. static SQRESULT sq_glue_SetMargins(HSQUIRRELVM v){
  695. SQ_FUNC_VARS(v);
  696. GET_SQ_FPDF();
  697. SQ_GET_FLOAT(v, 2, left);
  698. SQ_GET_FLOAT(v, 3, top);
  699. SQ_OPT_FLOAT(v, 4, right, 0.0f);
  700. self->SetMargins(left, top, right);
  701. return 0;
  702. }
  703. /* void SetRightMargin( pdf_float_t margin ) */
  704. static SQRESULT sq_glue_SetRightMargin(HSQUIRRELVM v){
  705. SQ_FUNC_VARS_NO_TOP(v);
  706. GET_SQ_FPDF();
  707. SQ_GET_FLOAT(v, 2, margin);
  708. self->SetRightMargin(margin);
  709. return 0;
  710. }
  711. /* void SetSubject( char const * subject ) */
  712. static SQRESULT sq_glue_SetSubject(HSQUIRRELVM v){
  713. SQ_FUNC_VARS_NO_TOP(v);
  714. GET_SQ_FPDF();
  715. SQ_GET_STRING(v, 2, subject);
  716. self->SetSubject(subject);
  717. return 0;
  718. }
  719. /* void SetTextColor( unsigned char r , unsigned char g , unsigned char b ) */
  720. static SQRESULT sq_glue_SetTextColor(HSQUIRRELVM v){
  721. SQ_FUNC_VARS_NO_TOP(v);
  722. GET_SQ_FPDF();
  723. SQ_GET_INTEGER(v, 2, r);
  724. SQ_GET_INTEGER(v, 3, g);
  725. SQ_GET_INTEGER(v, 4, b);
  726. self->SetTextColor(r, g, b);
  727. return 0;
  728. }
  729. /* void SetTitle( char const * title ) */
  730. static SQRESULT sq_glue_SetTitle(HSQUIRRELVM v){
  731. SQ_FUNC_VARS_NO_TOP(v);
  732. GET_SQ_FPDF();
  733. SQ_GET_STRING(v, 2, title);
  734. self->SetTitle(title);
  735. return 0;
  736. }
  737. /* void SetTopMargin( pdf_float_t margin ) */
  738. static SQRESULT sq_glue_SetTopMargin(HSQUIRRELVM v){
  739. SQ_FUNC_VARS_NO_TOP(v);
  740. GET_SQ_FPDF();
  741. SQ_GET_FLOAT(v, 2, margin);
  742. self->SetTopMargin(margin);
  743. return 0;
  744. }
  745. /* void SetX( pdf_float_t x ) */
  746. static SQRESULT sq_glue_SetX(HSQUIRRELVM v){
  747. SQ_FUNC_VARS_NO_TOP(v);
  748. GET_SQ_FPDF();
  749. SQ_GET_FLOAT(v, 2, x);
  750. self->SetX(x);
  751. return 0;
  752. }
  753. /* void SetXY( pdf_float_t x , pdf_float_t y ) */
  754. static SQRESULT sq_glue_SetXY(HSQUIRRELVM v){
  755. SQ_FUNC_VARS_NO_TOP(v);
  756. GET_SQ_FPDF();
  757. SQ_GET_FLOAT(v, 2, x);
  758. SQ_GET_FLOAT(v, 3, y);
  759. self->SetXY(x, y);
  760. return 0;
  761. }
  762. /* void SetY( pdf_float_t y ) */
  763. static SQRESULT sq_glue_SetY(HSQUIRRELVM v){
  764. SQ_FUNC_VARS_NO_TOP(v);
  765. GET_SQ_FPDF();
  766. SQ_GET_FLOAT(v, 2, y);
  767. self->SetY(y);
  768. return 0;
  769. }
  770. /* void Text( pdf_float_t x , pdf_float_t y , char const * txt ) */
  771. static SQRESULT sq_glue_Text(HSQUIRRELVM v){
  772. SQ_FUNC_VARS_NO_TOP(v);
  773. GET_SQ_FPDF();
  774. SQ_GET_FLOAT(v, 2, x);
  775. SQ_GET_FLOAT(v, 3, y);
  776. SQ_GET_STRING(v, 4, txt);
  777. self->Text(x, y, txt);
  778. return 0;
  779. }
  780. /* void TextShadow( pdf_float_t x , pdf_float_t y , char const * txt , pdf_float_t displacement = .3 ) */
  781. static SQRESULT sq_glue_TextShadow(HSQUIRRELVM v){
  782. SQ_FUNC_VARS(v);
  783. GET_SQ_FPDF();
  784. SQ_GET_FLOAT(v, 2, x);
  785. SQ_GET_FLOAT(v, 3, y);
  786. SQ_GET_STRING(v, 4, txt);
  787. SQ_OPT_FLOAT(v, 5, displacement, .3);
  788. self->TextShadow(x, y, txt, displacement);
  789. return 0;
  790. }
  791. /* void UnsetClipping( ) */
  792. static SQRESULT sq_glue_UnsetClipping(HSQUIRRELVM v){
  793. SQ_FUNC_VARS_NO_TOP(v);
  794. GET_SQ_FPDF();
  795. self->UnsetClipping();
  796. return 0;
  797. }
  798. /* void Write( pdf_float_t h , char const * txt , int link = 0 ) */
  799. static SQRESULT sq_glue_Write(HSQUIRRELVM v){
  800. SQ_FUNC_VARS(v);
  801. GET_SQ_FPDF();
  802. SQ_GET_FLOAT(v, 2, h);
  803. SQ_GET_STRING(v, 3, txt);
  804. SQ_OPT_INTEGER(v, 4, link, 0);
  805. self->Write(h, txt, link);
  806. return 0;
  807. }
  808. /* int getCustomZoom( ) */
  809. static SQRESULT sq_glue_getCustomZoom(HSQUIRRELVM v){
  810. SQ_FUNC_VARS_NO_TOP(v);
  811. GET_SQ_FPDF();
  812. sq_pushinteger(v, self->getCustomZoom());
  813. return 1;
  814. }
  815. /* void reset( FPDF::e_orientation orientation = FPDF::e_orientation_portrait , FPDF::e_units unit = FPDF::e_mm , FPDF::e_page_sizes psize = FPDF::e_A4 ) */
  816. static SQRESULT sq_glue_reset(HSQUIRRELVM v){
  817. SQ_FUNC_VARS(v);
  818. GET_SQ_FPDF();
  819. SQ_OPT_INTEGER(v, 2, orientation, FPDF::e_orientation_portrait);
  820. SQ_OPT_INTEGER(v, 3, unit, FPDF::e_mm);
  821. SQ_OPT_INTEGER(v, 4, psize, FPDF::e_A4);
  822. //self->reset(orientation, unit, psize);
  823. return 0;
  824. }
  825. /* void setCustomZoom( int zoom ) */
  826. static SQRESULT sq_glue_setCustomZoom(HSQUIRRELVM v){
  827. SQ_FUNC_VARS_NO_TOP(v);
  828. GET_SQ_FPDF();
  829. SQ_GET_INTEGER(v, 2, zoom);
  830. self->setCustomZoom(zoom);
  831. return 0;
  832. }
  833. #define _DECL_FUNC(name,nparams,tycheck) {_SC(#name), sq_glue_##name,nparams,tycheck}
  834. static SQRegFunction sq_glue_my_methods[] =
  835. {
  836. _DECL_FUNC(constructor, 1, _SC("x")),
  837. _DECL_FUNC(AcceptPageBreak, 1, _SC("x")),
  838. _DECL_FUNC(AddFont, -2, _SC("xsss")),
  839. _DECL_FUNC(AddLink, 1, _SC("x")),
  840. _DECL_FUNC(AddPage, -1, _SC("xis")),
  841. _DECL_FUNC(AliasNbPages, -1, _SC("xs")),
  842. _DECL_FUNC(CalcLines, 3, _SC("xns")),
  843. _DECL_FUNC(Cell, -2, _SC("xnnssiiii")),
  844. _DECL_FUNC(CellFit, -2, _SC("xnnssiiiiii")),
  845. _DECL_FUNC(CellFitScale, -2, _SC("xnnssiiii")),
  846. _DECL_FUNC(CellFitScaleForce, -2, _SC("xnnssiiii")),
  847. _DECL_FUNC(CellFitSpace, -2, _SC("xnnssiiii")),
  848. _DECL_FUNC(CellFitSpaceForce, -2, _SC("xnnssiiii")),
  849. _DECL_FUNC(CheckPageBreak, 2, _SC("xn")),
  850. _DECL_FUNC(Circle, -4, _SC("xnnns")),
  851. _DECL_FUNC(ClippedCell, -2, _SC("xnnssiiii")),
  852. _DECL_FUNC(ClippingRect, -5, _SC("xnnnni")),
  853. _DECL_FUNC(ClippingText, -4, _SC("xnnsi")),
  854. _DECL_FUNC(Close, 1, _SC("x")),
  855. _DECL_FUNC(Ellipse, -5, _SC("xnnnns")),
  856. _DECL_FUNC(Error, 2, _SC("xs")),
  857. _DECL_FUNC(Footer, 1, _SC("x")),
  858. _DECL_FUNC(GetAliasNbPages, 1, _SC("x")),
  859. _DECL_FUNC(GetDrawColor, 2, _SC("xi")),
  860. _DECL_FUNC(GetFillColor, 2, _SC("xi")),
  861. _DECL_FUNC(GetFontSettings, 2, _SC("xi")),
  862. _DECL_FUNC(GetFontSize, 1, _SC("x")),
  863. _DECL_FUNC(GetH, 1, _SC("x")),
  864. _DECL_FUNC(GetLeftMargin, 1, _SC("x")),
  865. _DECL_FUNC(GetRightMargin, 1, _SC("x")),
  866. _DECL_FUNC(GetStringWidth, 2, _SC("xs")),
  867. _DECL_FUNC(GetStringWidth, 2, _SC("xi")),
  868. _DECL_FUNC(GetTextColor, 2, _SC("xi")),
  869. _DECL_FUNC(GetW, 1, _SC("x")),
  870. _DECL_FUNC(GetX, 1, _SC("x")),
  871. _DECL_FUNC(GetY, 1, _SC("x")),
  872. _DECL_FUNC(Header, 1, _SC("x")),
  873. _DECL_FUNC(Image, -2, _SC("xsnnnnsi")),
  874. _DECL_FUNC(IncludeJS, 2, _SC("xs")),
  875. _DECL_FUNC(Line, 5, _SC("xnnnn")),
  876. _DECL_FUNC(Link, 6, _SC("xnnnni")),
  877. _DECL_FUNC(Ln, -1, _SC("xn")),
  878. _DECL_FUNC(MultiCell, -4, _SC("xnnssii")),
  879. _DECL_FUNC(MultiCellBlt, -5, _SC("xnnsssii")),
  880. _DECL_FUNC(Open, 1, _SC("x")),
  881. _DECL_FUNC(Output, -1, _SC("xsi")),
  882. _DECL_FUNC(PageNo, 1, _SC("x")),
  883. _DECL_FUNC(Rect, -5, _SC("xnnnns")),
  884. _DECL_FUNC(Rotate, -2, _SC("xnnn")),
  885. _DECL_FUNC(RotatedText, 5, _SC("xnnsn")),
  886. _DECL_FUNC(RoundedRect, -6, _SC("xnnnnns")),
  887. _DECL_FUNC(SetAlpha, -2, _SC("xns")),
  888. _DECL_FUNC(SetAuthor, 2, _SC("xs")),
  889. _DECL_FUNC(SetAutoPageBreak, -2, _SC("xin")),
  890. _DECL_FUNC(SetCompression, 2, _SC("xb")),
  891. _DECL_FUNC(SetCreator, 2, _SC("xs")),
  892. _DECL_FUNC(SetDash, -1, _SC("xnn")),
  893. _DECL_FUNC(SetDisplayMode, -2, _SC("xii")),
  894. _DECL_FUNC(SetDoubleSided, -1, _SC("xnn")),
  895. _DECL_FUNC(SetDrawColor, -2, _SC("xiii")),
  896. _DECL_FUNC(SetFillColor, -2, _SC("xiii")),
  897. _DECL_FUNC(SetFont, -1, _SC("xssn")),
  898. _DECL_FUNC(SetFontSettings, 2, _SC("xi")),
  899. _DECL_FUNC(SetFontSize, 2, _SC("xn")),
  900. _DECL_FUNC(SetKeywords, 2, _SC("xs")),
  901. _DECL_FUNC(SetLeftMargin, 2, _SC("xn")),
  902. _DECL_FUNC(SetLineWidth, 2, _SC("xn")),
  903. _DECL_FUNC(SetLink, -2, _SC("xini")),
  904. _DECL_FUNC(SetMargins, -3, _SC("xnnn")),
  905. _DECL_FUNC(SetRightMargin, 2, _SC("xn")),
  906. _DECL_FUNC(SetSubject, 2, _SC("xs")),
  907. _DECL_FUNC(SetTextColor, -2, _SC("xiii")),
  908. _DECL_FUNC(SetTitle, 2, _SC("xs")),
  909. _DECL_FUNC(SetTopMargin, 2, _SC("xn")),
  910. _DECL_FUNC(SetX, 2, _SC("xn")),
  911. _DECL_FUNC(SetXY, 3, _SC("xnn")),
  912. _DECL_FUNC(SetY, 2, _SC("xn")),
  913. _DECL_FUNC(Text, 4, _SC("xnns")),
  914. _DECL_FUNC(TextShadow, -4, _SC("xnnsn")),
  915. _DECL_FUNC(UnsetClipping, 1, _SC("x")),
  916. _DECL_FUNC(Write, -3, _SC("xnsi")),
  917. _DECL_FUNC(getCustomZoom, 1, _SC("x")),
  918. _DECL_FUNC(reset, -1, _SC("xiii")),
  919. _DECL_FUNC(setCustomZoom, 2, _SC("xi")),
  920. {0,0}
  921. };
  922. #ifdef __cplusplus
  923. extern "C" {
  924. #endif
  925. SQRESULT sqstd_register_Sq_Fpdf(HSQUIRRELVM v)
  926. {
  927. sq_pushstring(v,SQ_FPDF_TAG,-1);
  928. sq_newclass(v,SQFalse);
  929. sq_settypetag(v,-1,(void*)SQ_FPDF_TAG);
  930. sq_insert_reg_funcs(v, sq_glue_my_methods);
  931. sq_newslot(v,-3,SQTrue);
  932. return 1;
  933. }
  934. #ifdef __cplusplus
  935. }
  936. #endif