# Documentation/Usage

### From libHaru.org wiki

< Documentation

# Initialize document object

First, invoke HPDF_New() or HPDF_NewEx() to create an HPDF_Doc "document object". If user-defined memory management is needed, use HPDF_NewEx(). The document object handle which is returned from HPDF_New() or HPDF_NewEx() is used in the following steps.

You can specify a user-defined error function ("error_handler" here) in this step. After HPDF_New() succeeds, you can call setjmp() for exception handling. (See the chapter of "Error Handling")

    #include "hpdf.h"

    HPDF_Doc pdf;

    pdf = HPDF_New (error_handler, NULL);
    if (!pdf) {
        printf ("ERROR: cannot create pdf object.\n");
        return 1;
    }

    if (setjmp(env)) {
        HPDF_Free (pdf);
        return 1;
    }

# Set document object attributes

Set compression, encryption, page mode, and password if necessary.

    /* set compression mode */
    HPDF_SetCompressionMode (pdf, HPDF_COMP_ALL);

    /* set page mode to use outlines. */
    HPDF_SetPageMode (pdf, HPDF_PAGE_MODE_USE_OUTLINE);

    /* set password */
    HPDF_SetPassword (pdf, "owner", "user");

# Create new page

Call HPDF_AddPage() to add a page to the document. The page handle returned is used in later operations on the page.

    HPDF_Page page_1;

    page_1 = HPDF_AddPage (pdf);

To insert a new page before an existing page, call HPDF_InsertPage(). For example, to insert "page_0" before "page_1":

    HPDF_Page page_0;

    page_0 = HPDF_InsertPage (pdf, page_1);

# Set page object

Set attributes of the page object if necessary.

    HPDF_Page_SetSize (page_1, HPDF_PAGE_SIZE_B5, HPDF_PAGE_LANDSCAPE);

# Page description

Perform drawing operations. Place text on the page. For details, please refer to "Graphics" chapter.

# Save document to file or memory stream

HPDF_SaveToFile() saves a document to a file.

    HPDF_SaveToFile (pdf, "test.pdf");

HPDF_SaveToStream() saves a document to a temporary stream. An application can get the data saved by HPDF_SaveToStream() by invoking HPDF_ReadFromStream(). The following code shows how to output the document to stdout.

    /* save the document to a stream */
    HPDF_SaveToStream (pdf);
    fprintf (stderr, "the size of data is %d\n", HPDF_GetStreamSize(pdf));

    HPDF_ResetStream (pdf); /* rewind the stream. */

    /* get the data from the stream and output it to stdout. */
    for (;;) {
        HPDF_BYTE buf[4096];
        HPDF_UINT32 siz = 4096;
        HPDF_STATUS ret = HPDF_ReadFromStream (pdf, buf, &siz);

        if (siz == 0)
            break;

        if (fwrite (buf, siz, 1, stdout) != 1) {
            fprintf (stderr, "cannot write to stdout", siz, wsiz);
            break;
        }
    }

# Create next document

If you want to create another document, call HPDF_NewDoc(). HPDF_NewDoc() creates a new document after revoking the current document.

    HPDF_NewDoc (pdf);

# Finalization and cleanup

After all processes are finished, call HPDF_Free() to free all resources which belong to the document object.

    HPDF_Free (pdf);

Retrieved from "http://daylessday../../../../articles/d/o/c/Documentation_Usage_92c7.html"

##### Views

- Page
- Discussion
- View source
- History

##### Personal tools

- Log in

##### Search

##### Toolbox

- What links here
- Related changes
- Special pages
- Printable version
- Permanent link