/* CHAPTER 8. Logos, Watermarks and Stamps */ /* * cpdf_stampOn(stamp_pdf, pdf, range) stamps stamp_pdf on top of all the * pages in the document which are in the range. The stamp is placed with its * origin at the origin of the target document. */ void cpdf_stampOn(int, int, int); /* * cpdf_stampUnder(stamp_pdf, pdf, range) stamps stamp_pdf under all the * pages in the document which are in the range. The stamp is placed with its * origin at the origin of the target document. */ void cpdf_stampUnder(int, int, int); /* * cpdf_stampExtended(pdf, pdf2, range, isover, scale_stamp_to_fit, pos, * relative_to_cropbox) is a stamping function with extra features. - isover * true, pdf goes over pdf2, isover false, pdf goes under pdf2 - * scale_stamp_to_fit scales the stamp to fit the page - pos gives the * position to put the stamp - relative_to_cropbox: if true, pos is relative * to cropbox not mediabox. */ void cpdf_stampExtended(int, int, int, int, int, struct cpdf_position, int); /* * cpdf_combinePages(under, over) combines the PDFs page-by-page, putting * each page of 'over' over each page of 'under'. */ int cpdf_combinePages(int, int); /* Adding text. */ /* * Special codes * * %Page Page number in arabic notation (1, 2, 3...) * * %roman Page number in lower-case roman notation (i, ii, iii...) * * %Roman Page number in upper-case roman notation (I, II, III...) * * %EndPage Last page of document in arabic notation * * %Label The page label of the page * * %EndLabel The page label of the last page * * %Filename The file name * * %a Abbreviated weekday name (Sun, Mon etc.) * * %A Full weekday name (Sunday, Monday etc.) * * %b Abbreviated month name (Jan, Feb etc.) * * %B Full month name (January, February etc.) * * %d Day of the month (01-31) * * %e Day of the month (1-31) * * %H Hour in 24-hour clock (00-23) * * %I Hour in 12-hour clock (01-12) * * %j Day of the year (001-366) * * %m Month of the year (01-12) * * %M Minute of the hour (00-59) * * %p "a.m" or "p.m" * * %S Second of the minute (00-61) * * %T Same as %H:%M:%S * * %u Weekday (1-7, 1 = Monday) * * %w Weekday (0-6, 0 = Monday) * * %Y Year (0000-9999) * * %% The % character */ /* The standard fonts */ char *cpdf_timesRoman = "Times-Roman"; char *cpdf_timesBold = "Times-Bold"; char *cpdf_timesItalic = "Times-Italic"; char *cpdf_timesBoldItalic = "Times-BoldItalic"; char *cpdf_helvetica = "Helvetica"; char *cpdf_helveticaBold = "Helvetica-Bold"; char *cpdf_helveticaOblique = "Helvetica-Oblique"; char *cpdf_helveticaBoldOblique = "Helvetica-BoldOblique"; char *cpdf_courier = "Courier"; char *cpdf_courierBold = "Courier-Bold"; char *cpdf_courierOblique = "Courier-Oblique"; char *cpdf_courierBoldOblique = "Courier-BoldOblique"; /* Justifications for multi line text */ enum cpdf_justification { cpdf_leftJustify, /* Left justify */ cpdf_CentreJustify, /* Centre justify */ cpdf_RightJustify /* Right justify */ }; /* Add text */ void cpdf_addText(int, /* If true, don't actually add text but * collect metrics. */ int, /* Document */ int, /* Page Range */ const char[], /* The text to add */ struct cpdf_position, /* Position to add text at */ double, /* Linespacing, 1.0 = normal */ int, /* Starting Bates number */ const char[], /* Font */ double, /* Font size in points */ double, /* Red component of colour, 0.0 - 1.0 */ double, /* Green component of colour, 0.0 - 1.0 */ double, /* Blue component of colour, 0.0 - 1.0 */ int, /* If true, text is added underneath rather * than on top */ int, /* If true, position is relative to crop box * not media box */ int, /* If true, text is outline rather than * filled */ double, /* Opacity, 1.0 = opaque, 0.0 = wholly * transparent */ enum cpdf_justification, /* Justification */ int, /* If true, position is relative to midline * of text, not baseline */ int, /* If true, position is relative to topline * of text, not baseline */ const char[], /* filename that this document was read from * (optional) */ double, /* line width */ int /* embed fonts */ ); /* Add text, with most parameters default. NB %filename cannot be used here. */ void cpdf_addTextSimple(int, /* Document */ int, /* Page range */ const char[], /* The text to add */ struct cpdf_position, /* Position to add text * at */ const char[], /* font */ double); /* font size */ /* * cpdf_removeText(pdf, range) will remove any text added by libcpdf from the * given pages. */ void cpdf_removeText(int, int); /* * Return the width of a given string in the given standard font in thousandths * of a point. */ int cpdf_textWidth(const char[], const char[]); /* cpdf_addContent(content, before, pdf, range) adds page content before (if * true) or after (if false) the existing content to pages in the given range * in the given PDF. */ void cpdf_addContent(const char[], int, int, int); /* cpdf_stampAsXObject(pdf, range, stamp_pdf) stamps stamp_pdf onto the pages * in the given range in pdf as a shared Form XObject. The name of the * newly-created XObject is returned. */ char *cpdf_stampAsXObject(int, int, int);