csharp: Cyotek.GhostScript.Pdf Conversion 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

posted @ 2020-06-24 16:34  ®Geovin Du Dream Park™  阅读(58)  评论(0编辑  收藏