1. 程式人生 > >[那些年踩過的坑]pdf轉換為圖片的教程(pdf的Base64轉換為圖片的base64和自己不通過第三方來實現pdf轉圖片的Dome)

[那些年踩過的坑]pdf轉換為圖片的教程(pdf的Base64轉換為圖片的base64和自己不通過第三方來實現pdf轉圖片的Dome)

  因為工作需要,要把PDF的64字串轉換為圖片的base64儲存到資料庫,但是看了看國內外,一方面是做這個的比較少,還有就是做這個真的很煩.

  PDF轉圖片呢,大概的實現思路方式一般有兩種,一種就是重繪,類似於畫畫,把看到的畫到新的畫布上;第二種呢,就會識別裡面的內容複製到新的畫布上,我也不知道我比喻準不準,無所謂了,因為今天不做這個.

  在國內,做這個的發現很少,pdf在中國真的很不流行,沒辦法,為了完成任務,幹唄.

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

下面先貼個程式碼

  尊重國產品牌,先來演示個國產軟體Spire.Pdf的轉換

先引用 Spire.Pdf;

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轉換為png,轉換其他格式也是可以的,注意的是pdf.SaveAsImage(0, 400, 400)函式中,第一個引數是要轉換的頁數,第二個和第三個是清晰度哇,數字越大,轉換效果越好,最大400,其他了,看起來應該不難,應該都能看懂,要是直接pdf檔案轉圖片檔案,那就更簡單了,直接儲存就好,不需要讀取base64了

  請大家支援國產,支援原創 官網地址(https://www.e-iceblue.com/)

 

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

貼個程式碼自己看吧

 

需要引用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);

通過第三方的轉大概就是個這,用其他的也差不多,但是都是收費的,經過若干天的折磨,終於有了個新的方案,自己來實現

 

由於程式碼量眾多,自己下載觀看去吧,都有註釋,哈哈哈哈

 

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

提供試用,客服MM聲音很甜啊

O2S.Components.PDFRender4NET 程式集檔案下載地址(盜版的,沒有水印)

下載地址:

https://pan.baidu.com/s/1wMcmFzBic2e_0VjY66zdFg

 

不通過第三方來實現PDF轉圖片的程式碼下載地址,很有意思奧

注意,在專案執行的時候需要把gsdll32.dll放在\ConvertToImage\bin\Debug下面哦

https://pan.baidu.com/s/1WxsQ_tCnVHHp0-JmTaivtA