最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#實(shí)現(xiàn)將多張圖片轉(zhuǎn)換到一個(gè)PDF文檔

 更新時(shí)間:2025年10月21日 14:53:23   作者:咕白m625  
在日常開發(fā)中,經(jīng)常需要將多張圖片合并為一個(gè) PDF 文檔,方便存儲(chǔ)和分享,下面我們就來看看如何使用C# 結(jié)合 Spire.PDF for .NET 庫實(shí)現(xiàn)這一功能,需要的可以參考一下

在日常開發(fā)中,經(jīng)常需要將多張圖片(如 JPG、PNG、BMP 等)合并為一個(gè) PDF 文檔,方便存儲(chǔ)和分享。本文將介紹如何使用 C# 結(jié)合 Spire.PDF for .NET 庫實(shí)現(xiàn)這一功能,該庫提供了簡潔的 API,無需依賴 Adobe Acrobat 即可快速操作 PDF。

一、準(zhǔn)備工作

Spire.PDF for .NET是一個(gè)專業(yè)的PDF處理類庫,支持創(chuàng)建、編輯、轉(zhuǎn)換PDF文檔,同時(shí)提供了豐富的圖片處理能力,可輕松將圖片插入PDF頁面。

安裝步驟如下:

推薦通過 NuGet 包管理器安裝:

  • 在 Visual Studio 中右鍵點(diǎn)擊項(xiàng)目,選擇“管理 NuGet 包”
  • 搜索“Spire.PDF”并安裝
  • 安裝完成后,引用命名空間:using Spire.Pdf;using Spire.Pdf.Graphics;

二、核心實(shí)現(xiàn)步驟

功能需求

將指定文件夾中的所有圖片(支持JPG、PNG、BMP等格式)按順序合并為一個(gè)PDF,每張圖片占一頁,且頁面大小自適應(yīng)圖片尺寸。

完整代碼示例

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

namespace ConvertMultipleImagesIntoPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            // 創(chuàng)建PdfDocument對(duì)象
            PdfDocument pdf = new PdfDocument();

            // 將頁邊距設(shè)置為0
            pdf.PageSettings.SetMargins(0);

            // 獲取圖片存放的文件夾
            DirectoryInfo folder = new DirectoryInfo(@"C:\Users\Administrator\Desktop\Images");

            // 遍歷圖片
            foreach (FileInfo file in folder.GetFiles())
            {
                Image image = Image.FromFile(file.FullName);

                // 獲取圖片尺寸
                float width = image.PhysicalDimension.Width;
                float height = image.PhysicalDimension.Height;

                // 添加與圖片大小相同的PDF頁面
                PdfPageBase page = pdf.Pages.Add(new SizeF(width, height));

                // 將圖片繪制到頁面
                PdfImage pdfImage = PdfImage.FromImage(image);
                page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height);
            }
      
            // 保存PDF文檔
            pdf.SaveToFile("CombinaImagesToPdf.pdf");
            pdf.Dispose();
        }
    }
}

代碼解析

  • 參數(shù)配置:指定圖片文件夾路徑,可根據(jù)實(shí)際需求修改。
  • PDF頁面創(chuàng)建:創(chuàng)建一個(gè)與圖片尺寸完全相同的 PDF 頁面(確保頁面大小適配圖片,無拉伸或裁剪)
  • 圖片繪制page.Canvas.DrawImage() 從頁面左上角 (0,0) 開始繪制圖片,尺寸與圖片原始尺寸一致,最終效果是圖片完全覆蓋頁面。
  • 釋放資源Dispose() 手動(dòng)釋放 PdfDocument 對(duì)象占用的資源。

三、擴(kuò)展技巧

1. 固定PDF頁面大小

如果需要所有頁面使用固定尺寸(如A4),可修改頁面創(chuàng)建邏輯:

// 創(chuàng)建A4尺寸頁面(210mm×297mm)
PdfPageBase page = pdf.Pages.Add(PdfPageSize.A4);

2. 圖片縮放適應(yīng)頁面

若圖片尺寸超過頁面,可自動(dòng)縮放:

// 計(jì)算縮放比例(確保圖片完全顯示在頁面內(nèi))
float scaleX = page.Canvas.ClientSize.Width / pdfImage.Width;
float scaleY = page.Canvas.ClientSize.Height / pdfImage.Height;
float scale = Math.Min(scaleX, scaleY);

// 按比例縮放繪制
page.Canvas.DrawImage(pdfImage, x, y, pdfImage.Width * scale, pdfImage.Height * scale);

四、方法補(bǔ)充

C# 將單張圖片轉(zhuǎn)換為PDF文檔

