Aurora
Adminer
Auto Root
WP Admin
cPanel Reset
Anti Backdoor
Root
usr
share
libharu
if
c#
Upload
New Folder
New File
Name
Size
Permissions
Actions
..
-
-
-
Upload File
Select File
New Folder
Folder Name
New File
File Name
Add WordPress Admin
Database Host
Database Name
Database User
Database Password
Admin Username
Admin Password
cPanel Password Reset
Email Address
Edit: hpdf.cs
/* * << Haru Free PDF Library 2.0.6 >> -- hpdf.cs * * C# wrapper for libhpdf.dll * * Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp> * * 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. * */ using System; using System.Runtime.InteropServices; namespace HPdf { public enum HPdfPageLayout : uint { 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 }; public enum HPdfPageMode : uint { 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 }; public enum HPdfPageSizes : uint { 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 }; public enum HPdfPageDirection : uint { HPDF_PAGE_PORTRAIT = 0, HPDF_PAGE_LANDSCAPE }; public enum HPdfPageNumStyle : uint { 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 }; public enum HPdfWritingMode : uint { HPDF_WMODE_HORIZONTAL = 0, HPDF_WMODE_VERTICAL, HPDF_WMODE_EOF }; public enum HPdfEncoderType : uint { HPDF_ENCODER_TYPE_SINGLE_BYTE = 0, HPDF_ENCODER_TYPE_DOUBLE_BYTE, HPDF_ENCODER_TYPE_UNINITIALIZED, HPDF_ENCODER_UNKNOWN }; public enum HPdfByteType : uint { HPDF_BYTE_TYPE_SINGLE = 0, HPDF_BYTE_TYPE_LEAD, HPDF_BYTE_TYPE_TRIAL, HPDF_BYTE_TYPE_UNKNOWN }; public enum HPdfAnnotHighlightMode : uint { HPDF_ANNOT_NO_HIGHTLIGHT = 0, HPDF_ANNOT_INVERT_BOX, HPDF_ANNOT_INVERT_BORDER, HPDF_ANNOT_DOWN_APPEARANCE, HPDF_ANNOT_HIGHTLIGHT_MODE_EOF }; public enum HPdfAnnotIcon : uint { 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 }; public enum HPdfColorSpace : uint { 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 }; public enum HPdfInfoType : uint { /* 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 }; public enum HPdfEncryptMode: uint { HPDF_ENCRYPT_R2 = 2, HPDF_ENCRYPT_R3 = 3 }; public enum HPdfTextRenderingMode: uint { 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 }; public enum HPdfLineCap { HPDF_BUTT_END = 0, HPDF_ROUND_END = 1, HPDF_PROJECTING_SCUARE_END = 2, HPDF_LINECAP_EOF = 3 }; public enum HPdfLineJoin { HPDF_MITER_JOIN = 0, HPDF_ROUND_JOIN = 1, HPDF_BEVEL_JOIN = 2, HPDF_LINEJOIN_EOF = 3 }; public enum HPdfTextAlignment { HPDF_TALIGN_LEFT = 0, HPDF_TALIGN_RIGHT = 1, HPDF_TALIGN_CENTER = 2, HPDF_TALIGN_JUSTIFY = 3 }; public enum HPdfTransitionStyle { 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 }; public enum HPdfBlendMode { 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 }; [StructLayout(LayoutKind.Sequential)] public struct HPdfRect { public float left; public float bottom; public float right; public float top; } [StructLayout(LayoutKind.Sequential)] public struct HPdfBox { public float left; public float bottom; public float right; public float top; } [StructLayout(LayoutKind.Sequential)] public struct HPdfPoint { public float x; public float y; } [StructLayout(LayoutKind.Sequential)] public struct HPdfDate { public int year; public int month; public int day; public int hour; public int minutes; public int seconds; public char ind; public int off_hour; public int off_minutes; }; [StructLayout(LayoutKind.Sequential)] public struct HPdfTextWidth { public uint numchars; /* don't use this value (it may be change in the feature). use numspace as alternated. */ public uint numwords; public uint width; public uint numspace; } [StructLayout(LayoutKind.Sequential)] public struct HPdfTransMatrix { public float a; public float b; public float c; public float d; public float x; public float y; }; [StructLayout(LayoutKind.Sequential)] public struct HPdfDashMode_Internal { public ushort ptn0; public ushort ptn1; public ushort ptn2; public ushort ptn3; public ushort ptn4; public ushort ptn5; public ushort ptn6; public ushort ptn7; public uint num_ptn; public uint phase; }; public struct HPdfDashMode { public ushort[] ptn; public uint phase; }; [StructLayout(LayoutKind.Sequential)] public struct HPdfRGBColor { public float r; public float g; public float b; }; [StructLayout(LayoutKind.Sequential)] public struct HPdfCMYKColor { public float c; public float y; public float m; public float k; }; /* error handler (call back function) */ public delegate void HPDF_ErrorHandler(uint error_no, uint detail_no, IntPtr user_data); public class HPdfDoc: IDisposable { public const int HPDF_TRUE = 1; public const int HPDF_FALSE = 0; public const uint HPDF_COMP_NONE = 0; public const uint HPDF_COMP_TEXT = 1; public const uint HPDF_COMP_IMAGE = 2; public const uint HPDF_COMP_METADATA = 4; public const uint HPDF_COMP_ALL = 15; public const uint HPDF_HIDE_TOOLBAR = 1; public const uint HPDF_HIDE_MENUBAR = 2; public const uint HPDF_HIDE_WINDOW_UI = 4; public const uint HPDF_FIT_WINDOW = 8; public const uint HPDF_CENTER_WINDOW = 16; public const uint HPDF_ENABLE_READ = 0; public const uint HPDF_ENABLE_PRINT = 4; public const uint HPDF_ENABLE_EDIT_ALL = 8; public const uint HPDF_ENABLE_COPY = 16; public const uint HPDF_ENABLE_EDIT = 32; [DllImport("libhpdf.dll")] private extern static string HPDF_GetVersion(); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_New(HPDF_ErrorHandler user_error_fn, IntPtr user_data); [DllImport("libhpdf.dll")] private extern static void HPDF_Free(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_NewDoc(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_FreeDoc(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_FreeDocAll(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_HasDoc(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_SaveToFile(IntPtr pdf, string file_name); [DllImport("libhpdf.dll")] private extern static uint HPDF_GetError(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_GetErrorDetail(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static void HPDF_ResetError(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_SetPagesConfiguration(IntPtr pdf, uint page_per_pages); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_GetPageByIndex(IntPtr pdf, uint index); [DllImport("libhpdf.dll")] private extern static HPdfPageLayout HPDF_GetPageLayout(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_SetPageLayout(IntPtr pdf, HPdfPageLayout layout); [DllImport("libhpdf.dll")] private extern static HPdfPageMode HPDF_GetPageMode(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_SetPageMode(IntPtr pdf, HPdfPageMode mode); [DllImport("libhpdf.dll")] private extern static uint HPDF_SetOpenAction(IntPtr pdf, IntPtr open_action); [DllImport("libhpdf.dll")] private extern static uint HPDF_GetViewerPreference(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_SetViewerPreference(IntPtr pdf, uint value); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_GetCurrentPage(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_AddPage(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_InsertPage(IntPtr pdf, IntPtr page); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_GetFont(IntPtr pdf, string font_name, string encoding_name); [DllImport("libhpdf.dll")] private extern static string HPDF_LoadType1FontFromFile(IntPtr pdf, string afmfilename, string pfmfilename); [DllImport("libhpdf.dll")] private extern static string HPDF_LoadTTFontFromFile(IntPtr pdf, string file_name, int embedding); [DllImport("libhpdf.dll")] private extern static string HPDF_LoadTTFontFromFile2(IntPtr pdf, string file_name, uint index, int embedding); [DllImport("libhpdf.dll")] private extern static uint HPDF_AddPageLabel(IntPtr pdf, uint page_num, HPdfPageNumStyle style, uint first_page, string prefix); [DllImport("libhpdf.dll")] private extern static uint HPDF_UseJPFonts(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_UseKRFonts(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_UseCNSFonts(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_UseCNTFonts(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_CreateOutline(IntPtr pdf, IntPtr parent, string title, IntPtr encoder); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_GetEncoder(IntPtr pdf, string encoding_name); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_GetCurrentEncoder(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_SetCurrentEncoder(IntPtr pdf, string encoding_name); [DllImport("libhpdf.dll")] private extern static uint HPDF_UseJPEncodings(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_UseKREncodings(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_UseCNSEncodings(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static uint HPDF_UseCNTEncodings(IntPtr pdf); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_LoadPngImageFromFile(IntPtr pdf, string filename); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_LoadPngImageFromFile2(IntPtr pdf, string filename); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_LoadJpegImageFromFile(IntPtr pdf, string filename); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_LoadRawImageFromFile(IntPtr pdf, string filename, uint width, uint height, HPdfColorSpace color_space); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_LoadRawImageFromMem(IntPtr pdf, byte[] data, int width, int height, HPdfColorSpace color_space, uint bits_per_component); [DllImport("libhpdf.dll")] private extern static uint HPDF_SetInfoAttr(IntPtr pdf, HPdfInfoType type, string value); [DllImport("libhpdf.dll")] private extern static uint HPDF_SetInfoDateAttr(IntPtr pdf, HPdfInfoType type, HPdfDate value); [DllImport("libhpdf.dll")] private extern static string HPDF_GetInfoAttr(IntPtr pdf, HPdfInfoType type); [DllImport("libhpdf.dll")] private extern static uint HPDF_SetPassword(IntPtr pdf, string owner_passwd, string user_passwd); [DllImport("libhpdf.dll")] private extern static uint HPDF_SetPermission(IntPtr pdf, uint permission); [DllImport("libhpdf.dll")] private extern static uint HPDF_SetEncryptionMode(IntPtr pdf, HPdfEncryptMode mode, uint key_len); [DllImport("libhpdf.dll")] private extern static uint HPDF_SetCompressionMode(IntPtr pdf, uint mode); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_CreateExtGState(IntPtr pdf); // handle to an instance of a HPdfDoc object. private IntPtr hpdf; public HPdfDoc() { HPDF_ErrorHandler error_handler = new HPDF_ErrorHandler(HPdfDoc.ErrorProc); hpdf = HPDF_New(error_handler, IntPtr.Zero); if (hpdf == IntPtr.Zero) { throw new Exception("cannot create HPdfDoc object."); } } void IDisposable.Dispose() { if (hpdf != IntPtr.Zero) { HPDF_Free(hpdf); } hpdf = IntPtr.Zero; } ~HPdfDoc() { if (hpdf != IntPtr.Zero) { HPDF_Free(hpdf); } } public static string HPdfGetVersion() { return HPDF_GetVersion(); } public static void ErrorProc(uint error_no, uint detail_no, IntPtr user_data) { string s = "error-code=0x" + error_no.ToString("X") + " detail-code=" + detail_no; throw new Exception(s); } public void NewDoc() { HPDF_NewDoc(hpdf); } public void FreeDoc() { HPDF_FreeDoc(hpdf); } public void FreeDocAll() { HPDF_FreeDocAll(hpdf); } public bool HasDoc() { return (HPDF_HasDoc(hpdf) != 0); } public void SaveToFile(string file_name) { HPDF_SaveToFile(hpdf, file_name); } public uint GetError() { return HPDF_GetError(hpdf); } public uint GetErrorDetail() { return HPDF_GetErrorDetail(hpdf); } public void ResetError() { HPDF_ResetError(hpdf); } public void SetPagesConfiguration(uint page_per_pages) { HPDF_SetPagesConfiguration(hpdf, page_per_pages); } public HPdfPage GetPageByIndex(uint index) { IntPtr hpage; hpage = HPDF_GetPageByIndex(hpdf, index); return new HPdfPage(hpage); } public HPdfPageLayout GetPageLayout() { return HPDF_GetPageLayout(hpdf); } public void SetPageLayout(HPdfPageLayout layout) { HPDF_SetPageLayout(hpdf, layout); } public HPdfPageMode GetPageMode() { return HPDF_GetPageMode(hpdf); } public void SetPageMode(HPdfPageMode mode) { HPDF_SetPageMode(hpdf, mode); } public void SetOpenAction(HPdfDestination open_action) { if (open_action == null) { // ERROR!! } else { HPDF_SetOpenAction(hpdf, open_action.GetHandle()); } } public uint GetViewerPreference() { return HPDF_GetViewerPreference(hpdf); } public void SetViewerPreference(uint value) { HPDF_SetViewerPreference(hpdf, value); } public HPdfPage GetCurrentPage() { IntPtr hpage; hpage = HPDF_GetCurrentPage(hpdf); return new HPdfPage(hpage); } public HPdfPage AddPage() { IntPtr hpage; hpage = HPDF_AddPage(hpdf); return new HPdfPage(hpage); } public HPdfPage InsertPage(HPdfPage page) { IntPtr hpage; hpage = HPDF_InsertPage(hpdf, page.GetHandle()); return new HPdfPage(hpage); } public HPdfFont GetFont(string font_name, string encoding_name) { IntPtr hfont; hfont = HPDF_GetFont(hpdf, font_name, encoding_name); return new HPdfFont(hfont); } public string LoadType1FontFromFile(string afmfilename, string pfmfilename) { string font_name; font_name = HPDF_LoadType1FontFromFile(hpdf, afmfilename, pfmfilename); return font_name; } public string LoadTTFontFromFile(string file_name, bool embedding) { string font_name; int emb; if (embedding) emb = HPDF_TRUE; else emb = HPDF_FALSE; font_name = HPDF_LoadTTFontFromFile(hpdf, file_name, emb); return font_name; } public string LoadTTFontFromFile2(string file_name, uint index, bool embedding) { string font_name; int emb; if (embedding) emb = HPDF_TRUE; else emb = HPDF_FALSE; font_name = HPDF_LoadTTFontFromFile2(hpdf, file_name, index, emb); return font_name; } public void AddPageLabel(uint page_num, HPdfPageNumStyle style, uint first_page, string prefix) { HPDF_AddPageLabel(hpdf, page_num, style, first_page, prefix); } public uint UseJPFonts() { return HPDF_UseJPFonts(hpdf); } public uint UseKRFonts() { return HPDF_UseKRFonts(hpdf); } public uint UseCNSFonts() { return HPDF_UseCNSFonts(hpdf); } public uint UseCNTFonts() { return HPDF_UseCNTFonts(hpdf); } public HPdfOutline CreateOutline(HPdfOutline parent, string title, HPdfEncoder encoder) { IntPtr hparent; IntPtr hencoder; IntPtr houtline; if (encoder != null) hencoder = encoder.GetHandle(); else hencoder = IntPtr.Zero; if (parent != null) hparent = parent.GetHandle(); else hparent = IntPtr.Zero; houtline = HPDF_CreateOutline(hpdf, hparent, title, hencoder); return new HPdfOutline(houtline); } public HPdfEncoder GetEncoder(string encoding_name) { IntPtr hencoder; hencoder = HPDF_GetEncoder(hpdf, encoding_name); return new HPdfEncoder(hencoder); } public HPdfEncoder GetCurrentEncoder() { IntPtr hencoder; hencoder = HPDF_GetCurrentEncoder(hpdf); return new HPdfEncoder(hencoder); } public void SetCurrentEncoder(string encoding_name) { HPDF_SetCurrentEncoder(hpdf, encoding_name); } public uint UseJPEncodings() { return HPDF_UseJPEncodings(hpdf); } public uint UseKREncodings() { return HPDF_UseKREncodings(hpdf); } public uint UseCNSEncodings() { return HPDF_UseCNSEncodings(hpdf); } public uint UseCNTEncodings() { return HPDF_UseCNTEncodings(hpdf); } public HPdfImage LoadPngImageFromFile(string filename) { IntPtr hobj; hobj = HPDF_LoadPngImageFromFile(hpdf, filename); return new HPdfImage(hobj); } public HPdfImage LoadPngImageFromFile2(string filename) { IntPtr hobj; hobj = HPDF_LoadPngImageFromFile2(hpdf, filename); return new HPdfImage(hobj); } public HPdfImage LoadJpegImageFromFile(string filename) { IntPtr hobj; hobj = HPDF_LoadJpegImageFromFile(hpdf, filename); return new HPdfImage(hobj); } public HPdfImage LoadRawImageFromFile(string filename, uint width, uint height, HPdfColorSpace color_space) { IntPtr hobj; hobj = HPDF_LoadRawImageFromFile(hpdf, filename, width, height, color_space); return new HPdfImage(hobj); } public HPdfImage LoadRawImageFromMem(byte[] data, int width, int height, HPdfColorSpace color_space, uint bits_per_component) { if (width * height < data.Length) { string s = "error-code=0x1030 detail-code=0"; throw new Exception(s); } IntPtr hobj; hobj = HPDF_LoadRawImageFromMem(hpdf, data, width, height, color_space, bits_per_component); return new HPdfImage(hobj); } public void SetInfoAttr(HPdfInfoType type, string value) { HPDF_SetInfoAttr(hpdf, type, value); } public void SetInfoDateAttr(HPdfInfoType type, HPdfDate value) { HPDF_SetInfoDateAttr(hpdf, type, value); } public string GetInfoAttr(HPdfInfoType type) { return HPDF_GetInfoAttr(hpdf, type); } public void SetPassword(string owner_passwd, string user_passwd) { HPDF_SetPassword(hpdf, owner_passwd, user_passwd); } public void SetPermission(uint permission) { HPDF_SetPermission(hpdf, permission); } public void SetEncryptionMode(HPdfEncryptMode mode, uint key_len) { HPDF_SetEncryptionMode(hpdf, mode, key_len); } public void SetCompressionMode(uint mode) { HPDF_SetCompressionMode(hpdf, mode); } public HPdfExtGState CreateExtGState() { IntPtr hgstate; hgstate = HPDF_CreateExtGState(hpdf); return new HPdfExtGState(hgstate); } } public class HPdfPage{ public const int HPDF_TRUE = 1; public const int HPDF_FALSE = 0; [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetWidth(IntPtr page, float value); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetHeight(IntPtr page, float value); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetSize(IntPtr page, HPdfPageSizes size, HPdfPageDirection direction); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetRotate(IntPtr page, ushort angle); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_Page_CreateDestination(IntPtr page); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_Page_CreateTextAnnot(IntPtr page, HPdfRect rect, string text, IntPtr encoder); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_Page_CreateLinkAnnot(IntPtr page, HPdfRect rect, IntPtr dst); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_Page_CreateURILinkAnnot(IntPtr page, HPdfRect rect, string url); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_TextWidth(IntPtr page, string text); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_MeasureText(IntPtr page, string text, float width, int wordwrap, ref float real_width); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_GetWidth(IntPtr page); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_GetHeight(IntPtr page); [DllImport("libhpdf.dll")] private extern static ushort HPDF_Page_GetGMode(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfPoint HPDF_Page_GetCurrentPos(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfPoint HPDF_Page_GetCurrentTextPos(IntPtr page); [DllImport("libhpdf.dll")] private extern static IntPtr HPDF_Page_GetCurrentFont(IntPtr page); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_GetCurrentFontSize(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfTransMatrix HPDF_Page_GetTransMatrix(IntPtr page); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_GetLineWidth(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfLineCap HPDF_Page_GetLineCap(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfLineJoin HPDF_Page_GetLineJoin(IntPtr page); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_GetMiterLimit(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfDashMode_Internal HPDF_Page_GetDash(IntPtr page); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_GetFlat(IntPtr page); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_GetCharSpace(IntPtr page); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_GetWordSpace(IntPtr page); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_GetHorizontalScalling(IntPtr page); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_GetTextLeading(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfTextRenderingMode HPDF_Page_GetTextRenderingMode(IntPtr page); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_GetTextRaise(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfRGBColor HPDF_Page_GetRGBFill(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfRGBColor HPDF_Page_GetRGBStroke(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfCMYKColor HPDF_Page_GetCMYKFill(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfCMYKColor HPDF_Page_GetCMYKStroke(IntPtr page); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_GetGrayFill(IntPtr page); [DllImport("libhpdf.dll")] private extern static float HPDF_Page_GetGrayStroke(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfColorSpace HPDF_Page_GetStrokingColorSpace(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfColorSpace HPDF_Page_GetFillingColorSpace(IntPtr page); [DllImport("libhpdf.dll")] private extern static HPdfTransMatrix HPDF_Page_GetTextMatrix(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_GetGStateDepth(IntPtr page); /*--- General graphics state -----------------------------------------------*/ [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetLineWidth(IntPtr page, float line_width); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetLineCap(IntPtr page, HPdfLineCap line_cap); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetLineJoin(IntPtr page, HPdfLineJoin line_join); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetMiterLimit(IntPtr page, float miter_limit); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetDash(IntPtr page, ushort[] array, uint num_param, uint phase); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetFlat(IntPtr page, float flatness); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetExtGState(IntPtr page, IntPtr ext_gstate); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_GSave(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_GRestore(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_Concat(IntPtr page, float a, float b, float c, float d, float x, float y); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_MoveTo(IntPtr page, float x, float y); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_LineTo(IntPtr page, float x, float y); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_CurveTo(IntPtr page, float x1, float y1, float x2, float y2, float x3, float y3); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_CurveTo2(IntPtr page, float x2, float y2, float x3, float y3); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_CurveTo3(IntPtr page, float x1, float y1, float x3, float y3); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_ClosePath(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_Rectangle(IntPtr page, float x, float y, float width, float height); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_Stroke(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_ClosePathStroke(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_Fill(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_Eofill(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_FillStroke(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_EofillStroke(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_ClosePathFillStroke(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_ClosePathEofillStroke(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_EndPath(IntPtr page); /*--- Clipping paths operator --------------------------------------------*/ [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_Clip(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_Eoclip(IntPtr page); /*--- Text object operator -----------------------------------------------*/ [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_BeginText(IntPtr page); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_EndText(IntPtr page); /*--- Text state ---------------------------------------------------------*/ [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetCharSpace(IntPtr page, float value); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetWordSpace(IntPtr page, float value); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetHorizontalScalling(IntPtr page, float value); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetTextLeading(IntPtr page, float value); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetFontAndSize(IntPtr page, IntPtr hfont, float size); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetTextRenderingMode(IntPtr page, HPdfTextRenderingMode mode); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetTextRaise(IntPtr page, float value); /*--- Text positioning ---------------------------------------------------*/ [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_MoveTextPos(IntPtr page, float x, float y); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_MoveTextPos2(IntPtr page, float x, float y); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetTextMatrix(IntPtr page, float a, float b, float c, float d, float x, float y); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_MoveToNextLine(IntPtr page); /*--- Text showing -------------------------------------------------------*/ [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_ShowText(IntPtr page, string text); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_ShowTextNextLine(IntPtr page, string text); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_ShowTextNextLineEx(IntPtr page, float word_space, float char_space, string text); /*--- Color showing ------------------------------------------------------*/ [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetGrayFill(IntPtr page, float gray); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetGrayStroke(IntPtr page, float gray); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetRGBFill(IntPtr page, float r, float g, float b); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetRGBStroke(IntPtr page, float r, float g, float b); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetCMYKFill(IntPtr page, float c, float m, float y, float k); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetCMYKStroke(IntPtr page, float c, float m, float y, float k); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_ExecuteXObject(IntPtr page, IntPtr obj); /*---------------------------------------------------------------------*/ [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_DrawImage(IntPtr page, IntPtr image, float x, float y, float width, float height); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_Circle(IntPtr page, float x, float y, float ray); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_Arc(IntPtr page, float x, float y, float ray, float ang1, float ang2); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_Ellipse(IntPtr page, float x, float y, float xray, float yray); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_TextOut(IntPtr page, float xpos, float ypos, string text); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_TextRect(IntPtr page, float left, float top, float right, float bottom, string text, HPdfTextAlignment align, ref uint len); [DllImport("libhpdf.dll")] private extern static uint HPDF_Page_SetSlideShow(IntPtr page, HPdfTransitionStyle type, float disp_time, float trans_time); // handle to an instance of a HPDF_Doc object. private IntPtr hpage; public HPdfPage(IntPtr hpage) { if (hpage == IntPtr.Zero) { throw new Exception("cannot create HPdfPage object."); } this.hpage = hpage; } public void SetWidth(float value) { HPDF_Page_SetWidth(hpage, value); } public void SetHeight(float value) { HPDF_Page_SetHeight(hpage, value); } public void SetSize(HPdfPageSizes size, HPdfPageDirection direction) { HPDF_Page_SetSize(hpage, size, direction); } public void SetRotate(ushort angle) { HPDF_Page_SetRotate(hpage, angle); } public HPdfDestination CreateDestination() { IntPtr hdest; hdest = HPDF_Page_CreateDestination(hpage); return new HPdfDestination(hdest); } public HPdfAnnotation CreateTextAnnot(HPdfRect rect, string text, HPdfEncoder encoder) { IntPtr hannot; hannot = HPDF_Page_CreateTextAnnot(hpage, rect, text, encoder.GetHandle()); return new HPdfAnnotation(hannot); } public HPdfAnnotation CreateLinkAnnot(HPdfRect rect, HPdfDestination dst) { IntPtr hannot; hannot = HPDF_Page_CreateLinkAnnot(hpage, rect, dst.GetHandle()); return new HPdfAnnotation(hannot); } public HPdfAnnotation CreateURILinkAnnot(HPdfRect rect, string uri) { IntPtr hannot; hannot = HPDF_Page_CreateURILinkAnnot(hpage, rect, uri); return new HPdfAnnotation(hannot); } public float TextWidth(string text) { return HPDF_Page_TextWidth(hpage, text); } public uint MeasureText(string text, float width, bool wordwrap, ref float real_width) { int ww; if (wordwrap) ww = HPDF_TRUE; else ww = HPDF_FALSE; return HPDF_Page_MeasureText(hpage, text, width, ww, ref real_width); } public uint MeasureText(string text, float width, bool wordwrap) { float dummy = 0; int ww; if (wordwrap) ww = HPDF_TRUE; else ww = HPDF_FALSE; return HPDF_Page_MeasureText(hpage, text, width, ww, ref dummy); } public float GetWidth() { return HPDF_Page_GetWidth(hpage); } public float GetHeight() { return HPDF_Page_GetHeight(hpage); } public ushort GetGMode() { return HPDF_Page_GetGMode(hpage); } public HPdfPoint GetCurrentPos() { return HPDF_Page_GetCurrentPos(hpage); } public HPdfPoint GetCurrentTextPos() { return HPDF_Page_GetCurrentTextPos(hpage); } public HPdfFont GetCurrentFont() { return new HPdfFont(HPDF_Page_GetCurrentFont(hpage)); } public float GetCurrentFontSize() { return HPDF_Page_GetCurrentFontSize(hpage); } public HPdfTransMatrix GetTransMatrix() { return HPDF_Page_GetTransMatrix(hpage); } public float GetLineWidth() { return HPDF_Page_GetLineWidth(hpage); } public HPdfLineCap GetLineCap() { return HPDF_Page_GetLineCap(hpage); } public HPdfLineJoin GetLineJoin() { return HPDF_Page_GetLineJoin(hpage); } public float GetMiterLimit() { return HPDF_Page_GetMiterLimit(hpage); } public HPdfDashMode GetDash() { HPdfDashMode_Internal mode1 = HPDF_Page_GetDash(hpage); HPdfDashMode mode2; mode2.phase = mode1.phase; mode2.ptn = new ushort[mode1.num_ptn]; if (mode1.num_ptn >= 1) mode2.ptn[0] = mode1.ptn0; if (mode1.num_ptn >= 2) mode2.ptn[1] = mode1.ptn1; if (mode1.num_ptn >= 3) mode2.ptn[2] = mode1.ptn2; if (mode1.num_ptn >= 4) mode2.ptn[3] = mode1.ptn3; if (mode1.num_ptn >= 5) mode2.ptn[4] = mode1.ptn4; if (mode1.num_ptn >= 6) mode2.ptn[5] = mode1.ptn5; if (mode1.num_ptn >= 7) mode2.ptn[6] = mode1.ptn6; if (mode1.num_ptn >= 8) mode2.ptn[7] = mode1.ptn7; return mode2; } public float GetFlat() { return HPDF_Page_GetFlat(hpage); } public float GetCharSpace() { return HPDF_Page_GetCharSpace(hpage); } public float GetWordSpace() { return HPDF_Page_GetWordSpace(hpage); } public float GetHorizontalScalling() { return HPDF_Page_GetHorizontalScalling(hpage); } public float GetTextLeading() { return HPDF_Page_GetTextLeading(hpage); } public HPdfTextRenderingMode GetTextRenderingMode() { return HPDF_Page_GetTextRenderingMode(hpage); } public float GetTextRaise() { return HPDF_Page_GetTextRaise(hpage); } public HPdfRGBColor GetRGBFill() { return HPDF_Page_GetRGBFill(hpage); } public HPdfRGBColor GetRGBStroke() { return HPDF_Page_GetRGBStroke(hpage); } public HPdfCMYKColor GetCMYKFill() { return HPDF_Page_GetCMYKFill(hpage); } public HPdfCMYKColor GetCMYKStroke() { return HPDF_Page_GetCMYKStroke(hpage); } public float GetGrayFill() { return HPDF_Page_GetGrayFill(hpage); } public float GetGrayStroke() { return HPDF_Page_GetGrayStroke(hpage); } public HPdfColorSpace GetStrokingColorSpace() { return HPDF_Page_GetStrokingColorSpace(hpage); } public HPdfColorSpace GetFillingColorSpace() { return HPDF_Page_GetFillingColorSpace(hpage); } public HPdfTransMatrix GetTextMatrix() { return HPDF_Page_GetTextMatrix(hpage); } public uint GetGStateDepth() { return HPDF_Page_GetGStateDepth(hpage); } public void SetLineWidth(float line_width) { HPDF_Page_SetLineWidth(hpage, line_width); } public void SetLineCap(HPdfLineCap line_cap) { HPDF_Page_SetLineCap(hpage, line_cap); } public void SetLineJoin(HPdfLineJoin line_join) { HPDF_Page_SetLineJoin(hpage, line_join); } public void SetMiterLimit(float miter_limit) { HPDF_Page_SetMiterLimit(hpage, miter_limit); } public void SetDash(ushort[] dash_ptn, uint phase) { if (dash_ptn == null) { HPDF_Page_SetDash(hpage, dash_ptn, 0, 0); return; } int len = dash_ptn.Length; HPDF_Page_SetDash(hpage, dash_ptn, (uint)len, phase); } public void SetFlat(float flatness) { HPDF_Page_SetFlat(hpage, flatness); } public void SetExtGState(HPdfExtGState gstate) { HPDF_Page_SetExtGState(hpage, gstate.GetHandle()); } public void GSave() { HPDF_Page_GSave(hpage); } public void GRestore() { HPDF_Page_GRestore(hpage); } public void Concat(float a, float b, float c, float d, float x, float y) { HPDF_Page_Concat(hpage, a, b, c, d, x, y); } public void MoveTo(float x, float y) { HPDF_Page_MoveTo(hpage, x, y); } public void LineTo(float x, float y) { HPDF_Page_LineTo(hpage, x, y); } public void CurveTo(float x1, float y1, float x2, float y2, float x3, float y3) { HPDF_Page_CurveTo(hpage, x1, y1, x2, y2, x3, y3); } public void CurveTo2(float x2, float y2, float x3, float y3) { HPDF_Page_CurveTo2(hpage, x2, y2, x3, y3); } public void CurveTo3(float x1, float y1, float x3, float y3) { HPDF_Page_CurveTo2(hpage, x1, y1, x3, y3); } public void ClosePath() { HPDF_Page_ClosePath(hpage); } public void Rectangle(float x, float y, float width, float height) { HPDF_Page_Rectangle(hpage, x, y, width, height); } public void Stroke() { HPDF_Page_Stroke(hpage); } public void ClosePathStroke() { HPDF_Page_ClosePathStroke(hpage); } public void Fill() { HPDF_Page_Fill(hpage); } public void Eofill() { HPDF_Page_Eofill(hpage); } public void FillStroke() { HPDF_Page_FillStroke(hpage); } public void EofillStroke() { HPDF_Page_EofillStroke(hpage); } public void ClosePathFillStroke() { HPDF_Page_ClosePathFillStroke(hpage); } public void ClosePathEofillStroke() { HPDF_Page_ClosePathEofillStroke(hpage); } public void EndPath() { HPDF_Page_EndPath(hpage); } public void Clip() { HPDF_Page_Clip(hpage); } public void Eoclip() { HPDF_Page_Eoclip(hpage); } public void BeginText() { HPDF_Page_BeginText(hpage); } public void EndText() { HPDF_Page_EndText(hpage); } public void SetCharSpace(float value) { HPDF_Page_SetCharSpace(hpage, value); } public void SetWordSpace(float value) { HPDF_Page_SetWordSpace(hpage, value); } public void SetHorizontalScalling(float value) { HPDF_Page_SetHorizontalScalling(hpage, value); } public void SetTextLeading(float value) { HPDF_Page_SetTextLeading(hpage, value); } public void SetFontAndSize(HPdfFont font, float size) { HPDF_Page_SetFontAndSize(hpage, font.GetHandle(), size); } public void SetTextRenderingMode(HPdfTextRenderingMode mode) { HPDF_Page_SetTextRenderingMode(hpage, mode); } public void SetTextRaise(float value) { HPDF_Page_SetTextRaise(hpage, value); } public void MoveTextPos(float x, float y) { HPDF_Page_MoveTextPos(hpage, x, y); } public void MoveTextPos2(float x, float y) { HPDF_Page_MoveTextPos2(hpage, x, y); } public void SetTextMatrix(float a, float b, float c, float d, float x, float y) { HPDF_Page_SetTextMatrix(hpage, a, b, c, d, x, y); } public void MoveToNextLine() { HPDF_Page_MoveToNextLine(hpage); } public void ShowText(string text) { HPDF_Page_ShowText(hpage, text); } public void ShowTextNextLine(string text) { HPDF_Page_ShowTextNextLine(hpage, text); } public void ShowTextNextLineEx(float word_space, float char_space, string text) { HPDF_Page_ShowTextNextLineEx(hpage, word_space, char_space, text); } public void SetGrayFill(float gray) { HPDF_Page_SetGrayFill(hpage, gray); } public void SetGrayStroke(float gray) { HPDF_Page_SetGrayStroke(hpage, gray); } public void SetRGBFill(float r, float g, float b) { HPDF_Page_SetRGBFill(hpage, r, g, b); } public void SetRGBStroke(float r, float g, float b) { HPDF_Page_SetRGBStroke(hpage, r, g, b); } public void SetCMYKFill(float c, float m, float y, float k) { HPDF_Page_SetCMYKFill(hpage, c, m, y, k); } public void SetCMYKStroke(float c, float m, float y, float k) { HPDF_Page_SetCMYKStroke(hpage, c, m, y, k); } public void ExecuteXObject(HPdfImage xobj) { HPDF_Page_ExecuteXObject(hpage, xobj.GetHandle()); } public void DrawImage(HPdfImage image, float x, float y, float width, float height) { HPDF_Page_DrawImage(hpage, image.GetHandle(), x, y, width, height); } public void Circle(float x, float y, float ray) { HPDF_Page_Circle(hpage, x, y, ray); } public void Arc(float x, float y, float ray, float ang1, float ang2) { HPDF_Page_Arc(hpage, x, y, ray, ang1, ang2); } public void TextOut(float xpos, float ypos, string text) { HPDF_Page_TextOut(hpage, xpos, ypos, text); } public void TextRect(float left, float top, float right, float bottom, string text, HPdfTextAlignment align, ref uint len) { HPDF_Page_TextRect(hpage, left, top, right, bottom, text, align, ref len); } public void SetSlideShow(HPdfTransitionStyle type, float disp_time, float trans_time) { HPDF_Page_SetSlideShow(hpage, type, disp_time, trans_time); } public IntPtr GetHandle() { return hpage; } } public class HPdfFont { [DllImport("libhpdf.dll")] private extern static string HPDF_Font_GetFontName(IntPtr hfont); [DllImport("libhpdf.dll")] private extern static string HPDF_Font_GetEncodingName(IntPtr hfont); [DllImport("libhpdf.dll")] private extern static int HPDF_Font_GetUnicodeWidth(IntPtr hfont, ushort code); [DllImport("libhpdf.dll")] private extern static HPdfBox HPDF_Font_GetBBox(IntPtr hfont); [DllImport("libhpdf.dll")] private extern static int HPDF_Font_GetAscent(IntPtr hfont); [DllImport("libhpdf.dll")] private extern static int HPDF_Font_GetDescent(IntPtr hfont); [DllImport("libhpdf.dll")] private extern static uint HPDF_Font_GetXHeight(IntPtr hfont); [DllImport("libhpdf.dll")] private extern static uint HPDF_Font_GetCapHeight(IntPtr hfont); [DllImport("libhpdf.dll")] private extern static HPdfTextWidth HPDF_Font_TextWidth(IntPtr hfont, string text, uint len); [DllImport("libhpdf.dll")] private extern static uint HPDF_Font_MeasureText(IntPtr hfont, string text, uint len, float width, float font_size, float char_space, float word_space, int wordwrap, ref float real_width); IntPtr hfont; public HPdfFont(IntPtr hfont) { if (hfont == IntPtr.Zero) { throw new Exception("cannot create HPdfFont object."); } this.hfont = hfont; } public IntPtr GetHandle() { return hfont; } public string GetFontName() { return HPDF_Font_GetFontName(hfont); } public string GetEncodingName() { return HPDF_Font_GetEncodingName(hfont); } public int GetUnicodeWidth(ushort code) { return HPDF_Font_GetUnicodeWidth(hfont, code); } public HPdfBox GetBBox() { return HPDF_Font_GetBBox(hfont); } public int GetAscent() { return HPDF_Font_GetAscent(hfont); } public int GetDescent() { return HPDF_Font_GetDescent(hfont); } public uint GetXHeight() { return HPDF_Font_GetXHeight(hfont); } public uint GetCapHeight() { return HPDF_Font_GetCapHeight(hfont); } public HPdfTextWidth TextWidth(string text, uint len) { return HPDF_Font_TextWidth(hfont, text, len); } public uint MeasureText(string text, uint len, float width, float font_size, float char_space, float word_space, int wordwrap, ref float real_width) { return HPDF_Font_MeasureText(hfont, text, len, width, font_size, char_space, word_space, wordwrap, ref real_width); } } public class HPdfOutline { [DllImport("libhpdf.dll")] private extern static uint HPDF_Outline_SetOpened(IntPtr houtline, int opened); [DllImport("libhpdf.dll")] private extern static uint HPDF_Outline_SetDestination(IntPtr houtline, IntPtr hdest); IntPtr houtline; public HPdfOutline(IntPtr houtline) { if (houtline == IntPtr.Zero) { throw new Exception("cannot create HPdfOutline object."); } this.houtline = houtline; } public IntPtr GetHandle() { return houtline; } public void SetOpened(bool opened) { int iopened; if (opened) iopened = HPdfDoc.HPDF_TRUE; else iopened = HPdfDoc.HPDF_FALSE; HPDF_Outline_SetOpened(houtline, iopened); } public void SetDestination(HPdfDestination dest) { HPDF_Outline_SetDestination(houtline, dest.GetHandle()); } } public class HPdfEncoder { IntPtr hencoder; public HPdfEncoder(IntPtr hencoder) { if (hencoder == IntPtr.Zero) { throw new Exception("cannot create HPdfEncoder object."); } this.hencoder = hencoder; } [DllImport("libhpdf.dll")] private extern static HPdfEncoderType HPDF_Encoder_GetType(IntPtr hencoder); [DllImport("libhpdf.dll")] private extern static HPdfByteType HPDF_Encoder_GetByteType(IntPtr hencoder, string text, uint index); [DllImport("libhpdf.dll")] private extern static ushort HPDF_Encoder_GetUnicode(IntPtr hencoder, ushort code); [DllImport("libhpdf.dll")] private extern static HPdfWritingMode HPDF_Encoder_GetWritingMode(IntPtr hencoder); public IntPtr GetHandle() { return hencoder; } public HPdfEncoderType GetEncoderType() { return HPDF_Encoder_GetType(hencoder); } public HPdfByteType GetByteType(string text, uint index) { return HPDF_Encoder_GetByteType(hencoder, text, index); } public ushort GetUnicode(ushort code) { return HPDF_Encoder_GetUnicode(hencoder, code); } public HPdfWritingMode GetWritingMode() { return HPDF_Encoder_GetWritingMode(hencoder); } } public class HPdfDestination { [DllImport("libhpdf.dll")] private extern static uint HPDF_Destination_SetXYZ(IntPtr hdest, float left, float top, float zoom); [DllImport("libhpdf.dll")] private extern static uint HPDF_Destination_SetFit(IntPtr hdest); [DllImport("libhpdf.dll")] private extern static uint HPDF_Destination_SetFitH(IntPtr hdest, float top); [DllImport("libhpdf.dll")] private extern static uint HPDF_Destination_SetFitV(IntPtr hdest, float left); [DllImport("libhpdf.dll")] private extern static uint HPDF_Destination_SetFitR(IntPtr hdest, float left, float bottom, float right, float top); [DllImport("libhpdf.dll")] private extern static uint HPDF_Destination_SetFitB(IntPtr hdest); [DllImport("libhpdf.dll")] private extern static uint HPDF_Destination_SetFitBH(IntPtr hdest, float top); [DllImport("libhpdf.dll")] private extern static uint HPDF_Destination_SetFitBV(IntPtr hdest, float left); IntPtr hdest; public HPdfDestination(IntPtr hdest) { if (hdest == IntPtr.Zero) { throw new Exception("cannot create HPdfDestination object."); } this.hdest = hdest; } public void SetXYZ(float left, float top, float zoom) { HPDF_Destination_SetXYZ(hdest, left, top, zoom); } public void SetFit() { HPDF_Destination_SetFit(hdest); } public void SetFitH(float top) { HPDF_Destination_SetFitH(hdest, top); } public void SetFitV(float left) { HPDF_Destination_SetFitV(hdest, left); } public void SetFitR(float left, float bottom, float right, float top) { HPDF_Destination_SetFitR(hdest, left, bottom, right, top); } public void SetFitB() { HPDF_Destination_SetFitB(hdest); } public void SetFitBH(float top) { HPDF_Destination_SetFitBH(hdest, top); } public void SetFitBV(float left) { HPDF_Destination_SetFitBV(hdest, left); } public IntPtr GetHandle() { return hdest; } } public class HPdfAnnotation { IntPtr hannot; [DllImport("libhpdf.dll")] private extern static uint HPDF_LinkAnnot_SetHighlightMode(IntPtr hannot, HPdfAnnotHighlightMode mode); [DllImport("libhpdf.dll")] private extern static uint HPDF_LinkAnnot_SetBorderStyle(IntPtr hannot, float width, ushort dash_on, ushort dash_off); [DllImport("libhpdf.dll")] private extern static uint HPDF_TextAnnot_SetIcon(IntPtr hannot, HPdfAnnotIcon icon); [DllImport("libhpdf.dll")] private extern static uint HPDF_TextAnnot_SetOpened(IntPtr hannot, int opened); public HPdfAnnotation(IntPtr hannot) { if (hannot == IntPtr.Zero) { throw new Exception("cannot create HPdfAnnotation object."); } this.hannot = hannot; } public IntPtr GetHandle() { return hannot; } public void SetHighlightMode(HPdfAnnotHighlightMode mode) { HPDF_LinkAnnot_SetHighlightMode(hannot, mode); } public void SetBorderStyle(float width, ushort dash_on, ushort dash_off) { HPDF_LinkAnnot_SetBorderStyle(hannot, width, dash_on, dash_off); } public void SetIcon(HPdfAnnotIcon icon) { HPDF_TextAnnot_SetIcon(hannot, icon); } public void SetOpened(bool opened) { int flg; if (opened) flg = HPdfDoc.HPDF_TRUE; else flg = HPdfDoc.HPDF_FALSE; HPDF_TextAnnot_SetOpened(hannot, flg); } } public class HPdfXObject { protected IntPtr hobj; public HPdfXObject(IntPtr hobj) { if (hobj == IntPtr.Zero) { throw new Exception("cannot create HPdfImage object."); } this.hobj = hobj; } public IntPtr GetHandle() { return hobj; } } public class HPdfImage: HPdfXObject { [DllImport("libhpdf.dll")] private extern static HPdfPoint HPDF_Image_GetSize(IntPtr image); [DllImport("libhpdf.dll")] private extern static uint HPDF_Image_GetWidth(IntPtr image); [DllImport("libhpdf.dll")] private extern static uint HPDF_Image_GetHeight(IntPtr image); [DllImport("libhpdf.dll")] private extern static uint HPDF_Image_GetBitsPerComponent(IntPtr image); [DllImport("libhpdf.dll")] private extern static string HPDF_Image_GetColorSpace(IntPtr image); [DllImport("libhpdf.dll")] private extern static uint HPDF_Image_SetColorMask(IntPtr image, uint rmin, uint rmax, uint gmin, uint gmax, uint bmin, uint bmax); [DllImport("libhpdf.dll")] private extern static string HPDF_Image_SetMaskImage(IntPtr image, IntPtr mask_image); public HPdfImage(IntPtr hobj): base (hobj) { } public HPdfPoint GetSize() { return HPDF_Image_GetSize(hobj); } public uint GetWidth() { return HPDF_Image_GetWidth(hobj); } public uint GetHeight() { return HPDF_Image_GetHeight(hobj); } public uint GetBitsPerComponent() { return HPDF_Image_GetBitsPerComponent(hobj); } public string GetColorSpace() { return HPDF_Image_GetColorSpace(hobj); } public void SetColorMask(uint rmin, uint rmax, uint gmin, uint gmax, uint bmin, uint bmax) { HPDF_Image_SetColorMask(hobj, rmin, rmax, gmin, gmax, bmin, bmax); } public void SetMaskImage(HPdfImage mask_image) { HPDF_Image_SetMaskImage(hobj, mask_image.GetHandle()); } } public class HPdfExtGState { protected IntPtr hgstate; [DllImport("libhpdf.dll")] private extern static uint HPDF_ExtGState_SetAlphaStroke(IntPtr gstate, float value); [DllImport("libhpdf.dll")] private extern static uint HPDF_ExtGState_SetAlphaFill(IntPtr gstate, float value); [DllImport("libhpdf.dll")] private extern static uint HPDF_ExtGState_SetBlendMode(IntPtr gstate, HPdfBlendMode mode); public HPdfExtGState(IntPtr hgstate) { if (hgstate == IntPtr.Zero) { throw new Exception("cannot create HPdfImage object."); } this.hgstate = hgstate; } public IntPtr GetHandle() { return hgstate; } public void SetAlphaStroke(float value) { HPDF_ExtGState_SetAlphaStroke(hgstate, value); } public void SetAlphaFill(float value) { HPDF_ExtGState_SetAlphaFill(hgstate, value); } public void SetBlendMode(HPdfBlendMode mode) { HPDF_ExtGState_SetBlendMode(hgstate, mode); } } }