翻譯|行業資訊|編輯:胡濤|2023-07-14 10:47:32.667|閱讀 166 次
概述:本文介紹如何在 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@ke049m.cn