亚洲熟妇无码久久精品,最近中文字幕在线看免费完整版,亚洲AV中文无码字幕色三,一级a性色生活片久久毛片,一本大道香蕉综合视频在线观看

淺談pdf轉(zhuǎn)換為圖片

發(fā)布于: 2018-11-29    瀏覽: 2550    作者:Wu

本人是長沙軟件開發(fā)公司簡界程序員小伍,因為工作需要,要把PDF的64字符串轉(zhuǎn)換為圖片的base64保存到數(shù)據(jù)庫,但是看了看國內(nèi)外,一方面是做這個的比較少,還有就是做這個真的很煩.

  PDF轉(zhuǎn)圖片呢,大概的實現(xiàn)思路方式一般有兩種,一種就是重繪,類似于畫畫,把看到的畫到新的畫布上;第二種呢,就會識別里面的內(nèi)容復制到新的畫布上,我也不知道我比喻準不準,無所謂了,因為今天不做這個.

  在國內(nèi),做這個的發(fā)現(xiàn)很少,pdf在中國真的很不流行,沒辦法,為了完成任務(wù),干唄.

  百度PDF轉(zhuǎn)圖片,出來一大堆,但是可以用的真的很少,尤其是教程,很少很少,而且大部分都是通過第三方來實現(xiàn)的,所以就有了Spire.PDF、O2S.Components等盜版的DLL(因為本有有著“提高全民意識,保護知識產(chǎn)權(quán)”的21世紀三號青年的覺悟,所有不推薦大家這么做)

下面先貼個代碼

  尊重國產(chǎn)品牌,先來演示個國產(chǎn)軟件Spire.Pdf的轉(zhuǎn)換

先引用 Spire.Pdf   Spire.Pdf下載地址 : https://www.e-iceblue.com/Download/download-pdf-for-net-now.html

string base64 ="";//這里是pdfBase64字符串
byte[] pdfByte = Convert.FromBase64String(base64);
PdfDocument pdf = new PdfDocument(pdfByte);
Image img = pdf.SaveAsImage(0, 400, 400);
Bitmap bmp = new Bitmap(img);
MemoryStream strem = new MemoryStream();
bmp.Save(strem, ImageFormat.Png);
byte[] data = new byte[strem.Length];
strem.Seek(0, SeekOrigin.Begin);
strem.Read(data, 0, Convert.ToInt32(strem.Length));
var pngBase64 = Convert.ToBase64String(data);

  在這里我是將PDF轉(zhuǎn)換為png,轉(zhuǎn)換其他格式也是可以的,注意的是pdf.SaveAsImage(0, 400, 400)函數(shù)中,第一個參數(shù)是要轉(zhuǎn)換的頁數(shù),第二個和第三個是清晰度哇,數(shù)字越大,轉(zhuǎn)換效果越好,最大400,其他了,看起來應該不難,應該都能看懂,要是直接pdf文件轉(zhuǎn)圖片文件,那就更簡單了,直接保存就好,不需要讀取base64了

  請大家支持國產(chǎn),支持原創(chuàng) 官網(wǎng)地址(https://www.e-iceblue.com/)

 

下面這個是O2S.Components PDF轉(zhuǎn)圖片,外國的,效果沒有Spire.Pdf好

O2S.Components.PDFRender4NET 程序集文件下載地址(盜版的,沒有水印)下載地址:https://pan.baidu.com/s/1wMcmFzBic2e_0VjY66zdFg

貼個代碼自己看吧

 

需要引用O2S.Components.PDFRender4NET;

string base64 ="";//這里是pdfBase64字符串
byte[] pdfByte = Convert.FromBase64String(base64);
MemoryStream stream = new MemoryStream(pdfByte);
PDFFile pdfFile = PDFFile.Open(stream);
Bitmap pageImage = pdfFile.GetPageImage(0, 2000);
MemoryStream strem = new MemoryStream();
pageImage.Save(strem, ImageFormat.Png);
byte[] data = new byte[strem.Length];
strem.Seek(0, SeekOrigin.Begin);
strem.Read(data, 0, Convert.ToInt32(strem.Length));
string result = Convert.ToBase64String(data);

通過第三方的轉(zhuǎn)大概就是個這,用其他的也差不多,但是都是收費的,經(jīng)過若干天的折磨,終于有了個新的方案.

注意,在項目運行的時候需要把gsdll32.dll放在\ConvertToImage\bin\Debug下面哦



 ——本文并非原創(chuàng),如有侵權(quán)請聯(lián)系管理員刪除。

在線客服

售前咨詢

售后服務(wù)

投訴/建議

服務(wù)熱線
0731-83091505
18874148081
亚洲熟妇无码久久精品,最近中文字幕在线看免费完整版,亚洲AV中文无码字幕色三,一级a性色生活片久久毛片,一本大道香蕉综合视频在线观看