csharp: Cyotek.GhostScript.Pdf Conversion pdf convert image x64

NativeMethods.cs  x64

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.Runtime.InteropServices;
 
namespace Cyotek.GhostScript
{
     /// <summary>
    /// 64位
    ///  https://github.com/kelter-antunes/Cyotek.GhostScript.x64 64位
    /// </summary>
  internal class NativeMethods
  {
  #region  Public Class Methods  
 
    // void gsapi_delete_instance (void *instance);
    [DllImport("gsdll64.dll", EntryPoint = "gsapi_delete_instance")]
    public static extern void gsapi_delete_instance(IntPtr instance);
 
    // int gsapi_exit (void *instance);
    [DllImport("gsdll64.dll", EntryPoint = "gsapi_exit")]
    public static extern int gsapi_exit(IntPtr instance);
 
    // int gsapi_set_poll (void *instance, int(*poll_fn)(void *caller_handle));
    // int gsapi_set_display_callback (void *instance, display_callback *callback);
    // int gsapi_init_with_args (void *instance, int argc, char **argv);
    [DllImport("gsdll64.dll", EntryPoint = "gsapi_init_with_args")]
    public static extern int gsapi_init_with_args(IntPtr instance, int argc, IntPtr argv);
 
    //int gsapi_new_instance (void **pinstance, void *caller_handle);
    [DllImport("gsdll64.dll", EntryPoint = "gsapi_new_instance")]
    public static extern int gsapi_new_instance(out IntPtr pinstance, IntPtr caller_handle);
 
    // int gsapi_revision (gsapi_revision_t *pr, int len);
    [DllImport("gsdll64.dll", EntryPoint = "gsapi_revision")]
    public static extern int gsapi_revision(out NativeStructs.GS_Revision pr, int len);
 
    // int gsapi_run_string_begin (void *instance, int user_errors, int *pexit_code);
    // int gsapi_run_string_continue (void *instance, const char *str, unsigned int length, int user_errors, int *pexit_code);
    // int gsapi_run_string_end (void *instance, int user_errors, int *pexit_code);
    // int gsapi_run_string_with_length (void *instance, const char *str, unsigned int length, int user_errors, int *pexit_code);
    // int gsapi_run_string (void *instance, const char *str, int user_errors, int *pexit_code);
    // int gsapi_run_file (void *instance, const char *file_name, int user_errors, int *pexit_code);
    [DllImport("gsdll64.dll", EntryPoint = "gsapi_run_file")]
    public static extern int gsapi_run_file(IntPtr instance, string file_name, int user_errors, int pexit_code);
 
    //int gsapi_set_stdio (void *instance, int(*stdin_fn)(void *caller_handle, char *buf, int len), int(*stdout_fn)(void *caller_handle, const char *str, int len), int(*stderr_fn)(void *caller_handle, const char *str, int len));
    [DllImport("gsdll64.dll", EntryPoint = "gsapi_set_stdio")]
    public static extern int gsapi_set_stdio(IntPtr instance, StdioCallBack stdin_fn, StdioCallBack stdout_fn, StdioCallBack stderr_fn);
 
  #endregion  Public Class Methods  
 
    // int gsapi_set_visual_tracer (gstruct vd_trace_interface_s *I);
  }
}

  

 

NativeMethods.cs  x32

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
using System;
using System.Runtime.InteropServices;
 
namespace Cyotek.GhostScript
{
 
 
    /// <summary>
    /// 32位
    ///  https://github.com/kelter-antunes/Cyotek.GhostScript.x64 64位
    /// </summary>
  internal class NativeMethods
  {
      #region  Public Class Methods  
 
    // void gsapi_delete_instance (void *instance);
    [DllImport("gsdll32.dll", EntryPoint = "gsapi_delete_instance")]
    public static extern void gsapi_delete_instance(IntPtr instance);
 
    // int gsapi_exit (void *instance);
    [DllImport("gsdll32.dll", EntryPoint = "gsapi_exit")]
    public static extern int gsapi_exit(IntPtr instance);
 
    // int gsapi_set_poll (void *instance, int(*poll_fn)(void *caller_handle));
    // int gsapi_set_display_callback (void *instance, display_callback *callback);
    // int gsapi_init_with_args (void *instance, int argc, char **argv);
    [DllImport("gsdll32.dll", EntryPoint = "gsapi_init_with_args")]
    public static extern int gsapi_init_with_args(IntPtr instance, int argc, IntPtr argv);
 
    //int gsapi_new_instance (void **pinstance, void *caller_handle);
    [DllImport("gsdll32.dll", EntryPoint = "gsapi_new_instance")]
    public static extern int gsapi_new_instance(out IntPtr pinstance, IntPtr caller_handle);
 
    // int gsapi_revision (gsapi_revision_t *pr, int len);
    [DllImport("gsdll32.dll", EntryPoint = "gsapi_revision")]
    public static extern int gsapi_revision(out NativeStructs.GS_Revision pr, int len);
 
    // int gsapi_run_string_begin (void *instance, int user_errors, int *pexit_code);
    // int gsapi_run_string_continue (void *instance, const char *str, unsigned int length, int user_errors, int *pexit_code);
    // int gsapi_run_string_end (void *instance, int user_errors, int *pexit_code);
    // int gsapi_run_string_with_length (void *instance, const char *str, unsigned int length, int user_errors, int *pexit_code);
    // int gsapi_run_string (void *instance, const char *str, int user_errors, int *pexit_code);
    // int gsapi_run_file (void *instance, const char *file_name, int user_errors, int *pexit_code);
    [DllImport("gsdll32.dll", EntryPoint = "gsapi_run_file")]
    public static extern int gsapi_run_file(IntPtr instance, string file_name, int user_errors, int pexit_code);
 
    //int gsapi_set_stdio (void *instance, int(*stdin_fn)(void *caller_handle, char *buf, int len), int(*stdout_fn)(void *caller_handle, const char *str, int len), int(*stderr_fn)(void *caller_handle, const char *str, int len));
    [DllImport("gsdll32.dll", EntryPoint = "gsapi_set_stdio")]
    public static extern int gsapi_set_stdio(IntPtr instance, StdioCallBack stdin_fn, StdioCallBack stdout_fn, StdioCallBack stderr_fn);
 
  #endregion  Public Class Methods  
 
    // int gsapi_set_visual_tracer (gstruct vd_trace_interface_s *I);
  }
}

  

pdf View 在线预览 Web or Win

https://www.cyotek.com/blog/convert-a-pdf-into-a-series-of-images-using-csharp-and-ghostscript

https://www.cyotek.com/source-code

https://www.codeproject.com/Articles/317700/Convert-a-PDF-into-a-series-of-images-using-Csharp

https://www.cyotek.com/blog/extending-the-imagebox-component-to-display-the-contents-of-a-pdf-file-using-csharp#files

https://github.com/ArtifexSoftware/ghostpdl-downloads/releases
https://www.ghostscript.com/releases/gsdnld.html

webform:

winform:

 

 

posted @   ®Geovin Du Dream Park™  阅读(96)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2021-03-02 three.Js: Screen size change
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示