Free Spire.PDF for .NET提供的圖片轉(zhuǎn)PDF的方法是將加載的圖片繪制到PDF頁面上實(shí)現(xiàn)的,主要步驟如下:

  • 創(chuàng)建一個(gè) PDF文檔,然后將其頁邊距設(shè)置為0。
  • 使用 Image.FromFile() 方法加載圖片,然后獲取圖片的寬度和高度。
  • 通過 PdfDocument.Pages.Add() 方法添加一個(gè)與圖片大小相同的PDF頁面。
  • 根據(jù)圖片創(chuàng)建 PdfImage 對(duì)象。
  • 使用 PdfPageBase.Canvas.DrawImage() 方法在PDF頁面上繪制PdfImage對(duì)象。
  • 使用 PdfDocument.SaveToFile() 方法保存生成的 PDF 文檔。

示例代碼:

ing System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;

namespace ConvertImageToPdfWithSameSize
{
    class Program
    {
        static void Main(string[] args)
        {
            //創(chuàng)建PdfDocument對(duì)象
            PdfDocument pdf = new PdfDocument();

            //將頁邊距設(shè)為0
            pdf.PageSettings.SetMargins(0);

            //加載圖片
            Image image = Image.FromFile(@"C:\Users\Administrator\Desktop\work.jpg");

            //獲取圖片尺寸
            float width = image.PhysicalDimension.Width;
            float height = image.PhysicalDimension.Height;

            //創(chuàng)建PdfImage對(duì)象
            PdfImage pdfImage = PdfImage.FromFile(@"C:\Users\Administrator\Desktop\work.jpg");

            //添加一個(gè)與圖片大小相同的PDF頁面
            PdfPageBase page = pdf.Pages.Add(new SizeF(width, height));

            //在頁面上繪制圖片
            page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height);

            //保存PDF
            pdf.SaveToFile("圖片轉(zhuǎn)Pdf.pdf");
        }
    }
}

C# 將多張圖片轉(zhuǎn)換到一個(gè)PDF文檔

Free Spire.PDF for .NET也可以將一個(gè)文件夾中的多張圖片繪制到一個(gè)PDF文檔的不同頁面上,主要步驟如下:

  • 創(chuàng)建一個(gè) PDF文檔,然后將其頁邊距設(shè)置為0。
  • 獲取存儲(chǔ)圖片的文件夾。
  • 遍歷文件夾中的每個(gè)圖像文件,并獲取每一張圖片的寬度和高度。
  • 通過 PdfDocument.Pages.Add() 方法在PDF文檔中添加與圖片大小相同的PDF頁面。
  • 使用 PdfPageBase.Canvas.DrawImage() 方法在頁面上繪制各個(gè)圖片。
  • 使用 PdfDocument.SaveToFile() 方法保存生成的PDF文檔。

示例代碼:

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
using System.IO;

namespace ConvertMultipleImagesIntoPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            //創(chuàng)建PdfDocument對(duì)象
            PdfDocument pdf = new PdfDocument();

            //將頁邊距設(shè)為0
            pdf.PageSettings.SetMargins(0);

            //獲取存儲(chǔ)圖片的文件夾
            DirectoryInfo folder = new DirectoryInfo(@"C:\Users\Administrator\Desktop\圖片");

            //遍歷文件夾中的圖片
            foreach (FileInfo file in folder.GetFiles())
            {
                //加載圖片
                Image image = Image.FromFile(file.FullName);

                //獲取圖片尺寸
                float width = image.PhysicalDimension.Width;
                float height = image.PhysicalDimension.Height;

                //添加與圖片大小相同的PDF頁面
                PdfPageBase page = pdf.Pages.Add(new SizeF(width, height));

                //創(chuàng)建PdfImage對(duì)象
                PdfImage pdfImage = PdfImage.FromFile(file.FullName);

                //在頁面上繪制圖片
                page.Canvas.DrawImage(pdfImage, 0, 0, pdfImage.Width, pdfImage.Height);
            }

            //保存PDF
            pdf.SaveToFile("多圖轉(zhuǎn)Pdf.pdf");
            pdf.Dispose();
        }
    }
}

結(jié)語:通過 Spire.PDF for .NET 庫,使用簡單代碼即可實(shí)現(xiàn)圖片轉(zhuǎn) PDF 的功能,相比傳統(tǒng)方案(System.Drawing + GDI+)更簡潔易用。該方法適用于批量處理圖片、生成電子相冊(cè)、歸檔掃描件等場景,可根據(jù)實(shí)際需求擴(kuò)展更多功能(如添加頁碼、水印等)。

