翻譯|行業(yè)資訊|編輯:胡濤|2023-07-14 10:47:32.667|閱讀 138 次
概述:本文介紹如何在 C# 中將多頁圖像轉(zhuǎn)換為 PDF,歡迎查閱~
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Spire.Doc 是一款專門對(duì) Word 文檔進(jìn)行操作的 類庫。在于幫助開發(fā)人員無需安裝 Microsoft Word情況下,輕松快捷高效地創(chuàng)建、編輯、轉(zhuǎn)換和打印 Microsoft Word 文檔。擁有近10年專業(yè)開發(fā)經(jīng)驗(yàn)Spire系列辦公文檔開發(fā)工具,專注于創(chuàng)建、編輯、轉(zhuǎn)換和打印Word/PDF/Excel等格式文件處理,小巧便捷。
E-iceblue 功能類庫Spire 系列文檔處理組件均由中國本土團(tuán)隊(duì)研發(fā),不依賴第三方軟件,不受其他國家的技術(shù)或法律法規(guī)限制,同時(shí)適配國產(chǎn)操作系統(tǒng)如中科方德、中標(biāo)麒麟等,兼容國產(chǎn)文檔處理軟件 WPS(如 .wps/.et/.dps 等格式
Spire.PDF for.net下載 Spire.PDF for java下載
對(duì)于將圖像轉(zhuǎn)換為PDF的功能,Spire.PDF可以快速有效地處理。這個(gè).NET PDF庫不僅可以將常用格式的圖像轉(zhuǎn)換為PDF文檔,例如jpg、bmp、png,還可以將gif、tif和ico圖像轉(zhuǎn)換為PDF。只需在這里下載即可。
要使用 Spire.PDF 將多頁圖像轉(zhuǎn)換為 PDF 文件,只需將以下代碼復(fù)制到您的應(yīng)用程序并調(diào)用 ConvertImagetoPDF 方法即可完成。
步驟1:分割多頁圖像的方法
Spire.Pdf 有一個(gè)名為 DrawImage 的方法來將圖像轉(zhuǎn)換為 PDF。但它不能直接處理多頁圖像。因此在轉(zhuǎn)換之前,需要將多頁圖像分割成多個(gè)一頁圖像。
[C#]
Guid guid = image.FrameDimensionsList[0]; FrameDimension dimension = new FrameDimension(guid); int pageCount = image.GetFrameCount(dimension);
這一步是獲取多頁圖像的總幀數(shù)(頁數(shù))。
[C#]
image.SelectActiveFrame(dimension, i);
這一步是選擇該圖像對(duì)象內(nèi)的一幀幀。
[C#]
image.Save(buffer, format);
將選定的幀保存到緩沖區(qū)。
第 2 步:將圖像轉(zhuǎn)換為 PDF
分割多頁圖像后,Spire.Pdf 可以使用方法 DrawImage 將這些分割圖像直接繪制為 PDF。
[C#]
PdfImage pdfImg = PdfImage.FromImage(img[i])
加載圖像文件為 PdfImage。
[C#]
page.Canvas.DrawImage(pdfImg, x, 0, width, height);
將 PdfImage 繪制為 PDF。唯一要做的就是指定 PDF 上圖像的位置。寬度和高度是繪制圖像的區(qū)域的大小。有時(shí)我們需要放大或縮小圖像的原始尺寸,直到它適合PDF頁面。x 和 0 定位坐標(biāo)。
檢查原始 TIF 文件的有效屏幕截圖。
目標(biāo)PDF文件:
完整演示:
[C#]
using Spire.Pdf; using Spire.Pdf.Graphics; using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; namespace ConvertMultipageImagetoPDF { class Program { static void Main(string[] args) { { ConvertImagetoPDF(@"..\..\Chapter1.tif"); } } public static void ConvertImagetoPDF(String ImageFilename) { using (PdfDocument pdfDoc = new PdfDocument()) { Image image = Image.FromFile(ImageFilename); Image[] img = SplitImages(image, ImageFormat.Png); for (int i = 0; i < img.Length; i++) { PdfImage pdfImg = PdfImage.FromImage(img[i]); PdfPageBase page = pdfDoc.Pages.Add(); float width = pdfImg.Width * 0.3f; float height = pdfImg.Height * 0.3f; float x = (page.Canvas.ClientSize.Width - width) / 2; page.Canvas.DrawImage(pdfImg, x, 0, width, height); } string PdfFilename = "result.pdf"; pdfDoc.SaveToFile(PdfFilename); System.Diagnostics.Process.Start(PdfFilename); } } public static Image[] SplitImages(Image image, ImageFormat format) { Guid guid = image.FrameDimensionsList[0]; FrameDimension dimension = new FrameDimension(guid); int pageCount = image.GetFrameCount(dimension); Image[] frames = new Image[pageCount]; for (int i = 0; i < pageCount; i++) { using (MemoryStream buffer = new MemoryStream()) { image.SelectActiveFrame(dimension, i); image.Save(buffer, format); frames[i] = Image.FromStream(buffer); } } return frames; } } }
以上便是如何在 C# 中將多頁圖像轉(zhuǎn)換為 PDF,如果您有其他問題也可以繼續(xù)瀏覽本系列文章,獲取相關(guān)教程,你還可以給我留言或者加入我們的官方技術(shù)交流群。
歡迎下載|體驗(yàn)更多E-iceblue產(chǎn)品
獲取更多信息請(qǐng)咨詢 ;技術(shù)交流Q群(767755948)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn