Current File : /opt/alt/libharu/usr/share/libharu/bindings/freebasic//hpdftest.bas
'******************************************************************************
'* Program name: hpdftest
'* Version: 0.1
'*
'* Author: Copyright (c) 2008 Klaus Siebke
'* Siebke Unternehmensberatung
'* URL http://www.siebke.com
'*
'* Description:
'* -----------
'*
'* Program to test the creation of a PDF file using the Haru Free PDF Library
'* for more details see: http://www.freebasic.net/forum/viewtopic.php?t=9014
'*
'* License:
'* -------
'*
'* Permission to use, copy, modify, distribute and sell this software
'* and its documentation for any purpose is hereby granted without fee,
'* provided that the above copyright notice appear in all copies and
'* that both that copyright notice and this permission notice appear
'* in supporting documentation.
'* It is provided "as is" without express or implied warranty.
'*
'*
'* External libraries used by the program:
'* --------------------------------------
'*
'* << Haru Free PDF Library 2.0.8 >>
'* URL http://libharu.org/
'* Copyright (c) 1999-2006 Takeshi Kanno
'*
'******************************************************************************
#include "crt/errno.bi"
#include "zlib.bi"
'******************************************************************************
'* Includes for Haru Free PDF Library
'******************************************************************************
#ifndef __mod_hpdf_bi__
#define __mod_hpdf_bi__
#include once "hpdf_consts.bi"
#include once "hpdf_types.bi"
#include once "hpdf.bi"
#endif
'******************************************************************************
'* Declarations of subroutines and functions
'******************************************************************************
declare sub error_handler cdecl (byval error_no as HPDF_STATUS, byval detail_no as HPDF_STATUS, byval user_data as any ptr )
'******************************************************************************
'* Constants
'******************************************************************************
#define NULL 0
const page_title = "PDF test document"
'******************************************************************************
'* Variables
'******************************************************************************
dim shared pdf as HPDF_Doc 'ptr
dim shared fname as string * 256
dim shared page as HPDF_Page
dim shared def_font as HPDF_Font
dim shared txt_font as HPDF_Font
dim shared tw as HPDF_REAL
dim shared doc_height as HPDF_REAL
dim shared doc_width as HPDF_REAL
dim shared i as HPDF_UINT
'dim shared errno as HPDF_STATUS ptr
dim shared detno as HPDF_STATUS ptr
dim shared userdat as any ptr
'******************************************************************************
'* Begin of main program
'******************************************************************************
'let's go ... (initialize hpdf)
pdf = HPDF_New(@error_handler, NULL)
'add a new page object
page = HPDF_AddPage (pdf)
'specify the document size
doc_height = HPDF_Page_GetHeight (page)
doc_width = HPDF_Page_GetWidth (page)
'print a frame
HPDF_Page_SetLineWidth (page, .5)
HPDF_Page_Rectangle (page, 50, 50, doc_width - 100, doc_height - 110)
HPDF_Page_Stroke (page)
'print the title of the page (with positioning center) with font Helvetica
def_font = HPDF_GetFont (pdf, "Helvetica", NULL)
HPDF_Page_SetFontAndSize (page, def_font, 24)
tw = HPDF_Page_TextWidth (page, page_title)
HPDF_Page_BeginText (page)
HPDF_Page_TextOut (page, (doc_width - tw) / 2, doc_height - 50, page_title)
HPDF_Page_EndText (page)
'print some text inside the frame
HPDF_Page_BeginText (page)
'first line with font Times Roman 14
txt_font = HPDF_GetFont (pdf, "Times-Roman", NULL)
HPDF_Page_MoveTextPos (page, 60, doc_height - 105)
HPDF_Page_SetFontAndSize (page, txt_font, 14)
HPDF_Page_ShowText (page, "This is a first line")
'second line with font Courier 12
txt_font = HPDF_GetFont (pdf, "Courier", NULL)
HPDF_Page_MoveTextPos (page, 0, -20)
HPDF_Page_SetFontAndSize (page, txt_font, 12)
HPDF_Page_ShowText (page, "This is a second line")
'third line with font Symbol 16
txt_font = HPDF_GetFont (pdf, "Symbol", NULL)
HPDF_Page_MoveTextPos (page, 0, -20)
HPDF_Page_SetFontAndSize (page, txt_font, 16)
HPDF_Page_ShowText (page, "Here are some symbols")
'fourth line with font Helvetica 14
txt_font = HPDF_GetFont (pdf, "Helvetica", NULL)
HPDF_Page_MoveTextPos (page, 0, -20)
HPDF_Page_SetFontAndSize (page, txt_font, 14)
HPDF_Page_ShowText (page, "This is arial")
HPDF_Page_EndText (page)
'save the document
HPDF_SaveToFile (pdf, "mydoc.pdf")
'clean up
HPDF_Free (pdf)
'******************************************************************************
'* End of main program
'******************************************************************************
sub error_handler cdecl (byval error_no as HPDF_STATUS, byval detail_no as HPDF_STATUS, byval user_data as any ptr)
'******************************************************************************
'* Error handler
'******************************************************************************
' do something here ...
print "error_no: ", error_no
print "detail_no:", detail_no
print "data: ", user_data
end sub