ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-03-02 15:32:46  阅读:283  来源: 互联网

标签:IntPtr Conversion GhostScript run int void csharp instance gsapi


NativeMethods.cs  x64

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

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:

 

 

标签:IntPtr,Conversion,GhostScript,run,int,void,csharp,instance,gsapi
来源: https://www.cnblogs.com/geovindu/p/15955333.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有