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

C#使用iTextSharp庫將圖片轉(zhuǎn)換為PDF

 更新時間:2024年12月12日 15:41:38   作者:數(shù)據(jù)的世界01  
iTextSharp 是一個開源的 .NET 庫,主要用于創(chuàng)建和操作 PDF 文檔,本文主要介紹了如何使用 C# 和 iTextSharp 將圖片轉(zhuǎn)換為 PDF 的功能,需要的可以參考下

iTextSharp簡介

iTextSharp 是一個開源的 .NET 庫,主要用于創(chuàng)建和操作 PDF 文檔。它是 iText 的 .NET 版本,iText 是一個廣泛使用的 Java 庫。iTextSharp 繼承了 iText 的核心功能并進行了適應(yīng) .NET 平臺的調(diào)整。

iTextSharp 的主要功能包括:

創(chuàng)建 PDF 文檔:可以生成帶有文本、圖像、表格、矢量圖形等內(nèi)容的 PDF 文檔。

修改 PDF 文檔:支持從現(xiàn)有 PDF 文件中提取文本、添加或刪除頁面、修改內(nèi)容等。

數(shù)字簽名:支持為 PDF 文件添加數(shù)字簽名,以驗證文件的完整性和真實性。

加密與解密:提供對 PDF 文件進行加密保護的功能,支持設(shè)置權(quán)限(如打印、復(fù)制等),并支持解密操作。

表單功能:支持創(chuàng)建 PDF 表單,并允許數(shù)據(jù)填充、表單提交等操作。

文本抽取:可以從 PDF 文檔中提取文本,支持文字提取和 OCR(光學(xué)字符識別)功能(需要外部支持)。

支持多種字體和國際化:支持嵌入字體,能夠處理不同語言字符集(包括中文、日文等)。

高效性能:能夠高效地處理大量 PDF 文件,適用于商業(yè)和大型應(yīng)用程序。

效果圖如下:

目標

本文演示如何使用 C# 和 iTextSharp 將圖片轉(zhuǎn)換為 PDF 的功能。

使用步驟

首先,我們需要在項目中引用以下兩個 DLL 文件:

BouncyCastle.Crypto.dll:提供 iTextSharp 在處理數(shù)字簽名、加密、解密等功能時所需的加密支持。

itextsharp.dll:用于操作 PDF 文件。

代碼實現(xiàn)

using System;
using System.IO;
using System.Windows.Forms;
using iTextSharp.text;
using iTextSharp.text.pdf;
 
namespace pdfzhuan
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        // 選擇文件按鈕,打開文件對話框并選擇圖片文件
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog
            {
                InitialDirectory = Application.StartupPath, // 設(shè)置打開對話框的初始目錄
                Title = "請選擇要打開的文件", // 設(shè)置對話框標題
                Multiselect = true, // 允許多選文件
                Filter = "圖片文件|*.jpg|所有文件|*.*", // 設(shè)置文件過濾器
                FilterIndex = 2, // 設(shè)置默認過濾器索引
                RestoreDirectory = false // 不記憶最后打開的目錄
            };
 
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                string filePath = ofd.FileName; // 獲取文件路徑
                string fileName = ofd.SafeFileName; // 獲取文件名(不包括路徑)
                string pdfFile = filePath.Replace(".jpg", ".pdf"); // 設(shè)置轉(zhuǎn)換后的 PDF 文件路徑
                textBox1.Text = filePath; // 顯示圖片路徑
                textBox2.Text = pdfFile; // 顯示 PDF 輸出路徑
            }
        }
 
        /// <summary>
        /// 將圖片轉(zhuǎn)換為 PDF
        /// </summary>
        /// <param name="jpgfile">圖片文件路徑</param>
        /// <param name="pdf">生成的 PDF 文件路徑</param>
        /// <returns></returns>
        public static bool ConvertJPG2PDF(string jpgfile, string pdf)
        {
            try
            {
                // 創(chuàng)建一個 A4 尺寸的 PDF 文檔
                var document = new Document(PageSize.A4, 25, 25, 25, 25);
                using (var stream = new FileStream(pdf, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    // 獲取 PDF 寫入實例
                    PdfWriter.GetInstance(document, stream);
                    document.Open(); // 打開文檔
 
                    // 加載圖片
                    using (var imageStream = new FileStream(jpgfile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                    {
                        var image = Image.GetInstance(imageStream);
 
                        // 圖片如果過大,則縮放以適應(yīng)頁面
                        if (image.Height > PageSize.A4.Height - 25 || image.Width > PageSize.A4.Width - 25)
                        {
                            image.ScaleToFit(PageSize.A4.Width - 25, PageSize.A4.Height - 25);
                        }
 
                        image.Alignment = Image.ALIGN_MIDDLE; // 設(shè)置圖片居中
                        document.Add(image); // 將圖片添加到 PDF 文檔中
                    }
 
                    document.Close(); // 關(guān)閉文檔
                }
 
                MessageBox.Show("PDF 轉(zhuǎn)換成功!");
                return true;
            }
            catch (Exception ex)
            {
                MessageBox.Show($"轉(zhuǎn)換失敗: {ex.Message}");
                return false;
            }
        }
 
        // 點擊轉(zhuǎn)換按鈕,執(zhí)行轉(zhuǎn)換操作
        private void button3_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textBox1.Text))
            {
                MessageBox.Show("請選擇要轉(zhuǎn)換的圖片!");
                return;
            }
 
            string jpgFile = textBox1.Text;
            string pdfFile = textBox2.Text;
 
            // 執(zhí)行圖片轉(zhuǎn)換為 PDF
            ConvertJPG2PDF(jpgFile, pdfFile);
        }
 
        // 點擊選擇文件夾按鈕,設(shè)置輸出 PDF 文件的路徑
        private void button2_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textBox1.Text))
            {
                MessageBox.Show("請選擇要轉(zhuǎn)換的圖片!");
                return;
            }
 
            FolderBrowserDialog folderDialog = new FolderBrowserDialog
            {
                Description = "請選擇圖片所在文件夾"
            };
 
            if (folderDialog.ShowDialog() == DialogResult.OK)
            {
                string filename = DateTime.Now.ToString("yyyyMMddHHmm"); // 生成文件名
                textBox2.Text = Path.Combine(folderDialog.SelectedPath, $"{filename}.pdf"); // 設(shè)置輸出路徑
            }
        }
    }
}

