zoukankan      html  css  js  c++  java
  • csharp: Cyotek.GhostScript.PdfConversion pdf convert image

    from:https://www.ghostscript.com/download/gsdnld.html

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

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

    https://github.com/mephraim/ghostscriptsharp   gsdll32.dll,有32位和64位的。把它放在相应的BIN文件夹下。

     https://archive.codeplex.com/?p=ghostscriptnet

    https://archive.codeplex.com/?p=ghostscriptstudio

    把gsdll32.dll 放在BIN下

    Safari for Windows 5.1.7 http://appldnld.apple.com/Safari5/041-5487.20120509.INU8B/SafariSetup.exe

        <form id="form1" runat="server">
        <div>
            <p>
                <asp:LinkButton runat="server" ID="previousLinkButton" Text="Previous" OnClick="previousLinkButton_Click" />
                <asp:LinkButton runat="server" ID="nextLinkButton" Text="Next" OnClick="nextLinkButton_Click" />
            </p>
            <p>
                <asp:Image runat="server" ID="pdfImage" ImageUrl="~/PdfImage.ashx?fileName=sample.pdf&page=1" />
            </p>
        </div>
        </form>
    

      

       /// <summary>
        /// 
        /// </summary>
      public partial class _Default : System.Web.UI.Page
      {
    
    
          /// <summary>
          /// 
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
        protected void previousLinkButton_Click(object sender, EventArgs e)
        {
          this.IncrementPage(-1);
        }
          /// <summary>
          /// 
          /// </summary>
          /// <param name="sender"></param>
          /// <param name="e"></param>
        protected void nextLinkButton_Click(object sender, EventArgs e)
        {
          this.IncrementPage(1);
        }
        /// <summary>
        /// /
        /// </summary>
        /// <param name="increment"></param>
        private void IncrementPage(int increment)
        {
          NameValueCollection queryString;
          int pageNumber;
          string pdfFileName;
          Pdf2Image converter;
    
          queryString = HttpUtility.ParseQueryString(pdfImage.ImageUrl.Substring(pdfImage.ImageUrl.IndexOf("?")));
          pdfFileName = queryString["fileName"];
          pageNumber = Convert.ToInt32(queryString["page"]) + increment;
          converter = new Pdf2Image(this.Server.MapPath("~/" + pdfFileName));
    
          if (pageNumber > 0 && pageNumber <= converter.PageCount)
            pdfImage.ImageUrl = string.Format("~/PdfImage.ashx?fileName={0}&page={1}", pdfFileName, pageNumber);
        }
    

      

    using System;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Web;
    using Cyotek.GhostScript.PdfConversion;
    
    namespace GhostScriptWebTest
    {
      public class PdfImage : IHttpHandler
      {
        public void ProcessRequest(HttpContext context)
        {
          string fileName;
          int pageNumber;
          Pdf2Image convertor;
          Bitmap image;
    
          fileName = context.Server.MapPath("~/" + context.Request.QueryString["fileName"]);
          pageNumber = Convert.ToInt32(context.Request.QueryString["page"]);
    
          // convert the image
          convertor = new Pdf2Image(fileName);
          image = convertor.GetImage(pageNumber);
    
          // set the content type
          context.Response.ContentType = "image/jpeg";// "image/png";
    
          // save the image directly to the response stream
          image.Save(context.Response.OutputStream, ImageFormat.Jpeg);  //
        }
    
        public bool IsReusable
        { get { return true; } }
      }
    }
    

      

     

        IE6      

    IE 8.0 

    Chrome  

    Firefox

    png

    image/x-png

    image/x-png

    image/png           

    image/png

    jpg

    image/pjpeg

    image/jpeg           

    image/jpeg            

    image/jpeg

    jpeg

    image/pjpeg

    image/pjpeg     

    image/jpeg 

    image/jpeg

    bmp

    image/bmp 

     image/bmp            

    image/bmp           

    image/bmp

  • 相关阅读:
    查找整数
    Ling To Xml 学习之 对xml增、删、改、查
    JS获得鼠标
    xml之数据岛绑定到表格
    C# 三种序列化[转]
    编程字体
    Oracle 、C#
    提示信息Javascript
    几个好用的日历控件
    收藏网站
  • 原文地址:https://www.cnblogs.com/geovindu/p/13188263.html
Copyright © 2011-2022 走看看