C# .net PDF文件預覽


 

首先引用 O2S.Components.PDFRender4NET

( 雲盤准備好了:鏈接:https://pan.baidu.com/s/16l5ktVGdJeqdW1_ceydm4g   提取碼:xqmh)

然后在代碼中引入

using O2S.Components.PDFRender4NET;

 

 

核心代碼

//圖片的清晰度,數字越大越清晰
public enum Definition
{
    One = 1, Two = 2, Three = 3, Four = 4, Five = 5, Six = 6, Seven = 7, Eight = 8, Nine = 9, Ten = 10
}

//判斷文件是否存在
private bool FileIsExists(string path)
{
    if (System.IO.File.Exists(path))
        return true;
    else
        return false;
}


/// <summary>
/// 將PDF文檔轉換為圖片的方法
/// </summary>
/// <param name="pdfInputPath">PDF文件路徑</param>
/// <param name="imageOutputPath">圖片輸出路徑</param>
/// <param name="imageName">生成圖片的名字</param>
///// <param name="startPageNum">從PDF文檔的第幾頁開始轉換</param>
///// <param name="endPageNum">從PDF文檔的第幾頁開始停止轉換</param>       
///// <param name="definition">設置圖片的清晰度,數字越大越清晰</param>
///// <param name="imageFormat">設置所需圖片格式</param>       
private  string  ConvertPDF2Image(string pdfInputPath, string imageOutputPath,string imageName)
{
   //為了測試方便,把幾個參數固定住
    //格式 
    ImageFormat imageFormat = ImageFormat.Jpeg;
    //清晰度
    Definition definition = Definition.Ten;
    //起止頁碼
    int startPageNum= 1;
    int endPageNum = 1;
    //生成圖片名稱
    //string imageName = "test";

    PDFFile pdfFile = PDFFile.Open(pdfInputPath);
    if (!Directory.Exists(imageOutputPath))
    {
        Directory.CreateDirectory(imageOutputPath);
    }
    if (startPageNum <= 0)
    {
        startPageNum = 1;
    }
    if (endPageNum > pdfFile.PageCount)
    {
        endPageNum = pdfFile.PageCount;
    }
    if (startPageNum > endPageNum)
    {
        int tempPageNum = startPageNum;
        startPageNum = endPageNum;
        endPageNum = startPageNum;
    }
    // start to convert each page
  //多頁循序產生圖片
    string imageOutputRet = "";
    for (int i = startPageNum; i <= endPageNum; i++)
    {
        Bitmap pageImage = pdfFile.GetPageImage(i - 1, 56 * (int)definition);
        imageOutputRet = imageOutputPath + imageName  + i.ToString()+ "." + imageFormat.ToString();
        ////防止圖片文件重復【暫不用】
        //int sign = 1;
        //while(this.FileIsExists(imageOutputRet))//存在
        //{
        //    imageOutputRet = imageOutputPath + imageName + i.ToString() +"_"+sign.ToString() + "." + imageFormat.ToString();
        //    sign++;
        //}               
        pageImage.Save(imageOutputRet, imageFormat);
        pageImage.Dispose();
    }
    pdfFile.Dispose();
    return imageOutputRet;
}

        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM