翻譯|行業資訊|編輯:胡濤|2023-07-14 10:47:32.667|閱讀 138 次
概述:本文介紹如何在 C# 中將多頁圖像轉換為 PDF,歡迎查閱~
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Spire.Doc 是一款專門對 Word 文檔進行操作的 類庫。在于幫助開發人員無需安裝 Microsoft Word情況下,輕松快捷高效地創建、編輯、轉換和打印 Microsoft Word 文檔。擁有近10年專業開發經驗Spire系列辦公文檔開發工具,專注于創建、編輯、轉換和打印Word/PDF/Excel等格式文件處理,小巧便捷。
E-iceblue 功能類庫Spire 系列文檔處理組件均由中國本土團隊研發,不依賴第三方軟件,不受其他國家的技術或法律法規限制,同時適配國產操作系統如中科方德、中標麒麟等,兼容國產文檔處理軟件 WPS(如 .wps/.et/.dps 等格式
Spire.PDF for.net下載 Spire.PDF for java下載
對于將圖像轉換為PDF的功能,Spire.PDF可以快速有效地處理。這個.NET PDF庫不僅可以將常用格式的圖像轉換為PDF文檔,例如jpg、bmp、png,還可以將gif、tif和ico圖像轉換為PDF。只需在這里下載即可。
要使用 Spire.PDF 將多頁圖像轉換為 PDF 文件,只需將以下代碼復制到您的應用程序并調用 ConvertImagetoPDF 方法即可完成。
步驟1:分割多頁圖像的方法
Spire.Pdf 有一個名為 DrawImage 的方法來將圖像轉換為 PDF。但它不能直接處理多頁圖像。因此在轉換之前,需要將多頁圖像分割成多個一頁圖像。
[C#]
Guid guid = image.FrameDimensionsList[0]; FrameDimension dimension = new FrameDimension(guid); int pageCount = image.GetFrameCount(dimension);
這一步是獲取多頁圖像的總幀數(頁數)。
[C#]
image.SelectActiveFrame(dimension, i);
這一步是選擇該圖像對象內的一幀幀。
[C#]
image.Save(buffer, format);
將選定的幀保存到緩沖區。
第 2 步:將圖像轉換為 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 上圖像的位置。寬度和高度是繪制圖像的區域的大小。有時我們需要放大或縮小圖像的原始尺寸,直到它適合PDF頁面。x 和 0 定位坐標。
檢查原始 TIF 文件的有效屏幕截圖。
目標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# 中將多頁圖像轉換為 PDF,如果您有其他問題也可以繼續瀏覽本系列文章,獲取相關教程,你還可以給我留言或者加入我們的官方技術交流群。
歡迎下載|體驗更多E-iceblue產品
獲取更多信息請咨詢 ;技術交流Q群(767755948)
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn