Bookmark: Insert a bookmark for current page   [ 4 ]

Description

Inserts a bookmark on current page. This function takes 3 parameters:
  1. Text  ⇒  character string pointer which specifies the text of the bookmark to be inserted.
  2. Level ⇒  null or positive integer which specifies the level of this bookmark within a potential hierarchical bookmark tree.
  3. Y     ⇒  float number which further specifies ordinate location where this bookmark will point when clicked upon.
 

C calling syntax
void Bookmark (char *text, int level, float y);
Cobol calling syntax
CALL "Bookmark" using by value TEXT,LEVEL,Y.
C sample code
#include   "fpdf.h"

static char   f_ini ??(??) = ??< "ini??/??/demofpdf.ini" ??>;
static char   f_out ??(??) = ??< "pdf??/??/demo_d.pdf" ??>;
static char   buf0  ??(128??);

/* ----------------------------------------------------------------- */

int  main (int argc, char *argv [])

??<
int    ii, jj;
char   *ptr;

NewPdfy (f_ini, 1);
jj = P_MODIFY + P_ANNOT_FORMS;
SetProtection (jj, "USER-PSWD", "OWNER-PSWD");
for (ii = 0; ii < 9; ii ++)
    begin
    AddPage("L");
    jj = PageNo ();
    sprintf (buf0, "numbers%d", jj);
    if ((ii & 1) == 0)
       ptr = "";
    else
       ptr = "http://www.cnn.com";
    Image (buf0, 50, 20, 200, 0, "jpg", ptr);
    sprintf (buf0, "Page %d", jj);
    Bookmark (buf0, 0, 0);
    end

Output (f_out);
??>
Description of sample code
This piece of code illustrates various functions found in FPDF4ZOS interface.  It opens a PDF context and specifies that the document ought to be protected at both levels: 
- It requires from users to key the string USER-PSWD in order to be able to read the document => encryption at user level.
- It further encodes the document at owner level, forbidding Print and copy-paste features.  In order to change these protections, a user should key password OWNER-PSWD.

Program then performs a loop on 9 pages in each of which a different image is inserted.  Note that in the even pages, the image carries a link to web site www.cnn.com.  The following functions are used in this piece:
- NewPdfy()         --> Initialisation of a pdf context
- AddPage()         --> As it says
- SetProtection()   --> Instruct that PDF is to be protected at user and owner levels
- Image()           --> Insert an image into a PDF document
- Bookmark()        --> Insert an bookmark into a PDF document
- PageNo()          --> Retrieve current page number while building PDF document
- FlushPdf()        --> Output PDF file taking into account all the instructions invoked since NewPdfy or previous FlushPdf
See sample source code in 'C' as well as PDF execution result  -  NB: For encrypted PDFs, user password is USER-PSWD