'
' << Haru Free PDF Library >> -- hpdfvb.vb
'
' VB.Net wrapper for libhpdf.dll
'
' Copyright (c) 2008 Matthew Underwood <[email protected]>
'
' 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.
'
'
Imports System
Imports System.Runtime.InteropServices
Namespace HPdf
Public Enum HPdfPageLayout As Integer
HPDF_PAGE_LAYOUT_SINGLE = 0
HPDF_PAGE_LAYOUT_ONE_COLUMN
HPDF_PAGE_LAYOUT_TWO_CLUMN_LEFT
HPDF_PAGE_LAYOUT_TWO_CLUMN_RIGHT
HPDF_PAGE_LAYOUT_EOF
End Enum
Public Enum HPdfPageMode As Integer
HPDF_PAGE_MODE_USE_NONE = 0
HPDF_PAGE_MODE_USE_OUTLINE
HPDF_PAGE_MODE_USE_THUMBS
HPDF_PAGE_MODE_FULL_SCREEN
HPDF_PAGE_MODE_EOF
End Enum
Public Enum HPdfPageSizes As Integer
HPDF_PAGE_SIZE_LETTER = 0
HPDF_PAGE_SIZE_LEGAL
HPDF_PAGE_SIZE_A3
HPDF_PAGE_SIZE_A4
HPDF_PAGE_SIZE_A5
HPDF_PAGE_SIZE_B4
HPDF_PAGE_SIZE_B5
HPDF_PAGE_SIZE_EXECUTIVE
HPDF_PAGE_SIZE_US4x6
HPDF_PAGE_SIZE_US4x8
HPDF_PAGE_SIZE_US5x7
HPDF_PAGE_SIZE_COMM10
HPDF_PAGE_SIZE_EOF
End Enum
Public Enum HPdfPageDirection As Integer
HPDF_PAGE_PORTRAIT = 0
HPDF_PAGE_LANDSCAPE
End Enum
Public Enum HPdfPageNumStyle As UInt32
HPDF_PAGE_NUM_STYLE_DECIMAL = 0
HPDF_PAGE_NUM_STYLE_UPPER_ROMAN
HPDF_PAGE_NUM_STYLE_LOWER_ROMAN
HPDF_PAGE_NUM_STYLE_UPPER_LETTERS
HPDF_PAGE_NUM_STYLE_LOWER_LETTERS
HPDF_PAGE_NUM_STYLE_EOF
End Enum
Public Enum HPdfWritingMode As UInt32
HPDF_WMODE_HORIZONTAL = 0
HPDF_WMODE_VERTICAL
HPDF_WMODE_EOF
End Enum
Public Enum HPdfEncoderType As UInt32
HPDF_ENCODER_TYPE_SINGLE_BYTE = 0
HPDF_ENCODER_TYPE_DOUBLE_BYTE
HPDF_ENCODER_TYPE_UNINITIALIZED
HPDF_ENCODER_UNKNOWN
End Enum
Public Enum HPdfByteType As UInt32
HPDF_BYTE_TYPE_SINGLE = 0
HPDF_BYTE_TYPE_LEAD
HPDF_BYTE_TYPE_TRAIL
HPDF_BYTE_TYPE_UNKNOWN
End Enum
Public Enum HPdfAnnotHighlightMode As UInt32
HPDF_ANNOT_NO_HIGHTLIGHT = 0
HPDF_ANNOT_INVERT_BOX
HPDF_ANNOT_INVERT_BORDER
HPDF_ANNOT_DOWN_APPEARANCE
HPDF_ANNOT_HIGHTLIGHT_MODE_EOF
End Enum
Public Enum HPdfAnnotIcon As UInt32
HPDF_ANNOT_ICON_COMMENT = 0
HPDF_ANNOT_ICON_KEY
HPDF_ANNOT_ICON_NOTE
HPDF_ANNOT_ICON_HELP
HPDF_ANNOT_ICON_NEW_PARAGRAPH
HPDF_ANNOT_ICON_PARAGRAPH
HPDF_ANNOT_ICON_INSERT
HPDF_ANNOT_ICON_EOF
End Enum
Public Enum HPdfColorSpace As UInt32
HPDF_CS_DEVICE_GRAY = 0
HPDF_CS_DEVICE_RGB
HPDF_CS_DEVICE_CMYK
HPDF_CS_CAL_GRAY
HPDF_CS_CAL_RGB
HPDF_CS_LAB
HPDF_CS_ICC_BASED
HPDF_CS_SEPARATION
HPDF_CS_DEVICE_N
HPDF_CS_INDEXED
HPDF_CS_PATTERN
HPDF_CS_EOF
End Enum
Public Enum HPdfInfoType As UInt32
' date-time type parameters
HPDF_INFO_CREATION_DATE = 0
HPDF_INFO_MOD_DATE = 1
' string type parameters
HPDF_INFO_AUTHOR = 2
HPDF_INFO_CREATOR = 3
HPDF_INFO_PRODUCER = 4
HPDF_INFO_TITLE = 5
HPDF_INFO_SUBJECT = 6
HPDF_INFO_KEYWORDS = 7
HPDF_INFO_EOF = 8
End Enum
Public Enum HPdfEncryptMode As UInt32
HPDF_ENCRYPT_R2 = 2
HPDF_ENCRYPT_R3 = 3
End Enum
Public Enum HPdfTextRenderingMode As UInt32
HPDF_FILL = 0
HPDF_STROKE = 1
HPDF_FILL_THEN_STROKE = 2
HPDF_INVISIBLE = 3
HPDF_FILL_CLIPPING = 4
HPDF_STROKE_CLIPPING = 5
HPDF_FILL_STROKE_CLIPPING = 6
HPDF_CLIPPING = 7
HPDF_RENDERING_MODE_EOF = 8
End Enum
Public Enum HPdfLineCap As Integer
HPDF_BUTT_END = 0
HPDF_ROUND_END = 1
HPDF_PROJECTING_SQUARE_END = 2
HPDF_LINECAP_EOF = 3
End Enum
Public Enum HPdfLineJoin As Integer
HPDF_MITER_JOIN = 0
HPDF_ROUND_JOIN = 1
HPDF_BEVEL_JOIN = 2
HPDF_LINEJOIN_EOF = 3
End Enum
Public Enum HPdfTextAlignment As Integer
HPDF_TALIGN_LEFT = 0
HPDF_TALIGN_RIGHT = 1
HPDF_TALIGN_CENTER = 2
HPDF_TALIGN_JUSTIFY = 3
End Enum
Public Enum HPdfTransitionStyle As Integer
HPDF_TS_WIPE_RIGHT = 0
HPDF_TS_WIPE_UP
HPDF_TS_WIPE_LEFT
HPDF_TS_WIPE_DOWN
HPDF_TS_BARN_DOORS_HORIZONTAL_OUT
HPDF_TS_BARN_DOORS_HORIZONTAL_IN
HPDF_TS_BARN_DOORS_VERTICAL_OUT
HPDF_TS_BARN_DOORS_VERTICAL_IN
HPDF_TS_BOX_OUT
HPDF_TS_BOX_IN
HPDF_TS_BLINDS_HORIZONTAL
HPDF_TS_BLINDS_VERTICAL
HPDF_TS_DISSOLVE
HPDF_TS_GLITTER_RIGHT
HPDF_TS_GLITTER_DOWN
HPDF_TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT
HPDF_TS_REPLACE
HPDF_TS_EOF
End Enum
Public Enum HPdfBlendMode As Integer
HPDF_BM_NORMAL = 0
HPDF_BM_MULTIPLY
HPDF_BM_SCREEN
HPDF_BM_OVERLAY
HPDF_BM_DARKEN
HPDF_BM_LIGHTEN
HPDF_BM_COLOR_DODGE
HPDF_BM_COLOR_BUM
HPDF_BM_HARD_LIGHT
HPDF_BM_SOFT_LIGHT
HPDF_BM_DIFFERENCE
HPDF_BM_EXCLUSHON
HPDF_BM_EOF
End Enum
<StructLayout(LayoutKind.Sequential)> Public Structure HPdfRect
Public left As Single
Public bottom As Single
Public right As Single
Public top As Single
End Structure
<StructLayout(LayoutKind.Sequential)> Public Structure HPdfBox
Public left As Single
Public bottom As Single
Public right As Single
Public top As Single
End Structure
<StructLayout(LayoutKind.Sequential)> Public Structure HPdfPoint
Public x As Single
Public y As Single
End Structure
<StructLayout(LayoutKind.Sequential)> Public Structure HPdfDate
Public year As Int32
Public month As Int32
Public day As Int32
Public hour As Int32
Public minutes As Int32
Public seconds As Int32
Public ind As Char
Public off_hour As Int32
Public off_minutes As Int32
End Structure
<StructLayout(LayoutKind.Sequential)> Public Structure HPdfTextWidth
Public numchars As UInt32
' don't use this value (it may be change in the feature). use numspace as alternated. */
Public numwords As UInt32
Public width As UInt32
Public numspace As UInt32
End Structure
<StructLayout(LayoutKind.Sequential)> Public Structure HPdfTransMatrix
Public a As Single
Public b As Single
Public c As Single
Public d As Single
Public x As Single
Public y As Single
End Structure
<StructLayout(LayoutKind.Sequential)> Public Structure HPdfDashMode_Internal
Public ptn0 As UInt16
Public ptn1 As UInt16
Public ptn2 As UInt16
Public ptn3 As UInt16
Public ptn4 As UInt16
Public ptn5 As UInt16
Public ptn6 As UInt16
Public ptn7 As UInt16
Public num_ptn As UInt32
Public phase As UInt32
End Structure
<StructLayout(LayoutKind.Sequential)> Public Structure HPdfDashMode
Public ptn As UInt16()
Public phase As UInt32
End Structure
<StructLayout(LayoutKind.Sequential)> Public Structure HPdfRGBColor
Public r As Single
Public g As Single
Public b As Single
End Structure
<StructLayout(LayoutKind.Sequential)> Public Structure HPdfCMYKColor
Public c As Single
Public y As Single
Public m As Single
Public k As Single
End Structure
' error handler (call back function)
Public Delegate Sub HPDF_ErrorHandler(ByVal error_no As uint32, ByVal detail_no As uint32, ByVal user_data As IntPtr)
Public Class HPdfDoc
Implements IDisposable
Public Const HPDF_TRUE As Integer = 1
Public Const HPDF_FALSE As Integer = 0
Public Const HPDF_COMP_NONE As UInt32 = 0
Public Const HPDF_COMP_TEXT As UInt32 = 1
Public Const HPDF_COMP_IMAGE As UInt32 = 2
Public Const HPDF_COMP_METADATA As UInt32 = 4
Public Const HPDF_COMP_ALL As UInt32 = 15
Public Const HPDF_HIDE_TOOLBAR As UInt32 = 1
Public Const HPDF_HIDE_MENUBAR As UInt32 = 2
Public Const HPDF_HIDE_WINDOW_UI As UInt32 = 4
Public Const HPDF_FIT_WINDOW As UInt32 = 8
Public Const HPDF_CENTER_WINDOW As UInt32 = 16
Public Const HPDF_ENABLE_READ As UInt32 = 0
Public Const HPDF_ENABLE_PRINT As UInt32 = 4
Public Const HPDF_ENABLE_EDIT_ALL As UInt32 = 8
Public Const HPDF_ENABLE_COPY As UInt32 = 16
Public Const HPDF_ENABLE_EDIT As UInt32 = 32
Private Declare Function HPDF_GetVersion Lib "libhpdf.dll" Alias "HPDF_GetVersion" () As String
Private Declare Function HPDF_New Lib "libhpdf.dll" Alias "HPDF_New" (ByVal user_error_fn As HPDF_ErrorHandler, ByVal user_data As IntPtr) As IntPtr
Private Declare Sub HPDF_Free Lib "libhpdf.dll" Alias "HPDF_Free" (ByVal pdf As IntPtr)
Private Declare Function HPDF_NewDoc Lib "libhpdf.dll" Alias "HPDF_NewDoc" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_FreeDoc Lib "libhpdf.dll" Alias "HPDF_FreeDoc" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_FreeDocAll Lib "libhpdf.dll" Alias "HPDF_FreeDocAll" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_HasDoc Lib "libhpdf.dll" Alias "HPDF_HasDoc" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_SaveToFile Lib "libhpdf.dll" Alias "HPDF_SaveToFile" (ByVal pdf As IntPtr, ByVal file_name As String) As UInt32
Private Declare Function HPDF_GetError Lib "libhpdf.dll" Alias "HPDF_GetError" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_GetErrorDetail Lib "libhpdf.dll" Alias "HPDF_GetErrorDetail" (ByVal pdf As IntPtr) As UInt32
Private Declare Sub HPDF_ResetError Lib "libhpdf.dll" Alias "HPDF_ResetError" (ByVal pdf As IntPtr)
Private Declare Function HPDF_SetPagesConfiguration Lib "libhpdf.dll" Alias "HPDF_SetPagesConfiguration" (ByVal pdf As IntPtr, ByVal page_per_pages As UInt32) As UInt32
Private Declare Function HPDF_GetPageByIndex Lib "libhpdf.dll" Alias "HPDF_GetPageByIndex" (ByVal pdf As IntPtr, ByVal index As UInt32) As IntPtr
Private Declare Function HPDF_GetPageLayout Lib "libhpdf.dll" Alias "HPDF_GetPageLayout" (ByVal pdf As IntPtr) As HPdfPageLayout
Private Declare Function HPDF_SetPageLayout Lib "libhpdf.dll" Alias "HPDF_SetPageLayout" (ByVal pdf As IntPtr, ByVal layout As HPdfPageLayout) As UInt32
Private Declare Function HPDF_GetPageMode Lib "libhpdf.dll" Alias "HPDF_GetPageMode" (ByVal pdf As IntPtr) As HPdfPageMode
Private Declare Function HPDF_SetPageMode Lib "libhpdf.dll" Alias "HPDF_SetPageMode" (ByVal pdf As IntPtr, ByVal layout As HPdfPageMode) As UInt32
Private Declare Function HPDF_SetOpenAction Lib "libhpdf.dll" Alias "HPDF_SetOpenAction" (ByVal pdf As IntPtr, ByVal open_action As IntPtr) As UInt32
Private Declare Function HPDF_GetViewerPreference Lib "libhpdf.dll" Alias "HPDF_GetViewerPreference" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_SetViewerPreference Lib "libhpdf.dll" Alias "HPDF_SetViewerPreference" (ByVal pdf As IntPtr, ByVal value As UInt32) As UInt32
Private Declare Function HPDF_GetCurrentPage Lib "libhpdf.dll" Alias "HPDF_GetCurrentPage" (ByVal pdf As IntPtr) As IntPtr
Private Declare Function HPDF_AddPage Lib "libhpdf.dll" Alias "HPDF_AddPage" (ByVal pdf As IntPtr) As IntPtr
Private Declare Function HPDF_InsertPage Lib "libhpdf.dll" Alias "HPDF_InsertPage" (ByVal pdf As IntPtr, ByVal page As IntPtr) As IntPtr
Private Declare Function HPDF_GetFont Lib "libhpdf.dll" Alias "HPDF_GetFont" (ByVal pdf As IntPtr, ByVal font_name As String, ByVal encoding_name As String) As IntPtr
Private Declare Function HPDF_LoadType1FontFromFile Lib "libhpdf.dll" Alias "HPDF_LoadType1FontFromFile" (ByVal pdf As IntPtr, ByVal afmfilename As String, ByVal pfmfilename As String) As String
Private Declare Function HPDF_LoadTTFontFromFile Lib "libhpdf.dll" Alias "HPDF_LoadTTFontFromFile" (ByVal pdf As IntPtr, ByVal file_name As String, ByVal embedding As Int32) As String
Private Declare Function HPDF_LoadTTFontFromFile2 Lib "libhpdf.dll" Alias "HPDF_LoadTTFontFromFile2" (ByVal pdf As IntPtr, ByVal file_name As String, ByVal index As UInt32, ByVal embedding As Int32) As String
Private Declare Function HPDF_AddPageLabel Lib "libhpdf.dll" Alias "HPDF_AddPageLabel" (ByVal pdf As IntPtr, ByVal page_num As UInt32, ByVal style As HPdfPageNumStyle, ByVal first_page As UInt32, ByVal prefix As UInt32) As IntPtr
Private Declare Function HPDF_UseJPFonts Lib "libhpdf.dll" Alias "HPDF_UseJPFonts" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_UseKRFonts Lib "libhpdf.dll" Alias "HPDF_UseKRFonts" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_UseCNSFonts Lib "libhpdf.dll" Alias "HPDF_UseCNSFonts" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_UseCNTFonts Lib "libhpdf.dll" Alias "HPDF_UseCNTFonts" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_CreateOutline Lib "libhpdf.dll" Alias "HPDF_CreateOutline" (ByVal pdf As IntPtr, ByVal parent As IntPtr, ByVal title As String, ByVal encoded As IntPtr) As UInt32
Private Declare Function HPDF_GetEncoder Lib "libhpdf.dll" Alias "HPDF_GetEncoder" (ByVal pdf As IntPtr, ByVal encoding_name As String) As IntPtr
Private Declare Function HPDF_GetCurrentEncoder Lib "libhpdf.dll" Alias "HPDF_GetCurrentEncoder" (ByVal pdf As IntPtr) As IntPtr
Private Declare Function HPDF_SetCurrentEncoder Lib "libhpdf.dll" Alias "HPDF_SetCurrentEncoder" (ByVal pdf As IntPtr, ByVal encoding_name As String) As UInt32
Private Declare Function HPDF_UseJPEncodings Lib "libhpdf.dll" Alias "HPDF_UseJPEncodings" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_UseKREncodings Lib "libhpdf.dll" Alias "HPDF_UseKREncodings" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_UseCNSEncodings Lib "libhpdf.dll" Alias "HPDF_UseCNSEncodings" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_UseCNTEncodings Lib "libhpdf.dll" Alias "HPDF_UseCNTEncodings" (ByVal pdf As IntPtr) As UInt32
Private Declare Function HPDF_LoadPngImageFromFile Lib "libhpdf.dll" Alias "HPDF_LoadPngImageFromFile" (ByVal pdf As IntPtr, ByVal filename As String) As IntPtr
Private Declare Function HPDF_LoadPngImageFromFile2 Lib "libhpdf.dll" Alias "HPDF_LoadPngImageFromFile2" (ByVal pdf As IntPtr, ByVal filename As String) As IntPtr
Private Declare Function HPDF_LoadJpegImageFromFile Lib "libhpdf.dll" Alias "HPDF_LoadJpegImageFromFile" (ByVal pdf As IntPtr, ByVal filename As String) As IntPtr
Private Declare Function HPDF_LoadRawImageFromFile Lib "libhpdf.dll" Alias "HPDF_LoadRawImageFromFile" (ByVal pdf As IntPtr, ByVal filename As String, ByVal width As UInt32, ByVal height As UInt32, ByVal color_space As HPdfColorSpace) As IntPtr
Private Declare Function HPDF_LoadRawImageFromMem Lib "libhpdf.dll" Alias "HPDF_LoadRawImageFromMem" (ByVal pdf As IntPtr, ByVal data As Byte(), ByVal width As UInt32, ByVal height As UInt32, ByVal color_space As HPdfColorSpace, ByVal bits_per_component As UInt32) As IntPtr
Private Declare Function HPDF_SetInfoAttr Lib "libhpdf.dll" Alias "HPDF_SetInfoAttr" (ByVal pdf As IntPtr, ByVal type As HPdfInfoType, ByVal value As String) As UInt32
Private Declare Function HPDF_SetInfoDateAttr Lib "libhpdf.dll" Alias "HPDF_SetInfoDateAttr" (ByVal pdf As IntPtr, ByVal type As HPdfInfoType, ByVal value As HPdfDate) As UInt32
Private Declare Function HPDF_GetInfoAttr Lib "libhpdf.dll" Alias "HPDF_GetInfoAttr" (ByVal pdf As IntPtr, ByVal type As HPdfInfoType) As String
Private Declare Function HPDF_SetPassword Lib "libhpdf.dll" Alias "HPDF_SetPassword" (ByVal pdf As IntPtr, ByVal owner_passwd As String, ByVal user_passwd As String) As UInt32
Private Declare Function HPDF_SetPermission Lib "libhpdf.dll" Alias "HPDF_SetPermission" (ByVal pdf As IntPtr, ByVal permission As UInt32) As UInt32
Private Declare Function HPDF_SetEncryptionMode Lib "libhpdf.dll" Alias "HPDF_SetEncryptionMode" (ByVal pdf As IntPtr, ByVal mode As HPdfEncryptMode, ByVal key_len As UInt32) As UInt32
Private Declare Function HPDF_SetCompressionMode Lib "libhpdf.dll" Alias "HPDF_SetCompressionMode" (ByVal pdf As IntPtr, ByVal mode As UInt32) As UInt32
Private Declare Function HPDF_CreateExtGState Lib "libhpdf.dll" Alias "HPDF_CreateExtGState" (ByVal pdf As IntPtr) As IntPtr
Private hpdf As IntPtr
Public Sub New()
Dim error_handler As HPDF_ErrorHandler = New HPDF_ErrorHandler(AddressOf ErrorProc)
hpdf = HPDF_New(error_handler, IntPtr.Zero)
If (hpdf = IntPtr.Zero) Then
Throw New Exception("cannot create HPdfDoc object.")
End If
End Sub
Public Sub Dispose() Implements IDisposable.Dispose
If (hpdf <> IntPtr.Zero) Then
HPDF_Free(hpdf)
End If
hpdf = IntPtr.Zero
End Sub
Public Shared Function HPdfGetVersion() As String
Return HPDF_GetVersion()
End Function
Public Shared Sub ErrorProc(ByVal error_no As UInt32, ByVal detail_no As UInt32, ByVal user_data As IntPtr)
Dim s As String = "error-code=0x" & error_no.ToString("X") & " detail-code=" & detail_no
Throw New Exception(s)
End Sub
Public Sub NewDoc()
HPDF_NewDoc(hpdf)
End Sub
Public Sub FreeDoc()
HPDF_FreeDoc(hpdf)
End Sub
Public Sub FreeDocAll()
HPDF_FreeDocAll(hpdf)
End Sub
Public Function HasDoc() As Boolean
Return (HPDF_HasDoc(hpdf) <> 0)
End Function
Public Sub SaveToFile(ByVal file_name As String)
HPDF_SaveToFile(hpdf, file_name)
End Sub
Public Function GetError() As UInt32
Return HPDF_GetError(hpdf)
End Function
Public Function GetErrorDetail() As UInt32
Return HPDF_GetErrorDetail(hpdf)
End Function
Public Sub ResetError()
HPDF_ResetError(hpdf)
End Sub
Public Sub SetPagesConfiguration(ByVal page_per_pages As UInt32)
HPDF_SetPagesConfiguration(hpdf, page_per_pages)
End Sub
Public Function GetPageByIndex(ByVal index As UInt32) As HPdfPage
Dim hpage As IntPtr = HPDF_GetPageByIndex(hpdf, index)
Return New HPdfPage(hpage)
End Function
Public Function GetPageLayout() As HPdfPageLayout
Return HPDF_GetPageLayout(hpdf)
End Function
Public Sub SetPageLayout(ByRef layout As HPdfPageLayout)
HPDF_SetPageLayout(hpdf, layout)
End Sub
Public Function GetPageMode() As HPdfPageMode
Return HPDF_GetPageMode(hpdf)
End Function
Public Sub SetPageMode(ByRef mode As HPdfPageMode)
HPDF_SetPageMode(hpdf, mode)
End Sub
Public Sub SetOpenAction(ByRef open_action As HPdfDestination)
HPDF_SetOpenAction(hpdf, open_action.GetHandle())
End Sub
Public Function GetViewerPreference() As UInt32
Return HPDF_GetViewerPreference(hpdf)
End Function
Public Sub SetViewerPreference(ByVal value As UInt32)
HPDF_SetViewerPreference(hpdf, value)
End Sub
Public Function GetCurrentPage() As HPdfPage
Dim hpage As IntPtr = HPDF_GetCurrentPage(hpdf)
Return New HPdfPage(hpage)
End Function
Public Function AddPage() As HPdfPage
Dim hpage As IntPtr = HPDF_AddPage(hpdf)
Return New HPdfPage(hpage)
End Function
Public Function InsertPage(ByRef page As HPdfPage) As HPdfPage
Dim hpage As IntPtr = HPDF_InsertPage(hpdf, page.GetHandle())
Return New HPdfPage(hpage)
End Function
Public Function GetFont(ByVal font_name As String, ByVal encoding_name As String) As HPdfFont
Dim hfont As IntPtr = HPDF_GetFont(hpdf, font_name, encoding_name)
Return New HPdfFont(hfont)
End Function
Public Function LoadType1FontFromFile(ByVal afmfilename As String, ByVal pfmfilename As String) As String
Dim font_name As String = HPDF_LoadType1FontFromFile(hpdf, afmfilename, pfmfilename)
Return font_name
End Function
Public Function LoadTTFontFromFile(ByVal file_name As String, ByVal embedding As Boolean) As String
Dim font_name As String
Dim emb As Integer
If (embedding) Then
emb = HPDF_TRUE
Else
emb = HPDF_FALSE
End If
font_name = HPDF_LoadTTFontFromFile(hpdf, file_name, emb)
Return font_name
End Function
Public Function LoadTTFontFromFile2(ByVal file_name As String, ByVal index As UInt32, ByVal embedding As Boolean) As String
Dim font_name As String
Dim emb As Integer
If (embedding) Then
emb = HPDF_TRUE
Else
emb = HPDF_FALSE
End If
font_name = HPDF_LoadTTFontFromFile2(hpdf, file_name, index, emb)
Return font_name
End Function
Public Sub AddPageLabel(ByVal page_num As UInt32, ByVal style As HPdfPageNumStyle, ByVal first_page As UInt32, ByVal prefix As String)
HPDF_AddPageLabel(hpdf, page_num, style, first_page, prefix)
End Sub
Public Function UseJPFonts() As UInt32
Return HPDF_UseJPFonts(hpdf)
End Function
Public Function UseKRFonts() As UInt32
Return HPDF_UseKRFonts(hpdf)
End Function
Public Function UseCNSFonts() As UInt32
Return HPDF_UseCNSFonts(hpdf)
End Function
Public Function UseCNTFonts() As UInt32
Return HPDF_UseCNTFonts(hpdf)
End Function
Public Function CreateOutline(ByRef parent As HPdfOutline, ByVal title As String, ByRef encoder As HPdfEncoder) As HPdfOutline
Dim hparent As IntPtr
Dim hencoder As IntPtr
Dim houtline As IntPtr
If (encoder Is Nothing) Then
hencoder = Nothing
Else
hencoder = encoder.GetHandle()
End If
If (parent Is Nothing) Then
hparent = Nothing
Else
hparent = parent.GetHandle()
End If
houtline = HPDF_CreateOutline(hpdf, hparent, title, hencoder)
Return New HPdfOutline(houtline)
End Function
Public Function GetEncoder(ByVal encoding_name As String) As HPdfEncoder
Dim hencoder As IntPtr = HPDF_GetEncoder(hpdf, encoding_name)
Return New HPdfEncoder(hencoder)
End Function
Public Function GetCurrentEncoder() As HPdfEncoder
Dim hencoder As IntPtr = HPDF_GetCurrentEncoder(hpdf)
Return New HPdfEncoder(hencoder)
End Function
Public Sub SetCurrentEncoder(ByVal encoding_name As String)
HPDF_SetCurrentEncoder(hpdf, encoding_name)
End Sub
Public Function UseJPEncodings() As UInt32
Return HPDF_UseJPEncodings(hpdf)
End Function
Public Function UseKREncodings() As UInt32
Return HPDF_UseKREncodings(hpdf)
End Function
Public Function UseCNSEncodings() As UInt32
Return HPDF_UseCNSEncodings(hpdf)
End Function
Public Function UseCNTEncodings() As UInt32
Return HPDF_UseCNTEncodings(hpdf)
End Function
Public Function LoadPngImageFromFile(ByVal filename As String) As HPdfImage
Dim hobj As IntPtr = HPDF_LoadPngImageFromFile(hpdf, filename)
Return New HPdfImage(hobj)
End Function
Public Function LoadPngImageFromFile2(ByVal filename As String) As HPdfImage
Dim hobj As IntPtr = HPDF_LoadPngImageFromFile2(hpdf, filename)
Return New HPdfImage(hobj)
End Function
Public Function LoadJpegImageFromFile(ByVal filename As String) As HPdfImage
Dim hobj As IntPtr = HPDF_LoadJpegImageFromFile(hpdf, filename)
Return New HPdfImage(hobj)
End Function
Public Function LoadRawImageFromFile(ByVal filename As String, ByVal width As UInt32, ByVal height As UInt32, ByRef color_space As HPdfColorSpace) As HPdfImage
Dim hobj As IntPtr = HPDF_LoadRawImageFromFile(hpdf, filename, width, height, color_space)
Return New HPdfImage(hobj)
End Function
Public Function LoadRawImageFromMem(ByVal data As Byte(), ByVal width As Int32, ByVal height As Int32, ByRef color_space As HPdfColorSpace, ByVal bits_per_component As UInt32) As HPdfImage
If (width * height < data.Length) Then
Dim s As String = "error-code=0x1030 detail-code=0"
Throw New Exception(s)
End If
Dim hobj As IntPtr = HPDF_LoadRawImageFromMem(hpdf, data, width, height, color_space, bits_per_component)
Return New HPdfImage(hobj)
End Function
Public Sub SetInfoAttr(ByVal type As HPdfInfoType, ByVal value As String)
HPDF_SetInfoAttr(hpdf, type, value)
End Sub
Public Sub SetInfoDateAttr(ByVal type As HPdfInfoType, ByRef value As HPdfDate)
HPDF_SetInfoDateAttr(hpdf, type, value)
End Sub
Public Function GetInfoAttr(ByVal type As HPdfInfoType) As String
Return HPDF_GetInfoAttr(hpdf, type)
End Function
Public Sub SetPassword(ByVal owner_passwd As String, ByVal user_passwd As String)
HPDF_SetPassword(hpdf, owner_passwd, user_passwd)
End Sub
Public Sub SetPermission(ByVal permission As UInt32)
HPDF_SetPermission(hpdf, permission)
End Sub
Public Sub SetEncryptionMode(ByVal mode As HPdfEncryptMode, ByVal key_len As UInt32)
HPDF_SetEncryptionMode(hpdf, mode, key_len)
End Sub
Public Sub SetCompressionMode(ByVal mode As UInt32)
HPDF_SetCompressionMode(hpdf, mode)
End Sub
Public Function CreateExtGState() As HPdfExtGState
Dim hgstate As IntPtr = HPDF_CreateExtGState(hpdf)
Return New HPdfExtGState(hgstate)
End Function
End Class
Public Class HPdfPage
Public Const HPDF_TRUE As Integer = 1
Public Const HPDF_FALSE As Integer = 0
Private Declare Function HPDF_Page_SetWidth Lib "libhpdf.dll" Alias "HPDF_Page_SetWidth" (ByVal page As IntPtr, ByVal value As Single) As UInt32
Private Declare Function HPDF_Page_SetHeight Lib "libhpdf.dll" Alias "HPDF_Page_SetHeight" (ByVal page As IntPtr, ByVal value As Single) As UInt32
Private Declare Function HPDF_Page_SetSize Lib "libhpdf.dll" Alias "HPDF_Page_SetSize" (ByVal page As IntPtr, ByVal size As HPdfPageSizes, ByVal direction As HPdfPageDirection) As UInt32
Private Declare Function HPDF_Page_SetRotate Lib "libhpdf.dll" Alias "HPDF_Page_SetRotate" (ByVal page As IntPtr, ByVal angle As UInt16) As UInt16
Private Declare Function HPDF_Page_CreateDestination Lib "libhpdf.dll" Alias "HPDF_Page_CreateDestination" (ByVal page As IntPtr) As IntPtr
Private Declare Function HPDF_Page_CreateTextAnnot Lib "libhpdf.dll" Alias "HPDF_Page_CreateTextAnnot" (ByVal page As IntPtr, ByVal rect As HPdfRect, ByVal text As String, ByVal encoder As IntPtr) As IntPtr
Private Declare Function HPDF_Page_CreateLinkAnnot Lib "libhpdf.dll" Alias "HPDF_Page_CreateLinkAnnot" (ByVal page As IntPtr, ByVal rect As HPdfRect, ByVal dst As IntPtr) As IntPtr
Private Declare Function HPDF_Page_CreateURILinkAnnot Lib "libhpdf.dll" Alias "HPDF_Page_CreateURILinkAnnot" (ByVal page As IntPtr, ByVal rect As HPdfRect, ByVal url As String) As IntPtr
Private Declare Function HPDF_Page_TextWidth Lib "libhpdf.dll" Alias "HPDF_Page_TextWidth" (ByVal page As IntPtr, ByVal text As String) As Single
Private Declare Function HPDF_Page_MeasureText Lib "libhpdf.dll" Alias "HPDF_Page_MeasureText" (ByVal page As IntPtr, ByVal text As String, ByVal width As Single, ByVal wordwrap As Int32, ByRef real_width As Single) As UInt32
Private Declare Function HPDF_Page_GetWidth Lib "libhpdf.dll" Alias "HPDF_Page_GetWidth" (ByVal page As IntPtr) As Single
Private Declare Function HPDF_Page_GetHeight Lib "libhpdf.dll" Alias "HPDF_Page_GetHeight" (ByVal page As IntPtr) As Single
Private Declare Function HPDF_Page_GetGMode Lib "libhpdf.dll" Alias "HPDF_Page_GetGMode" (ByVal page As IntPtr) As UInt16
Private Declare Function HPDF_Page_GetCurrentPos Lib "libhpdf.dll" Alias "HPDF_Page_GetCurrentPos" (ByVal page As IntPtr) As HPdfPoint
Private Declare Function HPDF_Page_GetCurrentTextPos Lib "libhpdf.dll" Alias "HPDF_Page_GetCurrentTextPos" (ByVal page As IntPtr) As HPdfPoint
Private Declare Function HPDF_Page_GetCurrentFont Lib "libhpdf.dll" Alias "HPDF_Page_GetCurrentFont" (ByVal page As IntPtr) As IntPtr
Private Declare Function HPDF_Page_GetCurrentFontSize Lib "libhpdf.dll" Alias "HPDF_Page_GetCurrentFontSize" (ByVal page As IntPtr) As Single
Private Declare Function HPDF_Page_GetTransMatrix Lib "libhpdf.dll" Alias "HPDF_Page_GetTransMatrix" (ByVal page As IntPtr) As HPdfTransMatrix
Private Declare Function HPDF_Page_GetLineWidth Lib "libhpdf.dll" Alias "HPDF_Page_GetLineWidth" (ByVal page As IntPtr) As Single
Private Declare Function HPDF_Page_GetLineCap Lib "libhpdf.dll" Alias "HPDF_Page_GetLineCap" (ByVal page As IntPtr) As HPdfLineCap
Private Declare Function HPDF_Page_GetLineJoin Lib "libhpdf.dll" Alias "HPDF_Page_GetLineJoin" (ByVal page As IntPtr) As HPdfLineJoin
Private Declare Function HPDF_Page_GetMiterLimit Lib "libhpdf.dll" Alias "HPDF_Page_GetMiterLimit" (ByVal page As IntPtr) As Single
Private Declare Function HPDF_Page_GetDash Lib "libhpdf.dll" Alias "HPDF_Page_GetDash" (ByVal page As IntPtr) As HPdfDashMode_Internal
Private Declare Function HPDF_Page_GetFlat Lib "libhpdf.dll" Alias "HPDF_Page_GetFlat" (ByVal page As IntPtr) As Single
Private Declare Function HPDF_Page_GetCharSpace Lib "libhpdf.dll" Alias "HPDF_Page_GetCharSpace" (ByVal page As IntPtr) As Single
Private Declare Function HPDF_Page_GetWordSpace Lib "libhpdf.dll" Alias "HPDF_Page_GetWordSpace" (ByVal page As IntPtr) As Single
Private Declare Function HPDF_Page_GetHorizontalScalling Lib "libhpdf.dll" Alias "HPDF_Page_GetHorizontalScalling" (ByVal page As IntPtr) As Single
Private Declare Function HPDF_Page_GetTextLeading Lib "libhpdf.dll" Alias "HPDF_Page_GetTextLeading" (ByVal page As IntPtr) As Single
Private Declare Function HPDF_Page_GetTextRenderingMode Lib "libhpdf.dll" Alias "HPDF_Page_GetTextRenderingMode" (ByVal page As IntPtr) As HPdfTextRenderingMode
Private Declare Function HPDF_Page_GetTextRaise Lib "libhpdf.dll" Alias "HPDF_Page_GetTextRaise" (ByVal page As IntPtr) As Single
Private Declare Function HPDF_Page_GetRGBFill Lib "libhpdf.dll" Alias "HPDF_Page_GetRGBFill" (ByVal page As IntPtr) As HPdfRGBColor
Private Declare Function HPDF_Page_GetRGBStroke Lib "libhpdf.dll" Alias "HPDF_Page_GetRGBStroke" (ByVal page As IntPtr) As HPdfRGBColor
Private Declare Function HPDF_Page_GetCMYKFill Lib "libhpdf.dll" Alias "HPDF_Page_GetCMYKFill" (ByVal page As IntPtr) As HPdfCMYKColor
Private Declare Function HPDF_Page_GetCMYKStroke Lib "libhpdf.dll" Alias "HPDF_Page_GetCMYKStroke" (ByVal page As IntPtr) As HPdfCMYKColor
Private Declare Function HPDF_Page_GetGrayFill Lib "libhpdf.dll" Alias "HPDF_Page_GetGrayFill" (ByVal page As IntPtr) As Single
Private Declare Function HPDF_Page_GetGrayStroke Lib "libhpdf.dll" Alias "HPDF_Page_GetGrayStroke" (ByVal page As IntPtr) As Single
Private Declare Function HPDF_Page_GetStrokingColorSpace Lib "libhpdf.dll" Alias "HPDF_Page_GetStrokingColorSpace" (ByVal page As IntPtr) As HPdfColorSpace
Private Declare Function HPDF_Page_GetFillingColorSpace Lib "libhpdf.dll" Alias "HPDF_Page_GetFillingColorSpace" (ByVal page As IntPtr) As HPdfColorSpace
Private Declare Function HPDF_Page_GetTextMatrix Lib "libhpdf.dll" Alias "HPDF_Page_GetTextMatrix" (ByVal page As IntPtr) As HPdfTransMatrix
Private Declare Function HPDF_Page_GetGStateDepth Lib "libhpdf.dll" Alias "HPDF_Page_GetGStateDepth" (ByVal page As IntPtr) As UInt32
' --- General graphics state -----------------------------------------------
Private Declare Function HPDF_Page_SetLineWidth Lib "libhpdf.dll" Alias "HPDF_Page_SetLineWidth" (ByVal page As IntPtr, ByVal line_width As Single) As UInt32
Private Declare Function HPDF_Page_SetLineCap Lib "libhpdf.dll" Alias "HPDF_Page_SetLineCap" (ByVal page As IntPtr, ByVal line_cap As HPdfLineCap) As UInt32
Private Declare Function HPDF_Page_SetLineJoin Lib "libhpdf.dll" Alias "HPDF_Page_SetLineJoin" (ByVal page As IntPtr, ByVal line_join As HPdfLineJoin) As UInt32
Private Declare Function HPDF_Page_SetMiterLimit Lib "libhpdf.dll" Alias "HPDF_Page_SetMiterLimit" (ByVal page As IntPtr, ByVal miter_limit As Single) As UInt32
Private Declare Function HPDF_Page_SetDash Lib "libhpdf.dll" Alias "HPDF_Page_SetDash" (ByVal page As IntPtr, ByVal array As UInt16(), ByVal num_param As UInt32, ByVal phase As UInt32) As UInt32
Private Declare Function HPDF_Page_SetFlat Lib "libhpdf.dll" Alias "HPDF_Page_SetFlat" (ByVal page As IntPtr, ByVal flatness As Single) As UInt32
Private Declare Function HPDF_Page_SetExtGState Lib "libhpdf.dll" Alias "HPDF_Page_SetExtGState" (ByVal page As IntPtr, ByVal ext_gstate As IntPtr) As UInt32
Private Declare Function HPDF_Page_GSave Lib "libhpdf.dll" Alias "HPDF_Page_GSave" (ByVal page As IntPtr) As UInt32
Private Declare Function HPDF_Page_GRestore Lib "libhpdf.dll" Alias "HPDF_Page_GRestore" (ByVal page As IntPtr) As UInt32
Private Declare Function HPDF_Page_Concat Lib "libhpdf.dll" Alias "HPDF_Page_Concat" (ByVal page As IntPtr, ByVal a As Single, ByVal b As Single, ByVal c As Single, ByVal d As Single, ByVal x As Single, ByVal y As Single) As UInt32
Private Declare Function HPDF_Page_MoveTo Lib "libhpdf.dll" Alias "HPDF_Page_MoveTo" (ByVal page As IntPtr, ByVal x As Single, ByVal y As Single) As UInt32
Private Declare Function HPDF_Page_LineTo Lib "libhpdf.dll" Alias "HPDF_Page_LineTo" (ByVal page As IntPtr, ByVal x As Single, ByVal y As Single) As UInt32
Private Declare Function HPDF_Page_CurveTo Lib "libhpdf.dll" Alias "HPDF_Page_CurveTo" (ByVal page As IntPtr, ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single, ByVal x3 As Single, ByVal y3 As Single) As UInt32
Private Declare Function HPDF_Page_CurveTo2 Lib "libhpdf.dll" Alias "HPDF_Page_CurveTo2" (ByVal page As IntPtr, ByVal x2 As Single, ByVal y2 As Single, ByVal x3 As Single, ByVal y3 As Single) As UInt32
Private Declare Function HPDF_Page_CurveTo3 Lib "libhpdf.dll" Alias "HPDF_Page_CurveTo3" (ByVal page As IntPtr, ByVal x1 As Single, ByVal y1 As Single, ByVal x3 As Single, ByVal y3 As Single) As UInt32
Private Declare Function HPDF_Page_ClosePath Lib "libhpdf.dll" Alias "HPDF_Page_ClosePath" (ByVal page As IntPtr) As UInt32
Private Declare Function HPDF_Page_Rectangle Lib "libhpdf.dll" Alias "HPDF_Page_Rectangle" (ByVal page As IntPtr, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single) As UInt32
Private Declare Function HPDF_Page_Stroke Lib "libhpdf.dll" Alias "HPDF_Page_Stroke" (ByVal page As IntPtr) As UInt32
Private Declare Function HPDF_Page_ClosePathStroke Lib "libhpdf.dll" Alias "HPDF_Page_ClosePathStroke" (ByVal page As IntPtr) As UInt32
Private Declare Function HPDF_Page_Fill Lib "libhpdf.dll" Alias "HPDF_Page_Fill" (ByVal page As IntPtr) As UInt32
Private Declare Function HPDF_Page_Eofill Lib "libhpdf.dll" Alias "HPDF_Page_Eofill" (ByVal page As IntPtr) As UInt32
Private Declare Function HPDF_Page_FillStroke Lib "libhpdf.dll" Alias "HPDF_Page_FillStroke" (ByVal page As IntPtr) As UInt32
Private Declare Function HPDF_Page_EofillStroke Lib "libhpdf.dll" Alias "HPDF_Page_EofillStroke" (ByVal page As IntPtr) As UInt32
Private Declare Function HPDF_Page_ClosePathFillStroke Lib "libhpdf.dll" Alias "HPDF_Page_ClosePathFillStroke" (ByVal page As IntPtr) As UInt32
Private Declare Function HPDF_Page_ClosePathEofillStroke Lib "libhpdf.dll" Alias "HPDF_Page_ClosePathEofillStroke" (ByVal page As IntPtr) As UInt32
Private Declare Function HPDF_Page_EndPath Lib "libhpdf.dll" Alias "HPDF_Page_EndPath" (ByVal page As IntPtr) As UInt32
' --- Clipping paths operator --------------------------------------------
Private Declare Function HPDF_Page_Clip Lib "libhpdf.dll" Alias "HPDF_Page_Clip" (ByVal page As IntPtr) As UInt32
Private Declare Function HPDF_Page_Eoclip Lib "libhpdf.dll" Alias "HPDF_Page_Eoclip" (ByVal page As IntPtr) As UInt32
' --- Text object operator -----------------------------------------------
Private Declare Function HPDF_Page_BeginText Lib "libhpdf.dll" Alias "HPDF_Page_BeginText" (ByVal page As IntPtr) As UInt32
Private Declare Function HPDF_Page_EndText Lib "libhpdf.dll" Alias "HPDF_Page_EndText" (ByVal page As IntPtr) As UInt32
' --- Text state ---------------------------------------------------------
Private Declare Function HPDF_Page_SetCharSpace Lib "libhpdf.dll" Alias "HPDF_Page_SetCharSpace" (ByVal page As IntPtr, ByVal value As Single) As UInt32
Private Declare Function HPDF_Page_SetWordSpace Lib "libhpdf.dll" Alias "HPDF_Page_SetWordSpace" (ByVal page As IntPtr, ByVal value As Single) As UInt32
Private Declare Function HPDF_Page_SetHorizontalScalling Lib "libhpdf.dll" Alias "HPDF_Page_SetHorizontalScalling" (ByVal page As IntPtr, ByVal value As Single) As UInt32
Private Declare Function HPDF_Page_SetTextLeading Lib "libhpdf.dll" Alias "HPDF_Page_SetTextLeading" (ByVal page As IntPtr, ByVal value As Single) As UInt32
Private Declare Function HPDF_Page_SetFontAndSize Lib "libhpdf.dll" Alias "HPDF_Page_SetFontAndSize" (ByVal page As IntPtr, ByVal hfont As IntPtr, ByVal size As Single) As UInt32
Private Declare Function HPDF_Page_SetTextRenderingMode Lib "libhpdf.dll" Alias "HPDF_Page_SetTextRenderingMode" (ByVal page As IntPtr, ByVal mode As HPdfTextRenderingMode) As UInt32
Private Declare Function HPDF_Page_SetTextRaise Lib "libhpdf.dll" Alias "HPDF_Page_SetTextRaise" (ByVal page As IntPtr, ByVal value As Single) As UInt32
' --- Text positioning ---------------------------------------------------
Private Declare Function HPDF_Page_MoveTextPos Lib "libhpdf.dll" Alias "HPDF_Page_MoveTextPos" (ByVal page As IntPtr, ByVal x As Single, ByVal y As Single) As UInt32
Private Declare Function HPDF_Page_MoveTextPos2 Lib "libhpdf.dll" Alias "HPDF_Page_MoveTextPos2" (ByVal page As IntPtr, ByVal x As Single, ByVal y As Single) As UInt32
Private Declare Function HPDF_Page_SetTextMatrix Lib "libhpdf.dll" Alias "HPDF_Page_SetTextMatrix" (ByVal page As IntPtr, ByVal a As Single, ByVal b As Single, ByVal c As Single, ByVal d As Single, ByVal x As Single, ByVal y As Single) As UInt32
Private Declare Function HPDF_Page_MoveToNextLine Lib "libhpdf.dll" Alias "HPDF_Page_MoveToNextLine" (ByVal page As IntPtr) As UInt32
' --- Text showing -------------------------------------------------------
Private Declare Function HPDF_Page_ShowText Lib "libhpdf.dll" Alias "HPDF_Page_ShowText" (ByVal page As IntPtr, ByVal text As String) As UInt32
Private Declare Function HPDF_Page_ShowTextNextLine Lib "libhpdf.dll" Alias "HPDF_Page_ShowTextNextLine" (ByVal page As IntPtr, ByVal text As String) As UInt32
Private Declare Function HPDF_Page_ShowTextNextLineEx Lib "libhpdf.dll" Alias "HPDF_Page_ShowTextNextLineEx" (ByVal page As IntPtr, ByVal word_space As Single, ByVal char_space As Single, ByVal text As String) As UInt32
' --- Color showing ------------------------------------------------------
Private Declare Function HPDF_Page_SetGrayFill Lib "libhpdf.dll" Alias "HPDF_Page_SetGrayFill" (ByVal page As IntPtr, ByVal gray As Single) As UInt32
Private Declare Function HPDF_Page_SetGrayStroke Lib "libhpdf.dll" Alias "HPDF_Page_SetGrayStroke" (ByVal page As IntPtr, ByVal gray As Single) As UInt32
Private Declare Function HPDF_Page_SetRGBFill Lib "libhpdf.dll" Alias "HPDF_Page_SetRGBFill" (ByVal page As IntPtr, ByVal r As Single, ByVal g As Single, ByVal b As Single) As UInt32
Private Declare Function HPDF_Page_SetRGBStroke Lib "libhpdf.dll" Alias "HPDF_Page_SetRGBStroke" (ByVal page As IntPtr, ByVal r As Single, ByVal g As Single, ByVal b As Single) As UInt32
Private Declare Function HPDF_Page_SetCMYKFill Lib "libhpdf.dll" Alias "HPDF_Page_SetCMYKFill" (ByVal page As IntPtr, ByVal c As Single, ByVal m As Single, ByVal y As Single, ByVal k As Single) As UInt32
Private Declare Function HPDF_Page_SetCMYKStroke Lib "libhpdf.dll" Alias "HPDF_Page_SetCMYKStroke" (ByVal page As IntPtr, ByVal c As Single, ByVal m As Single, ByVal y As Single, ByVal k As Single) As UInt32
Private Declare Function HPDF_Page_ExecuteXObject Lib "libhpdf.dll" Alias "HPDF_Page_ExecuteXObject" (ByVal page As IntPtr, ByVal obj As IntPtr) As UInt32
' ---------------------------------------------------------------------
Private Declare Function HPDF_Page_DrawImage Lib "libhpdf.dll" Alias "HPDF_Page_DrawImage" (ByVal page As IntPtr, ByVal image As IntPtr, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single) As UInt32
Private Declare Function HPDF_Page_Circle Lib "libhpdf.dll" Alias "HPDF_Page_Circle" (ByVal page As IntPtr, ByVal x As Single, ByVal y As Single, ByVal ray As Single) As UInt32
Private Declare Function HPDF_Page_Arc Lib "libhpdf.dll" Alias "HPDF_Page_Arc" (ByVal page As IntPtr, ByVal x As Single, ByVal y As Single, ByVal ray As Single, ByVal ang1 As Single, ByVal ang2 As Single) As UInt32
Private Declare Function HPDF_Page_Ellipse Lib "libhpdf.dll" Alias "HPDF_Page_Ellipse" (ByVal page As IntPtr, ByVal x As Single, ByVal y As Single, ByVal xray As Single, ByVal yray As Single) As UInt32
Private Declare Function HPDF_Page_TextOut Lib "libhpdf.dll" Alias "HPDF_Page_TextOut" (ByVal page As IntPtr, ByVal xpos As Single, ByVal ypos As Single, ByVal text As String) As UInt32
Private Declare Function HPDF_Page_TextRect Lib "libhpdf.dll" Alias "HPDF_Page_TextRect" (ByVal page As IntPtr, ByVal left As Single, ByVal top As Single, ByVal right As Single, ByVal bottom As Single, ByVal text As String, ByVal align As HPdfTextAlignment, ByRef len As UInt32) As UInt32
Private Declare Function HPDF_Page_SetSlideShow Lib "libhpdf.dll" Alias "HPDF_Page_SetSlideShow" (ByVal page As IntPtr, ByVal type As HPdfTransitionStyle, ByVal disp_time As Single, ByVal trans_time As Single) As UInt32
' handle to an instance of a HPDF_Doc object.
Private hpage As IntPtr
Public Sub New(ByVal hpage As IntPtr)
If (hpage = IntPtr.Zero) Then
Throw New Exception("cannot create HPdfPage object.")
End If
Me.hpage = hpage
End Sub
Public Sub SetWidth(ByVal value As Single)
HPDF_Page_SetWidth(hpage, value)
End Sub
Public Sub SetHeight(ByVal value As Single)
HPDF_Page_SetHeight(hpage, value)
End Sub
Public Sub SetSize(ByVal size As HPdfPageSizes, ByVal direction As HPdfPageDirection)
HPDF_Page_SetSize(hpage, size, direction)
End Sub
Public Sub SetRotate(ByVal angle As UInt16)
HPDF_Page_SetRotate(hpage, angle)
End Sub
Public Function CreateDestination() As HPdfDestination
Dim hdest As IntPtr = HPDF_Page_CreateDestination(hpage)
Return New HPdfDestination(hdest)
End Function
Public Function CreateTextAnnot(ByVal rect As HPdfRect, ByVal text As String, ByRef encoder As HPdfEncoder) As HPdfAnnotation
Dim hannot As IntPtr = HPDF_Page_CreateTextAnnot(hpage, rect, text, encoder.GetHandle())
Return New HPdfAnnotation(hannot)
End Function
Public Function CreateLinkAnnot(ByVal rect As HPdfRect, ByRef dst As HPdfDestination) As HPdfAnnotation
Dim hannot As IntPtr = HPDF_Page_CreateLinkAnnot(hpage, rect, dst.GetHandle())
Return New HPdfAnnotation(hannot)
End Function
Public Function CreateURILinkAnnot(ByVal rect As HPdfRect, ByVal uri As String) As HPdfAnnotation
Dim hannot As IntPtr = HPDF_Page_CreateURILinkAnnot(hpage, rect, uri)
Return New HPdfAnnotation(hannot)
End Function
Public Function TextWidth(ByVal text As String) As Single
Return HPDF_Page_TextWidth(hpage, text)
End Function
Public Function MeasureText(ByVal text As String, ByVal width As Single, ByVal wordwrap As Boolean, ByRef real_width As Single) As UInt32
Dim ww As Int32
If (wordwrap) Then
ww = HPDF_TRUE
Else
ww = HPDF_FALSE
End If
Return HPDF_Page_MeasureText(hpage, text, width, ww, real_width)
End Function
Public Function MeasureText(ByVal text As String, ByVal width As Single, ByVal wordwrap As Boolean) As UInt32
Dim dummy As Single
Dim ww As Int32
If (wordwrap) Then
ww = HPDF_TRUE
Else
ww = HPDF_FALSE
End If
Return HPDF_Page_MeasureText(hpage, text, width, ww, dummy)
End Function
Public Function GetWidth() As Single
Return HPDF_Page_GetWidth(hpage)
End Function
Public Function GetHeight() As Single
Return HPDF_Page_GetHeight(hpage)
End Function
Public Function GetGMode() As UInt16
Return HPDF_Page_GetGMode(hpage)
End Function
Public Function GetCurrentPos() As HPdfPoint
Return HPDF_Page_GetCurrentPos(hpage)
End Function
Public Function GetCurrentTextPos() As HPdfPoint
Return HPDF_Page_GetCurrentTextPos(hpage)
End Function
Public Function GetCurrentFont() As HPdfFont
Return New HPdfFont(HPDF_Page_GetCurrentFont(hpage))
End Function
Public Function GetCurrentFontSize() As Single
Return HPDF_Page_GetCurrentFontSize(hpage)
End Function
Public Function GetTransMatrix() As HPdfTransMatrix
Return HPDF_Page_GetTransMatrix(hpage)
End Function
Public Function GetLineWidth() As Single
Return HPDF_Page_GetLineWidth(hpage)
End Function
Public Function GetLineCap() As HPdfLineCap
Return HPDF_Page_GetLineCap(hpage)
End Function
Public Function GetLineJoin() As HPdfLineJoin
Return HPDF_Page_GetLineJoin(hpage)
End Function
Public Function GetMiterLimit() As Single
Return HPDF_Page_GetMiterLimit(hpage)
End Function
Public Function GetDash() As HPdfDashMode
Dim mode1 As HPdfDashMode_Internal = HPDF_Page_GetDash(hpage)
Dim mode2 As HPdfDashMode
mode2.phase = mode1.phase
ReDim mode2.ptn(mode1.num_ptn)
If (mode1.num_ptn >= 1) Then
mode2.ptn(0) = mode1.ptn0
End If
If (mode1.num_ptn >= 2) Then
mode2.ptn(1) = mode1.ptn1
End If
If (mode1.num_ptn >= 3) Then
mode2.ptn(2) = mode1.ptn2
End If
If (mode1.num_ptn >= 4) Then
mode2.ptn(3) = mode1.ptn3
End If
If (mode1.num_ptn >= 5) Then
mode2.ptn(4) = mode1.ptn4
End If
If (mode1.num_ptn >= 6) Then
mode2.ptn(5) = mode1.ptn5
End If
If (mode1.num_ptn >= 7) Then
mode2.ptn(6) = mode1.ptn6
End If
If (mode1.num_ptn >= 8) Then
mode2.ptn(7) = mode1.ptn7
End If
Return mode2
End Function
Public Function GetFlat() As Single
Return HPDF_Page_GetFlat(hpage)
End Function
Public Function GetCharSpace() As Single
Return HPDF_Page_GetCharSpace(hpage)
End Function
Public Function GetWordSpace() As Single
Return HPDF_Page_GetWordSpace(hpage)
End Function
Public Function GetHorizontalScalling() As Single
Return HPDF_Page_GetHorizontalScalling(hpage)
End Function
Public Function GetTextLeading() As Single
Return HPDF_Page_GetTextLeading(hpage)
End Function
Public Function GetTextRenderingMode() As HPdfTextRenderingMode
Return HPDF_Page_GetTextRenderingMode(hpage)
End Function
Public Function GetTextRaise() As Single
Return HPDF_Page_GetTextRaise(hpage)
End Function
Public Function GetRGBFill() As HPdfRGBColor
Return HPDF_Page_GetRGBFill(hpage)
End Function
Public Function GetRGBStroke() As HPdfRGBColor
Return HPDF_Page_GetRGBStroke(hpage)
End Function
Public Function GetCMYKFill() As HPdfCMYKColor
Return HPDF_Page_GetCMYKFill(hpage)
End Function
Public Function GetCMYKStroke() As HPdfCMYKColor
Return HPDF_Page_GetCMYKStroke(hpage)
End Function
Public Function GetGrayFill() As Single
Return HPDF_Page_GetGrayFill(hpage)
End Function
Public Function GetGrayStroke() As Single
Return HPDF_Page_GetGrayStroke(hpage)
End Function
Public Function GetStrokingColorSpace() As HPdfColorSpace
Return HPDF_Page_GetStrokingColorSpace(hpage)
End Function
Public Function GetFillingColorSpace() As HPdfColorSpace
Return HPDF_Page_GetFillingColorSpace(hpage)
End Function
Public Function GetTextMatrix() As HPdfTransMatrix
Return HPDF_Page_GetTextMatrix(hpage)
End Function
Public Function GetGStateDepth() As UInt32
Return HPDF_Page_GetGStateDepth(hpage)
End Function
Public Sub SetLineWidth(ByVal line_width As Single)
HPDF_Page_SetLineWidth(hpage, line_width)
End Sub
Public Sub SetLineCap(ByVal line_cap As HPdfLineCap)
HPDF_Page_SetLineCap(hpage, line_cap)
End Sub
Public Sub SetLineJoin(ByVal line_join As HPdfLineJoin)
HPDF_Page_SetLineJoin(hpage, line_join)
End Sub
Public Sub SetMiterLimit(ByVal miter_limit As Single)
HPDF_Page_SetMiterLimit(hpage, miter_limit)
End Sub
Public Sub SetDash(ByRef dash_ptn As UInt16(), ByVal phase As UInt32)
If (dash_ptn Is Nothing) Then
HPDF_Page_SetDash(hpage, dash_ptn, 0, 0)
Return
End If
Dim len As UInt32 = dash_ptn.Length
HPDF_Page_SetDash(hpage, dash_ptn, len, phase)
End Sub
Public Sub SetFlat(ByVal flatness As Single)
HPDF_Page_SetFlat(hpage, flatness)
End Sub
Public Sub SetExtGState(ByVal gstate As HPdfExtGState)
HPDF_Page_SetExtGState(hpage, gstate.GetHandle())
End Sub
Public Sub GSave()
HPDF_Page_GSave(hpage)
End Sub
Public Sub GRestore()
HPDF_Page_GRestore(hpage)
End Sub
Public Sub Concat(ByVal a As Single, ByVal b As Single, ByVal c As Single, ByVal d As Single, ByVal x As Single, ByVal y As Single)
HPDF_Page_Concat(hpage, a, b, c, d, x, y)
End Sub
Public Sub MoveTo(ByVal x As Single, ByVal y As Single)
HPDF_Page_MoveTo(hpage, x, y)
End Sub
Public Sub LineTo(ByVal x As Single, ByVal y As Single)
HPDF_Page_LineTo(hpage, x, y)
End Sub
Public Sub CurveTo(ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single, ByVal x3 As Single, ByVal y3 As Single)
HPDF_Page_CurveTo(hpage, x1, y1, x2, y2, x3, y3)
End Sub
Public Sub CurveTo2(ByVal x2 As Single, ByVal y2 As Single, ByVal x3 As Single, ByVal y3 As Single)
HPDF_Page_CurveTo2(hpage, x2, y2, x3, y3)
End Sub
Public Sub CurveTo3(ByVal x1 As Single, ByVal y1 As Single, ByVal x3 As Single, ByVal y3 As Single)
HPDF_Page_CurveTo2(hpage, x1, y1, x3, y3)
End Sub
Public Sub ClosePath()
HPDF_Page_ClosePath(hpage)
End Sub
Public Sub Rectangle(ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single)
HPDF_Page_Rectangle(hpage, x, y, width, height)
End Sub
Public Sub Stroke()
HPDF_Page_Stroke(hpage)
End Sub
Public Sub ClosePathStroke()
HPDF_Page_ClosePathStroke(hpage)
End Sub
Public Sub Fill()
HPDF_Page_Fill(hpage)
End Sub
Public Sub Eofill()
HPDF_Page_Eofill(hpage)
End Sub
Public Sub FillStroke()
HPDF_Page_FillStroke(hpage)
End Sub
Public Sub EofillStroke()
HPDF_Page_EofillStroke(hpage)
End Sub
Public Sub ClosePathFillStroke()
HPDF_Page_ClosePathFillStroke(hpage)
End Sub
Public Sub ClosePathEofillStroke()
HPDF_Page_ClosePathEofillStroke(hpage)
End Sub
Public Sub EndPath()
HPDF_Page_EndPath(hpage)
End Sub
Public Sub Clip()
HPDF_Page_Clip(hpage)
End Sub
Public Sub Eoclip()
HPDF_Page_Eoclip(hpage)
End Sub
Public Sub BeginText()
HPDF_Page_BeginText(hpage)
End Sub
Public Sub EndText()
HPDF_Page_EndText(hpage)
End Sub
Public Sub SetCharSpace(ByVal value As Single)
HPDF_Page_SetCharSpace(hpage, value)
End Sub
Public Sub SetWordSpace(ByVal value As Single)
HPDF_Page_SetWordSpace(hpage, value)
End Sub
Public Sub SetHorizontalScalling(ByVal value As Single)
HPDF_Page_SetHorizontalScalling(hpage, value)
End Sub
Public Sub SetTextLeading(ByVal value As Single)
HPDF_Page_SetTextLeading(hpage, value)
End Sub
Public Sub SetFontAndSize(ByRef font As HPdfFont, ByVal size As Single)
HPDF_Page_SetFontAndSize(hpage, font.GetHandle(), size)
End Sub
Public Sub SetTextRenderingMode(ByVal mode As HPdfTextRenderingMode)
HPDF_Page_SetTextRenderingMode(hpage, mode)
End Sub
Public Sub SetTextRaise(ByVal value As Single)
HPDF_Page_SetTextRaise(hpage, value)
End Sub
Public Sub MoveTextPos(ByVal x As Single, ByVal y As Single)
HPDF_Page_MoveTextPos(hpage, x, y)
End Sub
Public Sub MoveTextPos2(ByVal x As Single, ByVal y As Single)
HPDF_Page_MoveTextPos2(hpage, x, y)
End Sub
Public Sub SetTextMatrix(ByVal a As Single, ByVal b As Single, ByVal c As Single, ByVal d As Single, ByVal x As Single, ByVal y As Single)
HPDF_Page_SetTextMatrix(hpage, a, b, c, d, x, y)
End Sub
Public Sub MoveToNextLine()
HPDF_Page_MoveToNextLine(hpage)
End Sub
Public Sub ShowText(ByVal text As String)
HPDF_Page_ShowText(hpage, text)
End Sub
Public Sub ShowTextNextLine(ByVal text As String)
HPDF_Page_ShowTextNextLine(hpage, text)
End Sub
Public Sub ShowTextNextLineEx(ByVal word_space As Single, ByVal char_space As Single, ByVal text As String)
HPDF_Page_ShowTextNextLineEx(hpage, word_space, char_space, text)
End Sub
Public Sub SetGrayFill(ByVal gray As Single)
HPDF_Page_SetGrayFill(hpage, gray)
End Sub
Public Sub SetGrayStroke(ByVal gray As Single)
HPDF_Page_SetGrayStroke(hpage, gray)
End Sub
Public Sub SetRGBFill(ByVal r As Single, ByVal g As Single, ByVal b As Single)
HPDF_Page_SetRGBFill(hpage, r, g, b)
End Sub
Public Sub SetRGBStroke(ByVal r As Single, ByVal g As Single, ByVal b As Single)
HPDF_Page_SetRGBStroke(hpage, r, g, b)
End Sub
Public Sub SetCMYKFill(ByVal c As Single, ByVal m As Single, ByVal y As Single, ByVal k As Single)
HPDF_Page_SetCMYKFill(hpage, c, m, y, k)
End Sub
Public Sub SetCMYKStroke(ByVal c As Single, ByVal m As Single, ByVal y As Single, ByVal k As Single)
HPDF_Page_SetCMYKStroke(hpage, c, m, y, k)
End Sub
Public Sub ExecuteXObject(ByRef xobj As HPdfImage)
HPDF_Page_ExecuteXObject(hpage, xobj.GetHandle())
End Sub
Public Sub DrawImage(ByRef image As HPdfImage, ByVal x As Single, ByVal y As Single, ByVal width As Single, ByVal height As Single)
HPDF_Page_DrawImage(hpage, image.GetHandle(), x, y, width, height)
End Sub
Public Sub Circle(ByVal x As Single, ByVal y As Single, ByVal ray As Single)
HPDF_Page_Circle(hpage, x, y, ray)
End Sub
Public Sub Arc(ByVal x As Single, ByVal y As Single, ByVal ray As Single, ByVal ang1 As Single, ByVal ang2 As Single)
HPDF_Page_Arc(hpage, x, y, ray, ang1, ang2)
End Sub
Public Sub TextOut(ByVal xpos As Single, ByVal ypos As Single, ByVal text As String)
HPDF_Page_TextOut(hpage, xpos, ypos, text)
End Sub
Public Sub TextRect(ByVal left As Single, ByVal top As Single, ByVal right As Single, ByVal bottom As Single, ByVal text As String, ByVal align As HPdfTextAlignment, ByRef len As UInt32)
HPDF_Page_TextRect(hpage, left, top, right, bottom, text, align, len)
End Sub
Public Sub SetSlideShow(ByVal type As HPdfTransitionStyle, ByVal disp_time As Single, ByVal trans_time As Single)
HPDF_Page_SetSlideShow(hpage, type, disp_time, trans_time)
End Sub
Public Function GetHandle() As IntPtr
Return hpage
End Function
End Class
Public Class HPdfFont
Private Declare Function HPDF_Outline_SetOpened Lib "libhpdf.dll" Alias "HPDF_Outline_SetOpened" (ByVal houtline As IntPtr, ByVal opened As Int32) As UInt32
Private Declare Function HPDF_Font_GetFontName Lib "libhpdf.dll" Alias "HPDF_Font_GetFontName" (ByVal hfont As IntPtr) As String
Private Declare Function HPDF_Font_GetEncodingName Lib "libhpdf.dll" Alias "HPDF_Font_GetEncodingName" (ByVal hfont As IntPtr) As String
Private Declare Function HPDF_Font_GetUnicodeWidth Lib "libhpdf.dll" Alias "HPDF_Font_GetUnicodeWidth" (ByVal hfont As IntPtr, ByVal code As UInt16) As Int32
Private Declare Function HPDF_Font_GetBBox Lib "libhpdf.dll" Alias "HPDF_Font_GetBBox" (ByVal hfont As IntPtr) As HPdfBox
Private Declare Function HPDF_Font_GetAscent Lib "libhpdf.dll" Alias "HPDF_Font_GetAscent" (ByVal hfont As IntPtr) As Int32
Private Declare Function HPDF_Font_GetDescent Lib "libhpdf.dll" Alias "HPDF_Font_GetDescent" (ByVal hfont As IntPtr) As Int32
Private Declare Function HPDF_Font_GetXHeight Lib "libhpdf.dll" Alias "HPDF_Font_GetXHeight" (ByVal hfont As IntPtr) As UInt32
Private Declare Function HPDF_Font_GetCapHeight Lib "libhpdf.dll" Alias "HPDF_Font_GetCapHeight" (ByVal hfont As IntPtr) As UInt32
Private Declare Function HPDF_Font_TextWidth Lib "libhpdf.dll" Alias "HPDF_Font_TextWidth" (ByVal hfont As IntPtr, ByVal text As String, ByVal len As UInt16) As HPdfTextWidth
Private Declare Function HPDF_Font_MeasureText Lib "libhpdf.dll" Alias "HPDF_Font_MeasureText" (ByVal hfont As IntPtr, ByVal text As String, ByVal len As UInt16, _
ByVal width As Single, ByVal font_size As Single, ByVal char_space As Single, ByVal word_space As Single, ByVal wordwrap As Int32, ByRef real_width As Single) As UInt32
Private hfont As IntPtr
Public Sub New(ByVal hfont As IntPtr)
If (hfont = IntPtr.Zero) Then
Throw New Exception("cannot create HPdfFont object.")
End If
Me.hfont = hfont
End Sub
Public Function GetHandle() As IntPtr
Return hfont
End Function
Public Function GetFontName() As String
Return HPDF_Font_GetFontName(hfont)
End Function
Public Function GetEncodingName() As String
Return HPDF_Font_GetEncodingName(hfont)
End Function
Public Function GetUnicodeWidth(ByVal code As UInt16) As Int32
Return HPDF_Font_GetUnicodeWidth(hfont, code)
End Function
Public Function GetBBox() As HPdfBox
Return HPDF_Font_GetBBox(hfont)
End Function
Public Function GetAscent() As Int32
Return HPDF_Font_GetAscent(hfont)
End Function
Public Function GetDescent() As Int32
Return HPDF_Font_GetDescent(hfont)
End Function
Public Function GetXHeight() As UInt32
Return HPDF_Font_GetXHeight(hfont)
End Function
Public Function GetCapHeight() As UInt32
Return HPDF_Font_GetCapHeight(hfont)
End Function
Public Function TextWidth(ByVal text As String, ByVal len As UInt32) As HPdfTextWidth
Return HPDF_Font_TextWidth(hfont, text, len)
End Function
Public Function MeasureText(ByVal text As String, ByVal len As UInt32, ByVal width As Single, _
ByVal font_size As Single, ByVal char_space As Single, ByVal word_space As Single, _
ByVal wordwrap As Int32, ByRef real_width As Single) As UInt32
Return HPDF_Font_MeasureText(hfont, text, len, width, font_size, char_space, word_space, wordwrap, real_width)
End Function
End Class
Public Class HPdfOutline
Private Declare Function HPDF_Outline_SetOpened Lib "libhpdf.dll" Alias "HPDF_Outline_SetOpened" (ByVal houtline As IntPtr, ByVal opened As Int32) As UInt32
Private Declare Function HPDF_Outline_SetDestination Lib "libhpdf.dll" Alias "HPDF_Outline_SetDestination" (ByVal houtline As IntPtr, ByVal hdest As IntPtr) As UInt32
Private houtline As IntPtr
Public Sub New(ByVal houtline As IntPtr)
If (houtline = IntPtr.Zero) Then
Throw New Exception("cannot create HPdfOutline object.")
End If
Me.houtline = houtline
End Sub
Public Function GetHandle() As IntPtr
Return houtline
End Function
Public Sub SetOpened(ByVal opened As Boolean)
Dim iopened As Int32
If (opened) Then
iopened = HPdfDoc.HPDF_TRUE
Else
iopened = HPdfDoc.HPDF_FALSE
End If
HPDF_Outline_SetOpened(houtline, iopened)
End Sub
Public Sub SetDestination(ByRef dest As HPdfDestination)
HPDF_Outline_SetDestination(houtline, dest.GetHandle())
End Sub
End Class
Public Class HPdfEncoder
Private Declare Function HPDF_Encoder_GetType Lib "libhpdf.dll" Alias "HPDF_Encoder_GetType" (ByVal hencoder As IntPtr) As HPdfEncoderType
Private Declare Function HPDF_Encoder_GetByteType Lib "libhpdf.dll" Alias "HPDF_Encoder_GetByteType" (ByVal hencoder As IntPtr, ByVal text As String, ByVal index As UInt32) As HPdfByteType
Private Declare Function HPDF_Encoder_GetUnicode Lib "libhpdf.dll" Alias "HPDF_Encoder_GetUnicode" (ByVal hencoder As IntPtr, ByVal code As UInt16) As UInt16
Private Declare Function HPDF_Encoder_GetWritingMode Lib "libhpdf.dll" Alias "HPDF_Encoder_GetWritingMode" (ByVal hencoder As IntPtr) As HPdfWritingMode
Private hencoder As IntPtr
Public Sub New(ByVal hencoder As IntPtr)
If (hencoder = IntPtr.Zero) Then
Throw New Exception("cannot create HPdfEncoder object.")
End If
Me.hencoder = hencoder
End Sub
Public Function GetHandle() As IntPtr
Return hencoder
End Function
Public Function GetEncoderType() As HPdfEncoderType
Return HPDF_Encoder_GetType(hencoder)
End Function
Public Function GetByteType(ByVal text As String, ByVal index As UInt32) As HPdfByteType
Return HPDF_Encoder_GetByteType(hencoder, text, index)
End Function
Public Function GetUnicode(ByVal code As UInt16) As UInt16
Return HPDF_Encoder_GetUnicode(hencoder, code)
End Function
Public Function GetWritingMode() As HPdfWritingMode
Return HPDF_Encoder_GetWritingMode(hencoder)
End Function
End Class
Public Class HPdfDestination
Private Declare Function HPDF_Destination_SetXYZ Lib "libhpdf.dll" Alias "HPDF_Destination_SetXYZ" (ByVal hdest As IntPtr, ByVal left As Single, ByVal top As Single, ByVal zoom As Single) As UInt32
Private Declare Function HPDF_Destination_SetFit Lib "libhpdf.dll" Alias "HPDF_Destination_SetFit" (ByVal hdest As IntPtr) As UInt32
Private Declare Function HPDF_Destination_SetFitH Lib "libhpdf.dll" Alias "HPDF_Destination_SetFitH" (ByVal hdest As IntPtr, ByVal top As Single) As UInt32
Private Declare Function HPDF_Destination_SetFitV Lib "libhpdf.dll" Alias "HPDF_Destination_SetFitV" (ByVal hdest As IntPtr, ByVal left As Single) As UInt32
Private Declare Function HPDF_Destination_SetFitR Lib "libhpdf.dll" Alias "HPDF_Destination_SetFitR" (ByVal hdest As IntPtr, ByVal left As Single, ByVal bottom As Single, ByVal right As Single, ByVal top As Single) As UInt32
Private Declare Function HPDF_Destination_SetFitB Lib "libhpdf.dll" Alias "HPDF_Destination_SetFitB" (ByVal hdest As IntPtr) As UInt32
Private Declare Function HPDF_Destination_SetFitBH Lib "libhpdf.dll" Alias "HPDF_Destination_SetFitBH" (ByVal hdest As IntPtr, ByVal top As Single) As UInt32
Private Declare Function HPDF_Destination_SetFitBV Lib "libhpdf.dll" Alias "HPDF_Destination_SetFitBV" (ByVal hdest As IntPtr, ByVal left As Single) As UInt32
Private hdest As IntPtr
Public Sub New(ByVal hdest As IntPtr)
If (hdest = IntPtr.Zero) Then
Throw New Exception("cannot create HPdfDestination object.")
End If
Me.hdest = hdest
End Sub
Public Sub SetXYZ(ByVal left As Single, ByVal top As Single, ByVal zoom As Single)
HPDF_Destination_SetXYZ(hdest, left, top, zoom)
End Sub
Public Sub SetFit()
HPDF_Destination_SetFit(hdest)
End Sub
Public Sub SetFitH(ByVal top As Single)
HPDF_Destination_SetFitH(hdest, top)
End Sub
Public Sub SetFitV(ByVal left As Single)
HPDF_Destination_SetFitV(hdest, left)
End Sub
Public Sub SetFitR(ByVal left As Single, ByVal bottom As Single, ByVal right As Single, ByVal top As Single)
HPDF_Destination_SetFitR(hdest, left, bottom, right, top)
End Sub
Public Sub SetFitB()
HPDF_Destination_SetFitB(hdest)
End Sub
Public Sub SetFitBH(ByVal top As Single)
HPDF_Destination_SetFitBH(hdest, top)
End Sub
Public Sub SetFitBV(ByVal left As Single)
HPDF_Destination_SetFitBV(hdest, left)
End Sub
Public Function GetHandle() As IntPtr
Return hdest
End Function
End Class
Public Class HPdfAnnotation
Private Declare Function HPDF_LinkAnnot_SetHighlightMode Lib "libhpdf.dll" Alias "HPDF_LinkAnnot_SetHighlightMode" (ByVal hannot As IntPtr, ByVal mode As HPdfAnnotHighlightMode) As UInt32
Private Declare Function HPDF_LinkAnnot_SetBorderStyle Lib "libhpdf.dll" Alias "HPDF_LinkAnnot_SetBorderStyle" (ByVal hannot As IntPtr, ByVal width As Single, ByVal dash_on As UInt16, ByVal dash_off As UInt16) As UInt32
Private Declare Function HPDF_TextAnnot_SetIcon Lib "libhpdf.dll" Alias "HPDF_TextAnnot_SetIcon" (ByVal hannot As IntPtr, ByVal icon As HPdfAnnotIcon) As UInt32
Private Declare Function HPDF_TextAnnot_SetOpened Lib "libhpdf.dll" Alias "HPDF_TextAnnot_SetOpened" (ByVal hannot As IntPtr, ByVal opened As Int32) As UInt32
Private hannot As IntPtr
Public Sub New(ByVal hannot As IntPtr)
If (hannot = IntPtr.Zero) Then
Throw New Exception("cannot create HPdfAnnotation object.")
End If
Me.hannot = hannot
End Sub
Public Function GetHandle() As IntPtr
Return hannot
End Function
Public Sub SetHighlightMode(ByVal mode As HPdfAnnotHighlightMode)
HPDF_LinkAnnot_SetHighlightMode(hannot, mode)
End Sub
Public Sub SetBorderStyle(ByVal width As Single, ByVal dash_on As UInt16, ByVal dash_off As UInt16)
HPDF_LinkAnnot_SetBorderStyle(hannot, width, dash_on, dash_off)
End Sub
Public Sub SetIcon(ByVal icon As HPdfAnnotIcon)
HPDF_TextAnnot_SetIcon(hannot, icon)
End Sub
Public Sub SetOpened(ByVal opened As Boolean)
Dim flg As Int32
If (opened) Then
flg = HPdfDoc.HPDF_TRUE
Else
flg = HPdfDoc.HPDF_FALSE
End If
HPDF_TextAnnot_SetOpened(hannot, flg)
End Sub
End Class
Public Class HPdfXObject
Protected hobj As IntPtr
Public Sub New(ByVal hobj As IntPtr)
If (hobj = IntPtr.Zero) Then
Throw New Exception("cannot create HPdfImage object.")
End If
Me.hobj = hobj
End Sub
Public Function GetHandle() As IntPtr
Return hobj
End Function
End Class
Public Class HPdfImage
Inherits HPdfXObject
Private Declare Function HPDF_Image_GetSize Lib "libhpdf.dll" Alias "HPDF_Image_GetSize" (ByVal image As IntPtr) As HPdfPoint
Private Declare Function HPDF_Image_GetWidth Lib "libhpdf.dll" Alias "HPDF_Image_GetWidth" (ByVal image As IntPtr) As UInt32
Private Declare Function HPDF_Image_GetHeight Lib "libhpdf.dll" Alias "HPDF_Image_GetHeight" (ByVal image As IntPtr) As UInt32
Private Declare Function HPDF_Image_GetBitsPerComponent Lib "libhpdf.dll" Alias "HPDF_Image_GetBitsPerComponent" (ByVal image As IntPtr) As UInt32
Private Declare Function HPDF_Image_GetColorSpace Lib "libhpdf.dll" Alias "HPDF_Image_GetColorSpace" (ByVal image As IntPtr) As String
Private Declare Function HPDF_Image_SetColorMask Lib "libhpdf.dll" Alias "HPDF_Image_SetColorMask" (ByVal image As IntPtr, ByVal rmin As UInt32, ByVal rmax As UInt32, ByVal gmin As UInt32, ByVal gmax As UInt32, ByVal bmin As UInt32, ByVal bmax As UInt32) As UInt32
Private Declare Function HPDF_Image_SetMaskImage Lib "libhpdf.dll" Alias "HPDF_Image_SetMaskImage" (ByVal image As IntPtr, ByVal image_mask As IntPtr) As String
Public Sub New(ByVal hobj As IntPtr)
MyBase.New(hobj)
End Sub
Public Function GetWidth() As UInt32
Return HPDF_Image_GetWidth(hobj)
End Function
Public Function GetHeight() As UInt32
Return HPDF_Image_GetHeight(hobj)
End Function
Public Function GetBitsPerComponent() As UInt32
Return HPDF_Image_GetBitsPerComponent(hobj)
End Function
Public Function GetColorSpace() As String
Return HPDF_Image_GetColorSpace(hobj)
End Function
Public Sub SetColorMask(ByVal rmin As UInt32, ByVal rmax As UInt32, ByVal gmin As UInt32, ByVal gmax As UInt32, ByVal bmin As UInt32, ByVal bmax As UInt32)
HPDF_Image_SetColorMask(hobj, rmin, rmax, gmin, gmax, bmin, bmax)
End Sub
Public Sub SetMaskImage(ByRef mask_image As HPdfImage)
HPDF_Image_SetMaskImage(hobj, mask_image.GetHandle())
End Sub
End Class
Public Class HPdfExtGState
Private Declare Function HPDF_ExtGState_SetAlphaStroke Lib "libhpdf.dll" Alias "HPDF_ExtGState_SetAlphaStroke" (ByVal gstate As IntPtr, ByVal value As Single) As UInt32
Private Declare Function HPDF_ExtGState_SetAlphaFill Lib "libhpdf.dll" Alias "HPDF_ExtGState_SetAlphaFill" (ByVal gstate As IntPtr, ByVal value As Single) As UInt32
Private Declare Function HPDF_ExtGState_SetBlendMode Lib "libhpdf.dll" Alias "HPDF_ExtGState_SetBlendMode" (ByVal gstate As IntPtr, ByVal mode As HPdfBlendMode) As UInt32
Protected hgstate As IntPtr
Public Sub New(ByVal hgstate As IntPtr)
If (hgstate = IntPtr.Zero) Then
Throw New Exception("cannot create HPdfImage object.")
End If
Me.hgstate = hgstate
End Sub
Public Function GetHandle() As IntPtr
Return hgstate
End Function
Public Sub SetAlphaStroke(ByVal value As Single)
HPDF_ExtGState_SetAlphaStroke(hgstate, value)
End Sub
Public Sub SetAlphaFill(ByVal value As Single)
HPDF_ExtGState_SetAlphaFill(hgstate, value)
End Sub
Public Sub SetBlendMode(ByVal mode As HPdfBlendMode)
HPDF_ExtGState_SetBlendMode(hgstate, mode)
End Sub
End Class
End Namespace