日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

c# asp.net Pdf 转换图片 在线预览 发布到iis中问题 最终解决篇—_—!

發布時間:2025/7/14 C# 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c# asp.net Pdf 转换图片 在线预览 发布到iis中问题 最终解决篇—_—! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于:excel和word 預覽 請看我的博文:

excel和word 在線預覽 ?詳細配置及代碼

?

使用Adobe 組件 在本機vs中調試成功

發布到iis中? 在??代碼中涉及到? 剪貼板的地方? 會不成功? 莫名其妙的沒有數據?? 也不報錯????? 設置iis權限 、com組件權限+各種搞??? 均無果.....??? -_-!? 很是郁悶????

?

最終放棄

改用 Ghostscript??

須安裝? gs861w32.exe? (高版本 貌似 還有問題......)

在安裝目錄 bin 下 找到gsdll32.dll

下在 dll

itextsharp.dll

PDFView.dll

把三個dll放入 項目dll(新建)文件夾中???

引入

itextsharp.dll

PDFView.dll

gsdll32.dll無法引入?? 拷貝到項目bin 目錄下

上代碼:

View Code 1 /// <summary>2 /// 將PDF 相應的頁轉換為圖片3 /// </summary>4 /// <param name="strPDFpath">PDF 路徑</param>5 /// <param name="Page">需要轉換的頁頁碼</param>6 private string GetImage(string strPDFpath, string imgDire, ImageFormat imgeF)7 {8 StringBuilder b = new StringBuilder();9 10 PdfReader reader = new PdfReader(strPDFpath); 11 // 獲得文檔頁數 12 int pageCount = reader.NumberOfPages; 13 14 System.IO.MemoryStream Ms = new MemoryStream(); 15 try 16 { 17 b = b.AppendLine("<ul style='azimuth:center; list-style-type:none;' >"); 18 for (int page = 1; page <= pageCount; page++) 19 { 20 System.Drawing.Image img = PDFView.ConvertPDF.PDFConvert.GetPageFromPDF(strPDFpath, page, 100, "", true); 21 img.Save(Ms, imgeF); 22 23 Bitmap returnImage = (Bitmap)Bitmap.FromStream(Ms); 24 25 string strImgPath = Request.MapPath("..\\" + imgDire + "\\" + page.ToString("0000") + ".jpg"); 26 27 returnImage.Save(strImgPath); 28 29 Ms.Position = 0; 30 31 32 b = b.AppendLine("<li> <img src='..\\" + imgDire + "\\" + page.ToString("0000") + ".jpg' /> </li><span>第" + (page) + "頁</span>"); 33 } 34 35 Ms.Close(); 36 b = b.AppendLine("</ul>"); 37 38 } 39 catch (Exception ex) 40 { 41 // b.Clear(); 42 // b.AppendLine(ex.ToString()); 43 throw; 44 } 45 46 47 return b.ToString(); 48 49 50 }

vs 運行? 成功

發布到服務器iis 中?? 設置 iis 對應應用程序池?? 啟用32為應用程序? 為true

-_-! 報錯

System.InvalidOperationException: 當應用程序不是以 UserInteractive 模式運行時顯示模式對話框或窗體是無效操作。請指定 ServiceNotification 或 DefaultDesktopOnly 樣式,以顯示服務應用程序發出的通知。

?

?

?

換一種調用方法??? :在web中調用外部的控制臺程序?

將上面方法 放入控制臺程序中

mian函數如下:

View Code 1 [STAThread]2 static void Main(string[] args)3 {4 #region MyRegion5 /*6 if (args != null && args.Length > 0)7 {8 string PdfPath = args[0].ToString();9 string ImgPath = args[1].ToString(); 10 string imgDire = args[2].ToString(); 11 string b = PDFToPic(PdfPath,ImgPath ,imgDire, ImageFormat.Jpeg); 12 13 if (string.IsNullOrEmpty(b)) 14 { 15 b = "出錯"; 16 } 17 18 Console.WriteLine(b); 19 Console.ReadKey(); 20 21 } 22 else 23 { 24 Console.WriteLine("無參數"); 25 Console.ReadKey(); 26 } 27 */ 28 29 #endregion 30 31 32 #region gs 33 34 if (args != null && args.Length > 0) 35 { 36 string PdfPath = args[0].ToString(); 37 string HtmlDic = args[1].ToString(); 38 string ImgPath = args[2].ToString(); 39 40 string b = GetImage(PdfPath, HtmlDic, ImgPath, ImageFormat.Jpeg); 41 42 if (string.IsNullOrEmpty(b)) 43 { 44 b = "出錯"; 45 } 46 Console.WriteLine(b); 47 } 48 else 49 { 50 Console.WriteLine("無參數"); 51 } 52 #endregion 53 // GetImage(@"C:\Users\Administrator.DVT\Desktop\fu.pdf", @"C:\Users\Administrator.DVT\Desktop\imgs", @"C:\Users\Administrator.DVT\Desktop\imgs",ImageFormat.Jpeg); 54 55 }

生成?? 拿到Debug 下? 控制臺.exe? 和三個組件(

itextsharp.dll

PDFView.dll

gsdll32.dll

放入web項目中? (必須放在 同一文件夾下)

?

?

在web中調用方法的地方??? 改寫成?? 調用控制臺程序
代碼如下:

View Code 1 try2 {3 Process pro = new Process();4 pro.StartInfo.RedirectStandardOutput = true;5 pro.StartInfo.RedirectStandardInput = false;6 //不顯示窗口7 pro.StartInfo.CreateNoWindow = true;8 pro.StartInfo.UseShellExecute = false;9 //要調用的控制臺程序 10 pro.StartInfo.FileName = Request.MapPath("../FileUpload/ConsoleApplication1.exe"); 11 //給控制臺程序的參數傳遞值 12 pro.StartInfo.Arguments = filePath+" "+HtmlDic+" "+imgDire; 13 pro.Start(); 14 15 16 string b= pro.StandardOutput.ReadToEnd(); 17 18 pro.WaitForExit(); 19 pro.Close(); 20 pro.Dispose(); 21 result = b; 22 } 23 catch (Exception) 24 { 25 26 throw; 27 }

vs中測試 通過

發布到iis中 ?的配置:

iis 中 應用程序池 ?設置中 ?啟用 32位應用程序

?

?

ok,終于解決了?? (-_-! 調了兩周)

?最近改功能上線 ? 又發現些問題...并解決

1,EXCLE文件生成html 預覽

xlsx文件 生成html后 ?打開html 會有 ?警告 或提示?

導致進程卡死(因為再程序中打開 ,無法響應)

2,docx文件生成html 預覽 ? 問題同上 、

解決方法:只需設置 兩個屬性 即可

?? repExcel.DisplayAlerts = false;

word.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone; ??

?

?另外 要做進程回收

excel事例:

System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);workbook = null;GC.Collect();System.Runtime.InteropServices.Marshal.ReleaseComObject(repExcel.Application.Workbooks);GC.Collect();System.Runtime.InteropServices.Marshal.ReleaseComObject(repExcel);repExcel = null;GC.Collect();//根據時間殺進程System.Diagnostics.Process[] process = System.Diagnostics.Process.GetProcessesByName("EXCEL");//依據時間殺滅進程foreach (System.Diagnostics.Process p in process){if (DateTime.Now.Second - p.StartTime.Second > 0 && DateTime.Now.Second - p.StartTime.Second < 5){p.Kill();}}Thread.Sleep(3000);//保證完全關閉

?

/// <summary>/// 殺掉進程/// </summary>/// <param name="hwnd"></param>/// <param name="id"></param>/// <returns></returns>[DllImport("user32.dll")]private static extern int GetWindowThreadProcessId(IntPtr hwnd, out int id);public void killexcel(Excel.Application xlapp){try{IntPtr app = new IntPtr(xlapp.Hwnd);int processid;GetWindowThreadProcessId(app, out processid);System.Diagnostics.Process.GetProcessById(processid).Kill();}catch{ }}

?

pdf ?同樣要 回收資源 ? 殺掉進程

....................................擦 ? ,貌似解決了。。。

?

轉載于:https://www.cnblogs.com/DamonTang/archive/2012/12/04/2801333.html

總結

以上是生活随笔為你收集整理的c# asp.net Pdf 转换图片 在线预览 发布到iis中问题 最终解决篇—_—!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲日本中文字幕在线 | 精品小视频 | 国产又黄又猛视频 | 香蕉久热 | 爽爽影院免费观看 | 一级视频在线 | 91成人免费在线 | 永久黄网站色视频免费观看w | 久久精品导航 | 精品视频在线一区二区 | 亚洲片国产一区一级在线观看 | 天天色影网 | 制服一区二区 | 亚洲黄站| 亚洲一区二区日韩 | 五月婷激情 | 久久综合免费视频 | 欧美a级在线免费观看 | 91免费影片 | 国产网红女主播精品视频 | 欧美日韩h | 亚洲国产精品成人va在线观看 | 青青在线视频观看 | 2021国产精品视频 | 成年人免费小视频 | 国产精品av久久久久久无 | 欧美大片xxx | 无码少妇一级AV片在线观看 | 色www情 | 91av网址| 久久成人资源 | 五月激情av | 少妇免费视频 | 成人爱爱 | 超碰婷婷| 销魂美女一区二区 | 少妇人妻无码专区视频 | 精品一区二区三区免费毛片爱 | 懂色av一区二区 | 亚洲成人观看 | 久久久久亚洲AV成人无码国产 | 76少妇精品导航 | 深夜福利日韩 | 久久久久久久无码 | 欧美1区2区 | 黄色大片久久 | 2025中文字幕| 黄色香蕉网 | 日本不卡一区二区三区 | 在线看黄免费 | 欧洲av片| 人妻av一区二区三区 | 91黄色入口 | 精品欧美黑人一区二区三区 | 拍真实国产伦偷精品 | 色妹av| 亚洲高清在线视频 | 久热网| 欧美日韩在线高清 | 免费观看黄色的网站 | 亚洲精品免费在线观看 | 黄色大视频 | 一区二区三区免费毛片 | 国产一区二区三区在线观看视频 | 九九国产精品视频 | 欧美精品h| 91免费高清视频 | 嫩草导航 | 高清视频在线免费观看 | 国产精品免费一区二区三区 | 亚洲综合精品一区 | www.欧美一区二区三区 | 四虎看黄 | 91射区 | 亚洲天堂日本 | 青青操免费在线视频 | 国产激情自拍 | 色屁屁www影院免费观看入口 | 中文字幕在线成人 | 狠狠插av| 成人一级片视频 | 秋霞在线视频 | 性福利视频| 国产精品三级在线观看无码 | 欧美一区二区三区成人片在线 | 国模精品一区二区三区 | 最新在线视频 | 国产福利午夜 | 人成在线 | 国产一区二区女内射 | 欧美黑人性xxx| 亚洲一区二区精品在线观看 | 中文字幕一区二区三区四区五区 | 亚洲精品69 | 激情综合婷婷 | 尤物在线| 久久久18禁一区二区三区精品 | 中文字幕人成人乱码亚洲电影 | 香港三级网站 |