void PDF_ExtGState_SetBlendMode(sLONG_PTR *pResult, PackagePtr pParams) { C_TEXT Param1; C_LONGINT Param2; C_LONGINT returnValue; Param1.fromParamAtIndex(pParams, 1); Param2.fromParamAtIndex(pParams, 2); HPDF_ExtGState ext_gstate = (HPDF_ExtGState)_fromHex(Param1); HPDF_BlendMode mode = (HPDF_BlendMode)Param2.getIntValue(); returnValue.setIntValue(HPDF_ExtGState_SetBlendMode(ext_gstate, mode)); returnValue.setReturn(pResult); }
int main (int argc, char **argv) { HPDF_Doc pdf; HPDF_Page page; char fname[256]; HPDF_Font hfont; HPDF_ExtGState gstate; const HPDF_REAL PAGE_WIDTH = 600; const HPDF_REAL PAGE_HEIGHT = 900; strcpy (fname, argv[0]); strcat (fname, ".pdf"); pdf = HPDF_New (error_handler, NULL); if (!pdf) { printf ("error: cannot create PdfDoc object\n"); return 1; } if (setjmp(env)) { HPDF_Free (pdf); return 1; } hfont = HPDF_GetFont (pdf, "Helvetica-Bold", NULL); /* add a new page object. */ page = HPDF_AddPage (pdf); HPDF_Page_SetFontAndSize (page, hfont, 10); HPDF_Page_SetHeight (page, PAGE_HEIGHT); HPDF_Page_SetWidth (page, PAGE_WIDTH); /* normal */ HPDF_Page_GSave (page); draw_circles (page, "normal", 40.0f, PAGE_HEIGHT - 170); HPDF_Page_GRestore (page); /* transparency (0.8) */ HPDF_Page_GSave (page); gstate = HPDF_CreateExtGState (pdf); HPDF_ExtGState_SetAlphaFill (gstate, 0.8); HPDF_ExtGState_SetAlphaStroke (gstate, 0.8); HPDF_Page_SetExtGState (page, gstate); draw_circles (page, "alpha fill = 0.8", 230.0f, PAGE_HEIGHT - 170); HPDF_Page_GRestore (page); /* transparency (0.4) */ HPDF_Page_GSave (page); gstate = HPDF_CreateExtGState (pdf); HPDF_ExtGState_SetAlphaFill (gstate, 0.4); HPDF_Page_SetExtGState (page, gstate); draw_circles (page, "alpha fill = 0.4", 420.0f, PAGE_HEIGHT - 170); HPDF_Page_GRestore (page); /* blend-mode=HPDF_BM_MULTIPLY */ HPDF_Page_GSave (page); gstate = HPDF_CreateExtGState (pdf); HPDF_ExtGState_SetBlendMode (gstate, HPDF_BM_MULTIPLY); HPDF_Page_SetExtGState (page, gstate); draw_circles (page, "HPDF_BM_MULTIPLY", 40.0f, PAGE_HEIGHT - 340); HPDF_Page_GRestore (page); /* blend-mode=HPDF_BM_SCREEN */ HPDF_Page_GSave (page); gstate = HPDF_CreateExtGState (pdf); HPDF_ExtGState_SetBlendMode (gstate, HPDF_BM_SCREEN); HPDF_Page_SetExtGState (page, gstate); draw_circles (page, "HPDF_BM_SCREEN", 230.0f, PAGE_HEIGHT - 340); HPDF_Page_GRestore (page); /* blend-mode=HPDF_BM_OVERLAY */ HPDF_Page_GSave (page); gstate = HPDF_CreateExtGState (pdf); HPDF_ExtGState_SetBlendMode (gstate, HPDF_BM_OVERLAY); HPDF_Page_SetExtGState (page, gstate); draw_circles (page, "HPDF_BM_OVERLAY", 420.0f, PAGE_HEIGHT - 340); HPDF_Page_GRestore (page); /* blend-mode=HPDF_BM_DARKEN */ HPDF_Page_GSave (page); gstate = HPDF_CreateExtGState (pdf); HPDF_ExtGState_SetBlendMode (gstate, HPDF_BM_DARKEN); HPDF_Page_SetExtGState (page, gstate); draw_circles (page, "HPDF_BM_DARKEN", 40.0f, PAGE_HEIGHT - 510); HPDF_Page_GRestore (page); /* blend-mode=HPDF_BM_LIGHTEN */ HPDF_Page_GSave (page); gstate = HPDF_CreateExtGState (pdf); HPDF_ExtGState_SetBlendMode (gstate, HPDF_BM_LIGHTEN); HPDF_Page_SetExtGState (page, gstate); draw_circles (page, "HPDF_BM_LIGHTEN", 230.0f, PAGE_HEIGHT - 510); HPDF_Page_GRestore (page); /* blend-mode=HPDF_BM_COLOR_DODGE */ HPDF_Page_GSave (page); gstate = HPDF_CreateExtGState (pdf); HPDF_ExtGState_SetBlendMode (gstate, HPDF_BM_COLOR_DODGE); HPDF_Page_SetExtGState (page, gstate); draw_circles (page, "HPDF_BM_COLOR_DODGE", 420.0f, PAGE_HEIGHT - 510); HPDF_Page_GRestore (page); /* blend-mode=HPDF_BM_COLOR_BUM */ HPDF_Page_GSave (page); gstate = HPDF_CreateExtGState (pdf); HPDF_ExtGState_SetBlendMode (gstate, HPDF_BM_COLOR_BUM); HPDF_Page_SetExtGState (page, gstate); draw_circles (page, "HPDF_BM_COLOR_BUM", 40.0f, PAGE_HEIGHT - 680); HPDF_Page_GRestore (page); /* blend-mode=HPDF_BM_HARD_LIGHT */ HPDF_Page_GSave (page); gstate = HPDF_CreateExtGState (pdf); HPDF_ExtGState_SetBlendMode (gstate, HPDF_BM_HARD_LIGHT); HPDF_Page_SetExtGState (page, gstate); draw_circles (page, "HPDF_BM_HARD_LIGHT", 230.0f, PAGE_HEIGHT - 680); HPDF_Page_GRestore (page); /* blend-mode=HPDF_BM_SOFT_LIGHT */ HPDF_Page_GSave (page); gstate = HPDF_CreateExtGState (pdf); HPDF_ExtGState_SetBlendMode (gstate, HPDF_BM_SOFT_LIGHT); HPDF_Page_SetExtGState (page, gstate); draw_circles (page, "HPDF_BM_SOFT_LIGHT", 420.0f, PAGE_HEIGHT - 680); HPDF_Page_GRestore (page); /* blend-mode=HPDF_BM_DIFFERENCE */ HPDF_Page_GSave (page); gstate = HPDF_CreateExtGState (pdf); HPDF_ExtGState_SetBlendMode (gstate, HPDF_BM_DIFFERENCE); HPDF_Page_SetExtGState (page, gstate); draw_circles (page, "HPDF_BM_DIFFERENCE", 40.0f, PAGE_HEIGHT - 850); HPDF_Page_GRestore (page); /* blend-mode=HPDF_BM_EXCLUSHON */ HPDF_Page_GSave (page); gstate = HPDF_CreateExtGState (pdf); HPDF_ExtGState_SetBlendMode (gstate, HPDF_BM_EXCLUSHON); HPDF_Page_SetExtGState (page, gstate); draw_circles (page, "HPDF_BM_EXCLUSHON", 230.0f, PAGE_HEIGHT - 850); HPDF_Page_GRestore (page); /* save the document to a file */ HPDF_SaveToFile (pdf, fname); /* clean up */ HPDF_Free (pdf); return 0; }