代碼解析

選擇圖片文件:通過 OpenFileDialog 控件打開文件對話框,用戶可以選擇 .jpg 格式的圖片。選擇后,圖片路徑和對應(yīng)的 PDF 輸出路徑會顯示在文本框中。

圖片轉(zhuǎn) PDF:通過 iTextSharp 庫,創(chuàng)建一個 A4 尺寸的 PDF 文檔。通過 iTextSharp.text.Image.GetInstance() 方法加載圖片,如果圖片尺寸超過 A4 頁面,則自動縮放以適應(yīng)頁面大小。最后,圖片被添加到 PDF 中并保存。

設(shè)置輸出 PDF 文件路徑:用戶可以通過 FolderBrowserDialog 選擇輸出文件夾,并設(shè)置 PDF 文件名。

總結(jié)

通過簡單的用戶界面和文件操作,用戶可以方便地將 JPG 圖片轉(zhuǎn)化為 PDF 格式。這一功能對于批量生成文檔、報告或其他圖像處理場景非常有用。

到此這篇關(guān)于C#使用iTextSharp庫將圖片轉(zhuǎn)換為PDF的文章就介紹到這了,更多相關(guān)C# iTextSharp圖片轉(zhuǎn)PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • WinForm中BackgroundWorker控件用法簡單實例

    WinForm中BackgroundWorker控件用法簡單實例

    這篇文章主要介紹了WinForm中BackgroundWorker控件用法,以一個簡單實例形式分析了BackgroundWorker控件的定義、設(shè)置及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • C#使用NPOI將excel導(dǎo)入到list的方法

    C#使用NPOI將excel導(dǎo)入到list的方法

    這篇文章主要為大家詳細介紹了C#使用NPOI將excel導(dǎo)入到list的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#使用log4net打日志

    C#使用log4net打日志

    本文主要介紹了C#使用log4net打日志,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C# PropertyInfo類案例詳解

    C# PropertyInfo類案例詳解

    這篇文章主要介紹了C# PropertyInfo類案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • DevExpress實現(xiàn)禁用TreeListNode CheckBox的方法

    DevExpress實現(xiàn)禁用TreeListNode CheckBox的方法

    這篇文章主要介紹了DevExpress實現(xiàn)禁用TreeListNode CheckBox的方法,在項目開發(fā)中有應(yīng)用價值,需要的朋友可以參考下
    2014-08-08
  • C# 獲取硬盤號,CPU信息,加密解密技術(shù)的步驟

    C# 獲取硬盤號,CPU信息,加密解密技術(shù)的步驟

    這篇文章主要介紹了C# 獲取硬盤號,CPU信息,加密解密技術(shù)的步驟,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2021-01-01
  • c#泛型序列化對象為字節(jié)數(shù)組的示例

    c#泛型序列化對象為字節(jié)數(shù)組的示例

    這篇文章主要介紹了c#泛型序列化對象為字節(jié)數(shù)組的示例,需要的朋友可以參考下
    2014-04-04
  • 詳解c#與python的交互方式

    詳解c#與python的交互方式

    這篇文章主要介紹了詳解c#與python的交互方式,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-04-04
  • C#給Word不同頁面設(shè)置不同背景

    C#給Word不同頁面設(shè)置不同背景

    這篇文章主要介紹了C#給Word不同頁面設(shè)置不同背景,文章圖文講解的很清晰,有對于這方面不懂得同學(xué)可以學(xué)習(xí)下
    2021-02-02
  • C# WinForm實現(xiàn)Socket異步通訊的步驟詳解

    C# WinForm實現(xiàn)Socket異步通訊的步驟詳解

    Socket通訊是網(wǎng)絡(luò)編程中非?;A(chǔ)且重要的一部分,它為應(yīng)用程序提供了基于TCP/IP協(xié)議進行數(shù)據(jù)傳輸?shù)哪芰?本文將詳細介紹如何在C#的WinForm應(yīng)用程序中實現(xiàn)Socket的異步通訊,希望能為有需要的開發(fā)提供一些參考,需要的朋友可以參考下
    2025-07-07

最新評論

新龙县| 石河子市| 马龙县| 浦北县| 武夷山市| 福泉市| 论坛| 常州市| 焦作市| 安阳县| 两当县| 韶关市| 渭南市| 光山县| 洪江市| 金华市| 仙游县| 太保市| 安陆市| 和顺县| 当雄县| 邓州市| 手游| 商洛市| 宁强县| 偃师市| 卢湾区| 达拉特旗| 都江堰市| 隆子县| 荣昌县| 乐亭县| 微山县| 黑龙江省| 繁峙县| 灵川县| 二连浩特市| 嘉善县| 博湖县| 伊春市| 景德镇市|