到此這篇關(guān)于C#實(shí)現(xiàn)將多張圖片轉(zhuǎn)換到一個(gè)PDF文檔的文章就介紹到這了,更多相關(guān)C#多張圖片轉(zhuǎn)PDF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 10個(gè)C#程序員經(jīng)常用到的實(shí)用代碼片段

    10個(gè)C#程序員經(jīng)常用到的實(shí)用代碼片段

    如果你是一個(gè)C#程序員,那么本文介紹的10個(gè)C#常用代碼片段一定會(huì)給你帶來幫助,從底層的資源操作,到上層的UI應(yīng)用,這些代碼也許能給你的開發(fā)節(jié)省不少時(shí)間。以下是原文:
    2015-09-09
  • 如何讓C#、VB.NET實(shí)現(xiàn)復(fù)雜的二進(jìn)制操作

    如何讓C#、VB.NET實(shí)現(xiàn)復(fù)雜的二進(jìn)制操作

    VB.NET和C#屬于高級(jí)語言,對(duì)二進(jìn)制位操作的支持不是很好,比如沒有了移位運(yùn)算等,用的時(shí)候確實(shí)很不方便,所以在閑暇之余我重新封裝了一個(gè)用于C#、VB.NET的位操作類庫,通過該類庫可以實(shí)現(xiàn)數(shù)據(jù)移位、循環(huán)移位、轉(zhuǎn)換為二進(jìn)制、將二進(jìn)制轉(zhuǎn)換為數(shù)據(jù)等
    2013-07-07
  • Unity2D實(shí)現(xiàn)游戲回旋鏢

    Unity2D實(shí)現(xiàn)游戲回旋鏢

    這篇文章主要為大家詳細(xì)介紹了Unity2D實(shí)現(xiàn)游戲回旋鏢,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • C#求n個(gè)數(shù)中最大值和最小值的方法

    C#求n個(gè)數(shù)中最大值和最小值的方法

    這篇文章主要介紹了C#求n個(gè)數(shù)中最大值和最小值的方法,涉及C#中max及min方法的使用技巧,需要的朋友可以參考下
    2015-05-05
  • 談C# using的用法與好處

    談C# using的用法與好處

    這篇文章主要為大家詳細(xì)介紹了C# using的用法與好處,具體分析了using指令調(diào)用的Dispose()方法,感興趣的朋友可以參考一下
    2016-05-05
  • 使用C#合并PDF文檔的實(shí)現(xiàn)步驟

    使用C#合并PDF文檔的實(shí)現(xiàn)步驟

    在當(dāng)今的數(shù)字化辦公環(huán)境中,PDF文檔已經(jīng)成為信息交換和存檔的標(biāo)準(zhǔn)格式,然而,在許多業(yè)務(wù)場景中,開發(fā)者會(huì)面臨一個(gè)共同的需求:將多個(gè)PDF文檔合并為一個(gè),本文將深入探討如何利用Spire.PDF for .NET 這一強(qiáng)大的工具,幫助C#開發(fā)者輕松實(shí)現(xiàn)PDF文檔的合并,需要的朋友可以參考下
    2025-09-09
  • C#使用Spire.Doc for .NET獲取并替換Word文檔中的字體

    C#使用Spire.Doc for .NET獲取并替換Word文檔中的字體

    在企業(yè)文檔處理流程中,C# Word 字體替換需求頻繁出現(xiàn),手動(dòng)查找并替換 Word 文檔字體,不僅耗費(fèi)時(shí)間,還易遺漏,Spire.Doc for .NET 作為專業(yè)庫,提供查找并替換字體功能,支持自動(dòng)化批量操作,本文基于 Spire.Doc,分享精確 C# 代碼,實(shí)現(xiàn)字體標(biāo)準(zhǔn)化,需要的朋友可以參考下
    2026-03-03
  • C#遍歷DataSet控件實(shí)例總結(jié)

    C#遍歷DataSet控件實(shí)例總結(jié)

    這篇文章主要介紹了C#遍歷DataSet控件的用法,以實(shí)例形式總結(jié)歸納了常見的遍歷方法,具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C#通過html調(diào)用WinForm的方法

    C#通過html調(diào)用WinForm的方法

    這篇文章主要介紹了C#通過html調(diào)用WinForm的方法,涉及html頁面中使用JavaScript訪問C#的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • c# 設(shè)置TeeChart控件的提示文本

    c# 設(shè)置TeeChart控件的提示文本

    這篇文章主要介紹了c# 如何設(shè)置TeeChart控件的提示文本,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-11-11

最新評(píng)論

荥阳市| 格尔木市| 惠水县| 广南县| 蒙城县| 华坪县| 吉水县| 时尚| 石河子市| 建宁县| 胶南市| 巴林右旗| 巍山| 松桃| 乌拉特后旗| 集安市| 崇信县| 江油市| 长沙市| 清水河县| 清徐县| 大邑县| 黑河市| 德格县| 丰镇市| 蒲江县| 西城区| 绥江县| 根河市| 津市市| 子长县| 钦州市| 西平县| 石河子市| 辽宁省| 甘孜县| 买车| 锡林郭勒盟| 大石桥市| 奉节县| 贺州市|