欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

iTextSharp簡介

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

iTextSharp 的主要功能包括:

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

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

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

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

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

文本抽?。嚎梢詮?PDF 文檔中提取文本,支持文字提取和 OCR(光學(xué)字符識別)功能(需要外部支持)。

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

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

效果圖如下:

目標(biāo)

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

使用步驟

首先,我們需要在項(xiàng)目中引用以下兩個(gè) DLL 文件:

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

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

代碼實(shí)現(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è)置對話框標(biāo)題
                Multiselect = true, // 允許多選文件
                Filter = "圖片文件|*.jpg|所有文件|*.*", // 設(shè)置文件過濾器
                FilterIndex = 2, // 設(shè)置默認(rèn)過濾器索引
                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)建一個(gè) 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 寫入實(shí)例
                    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;
            }
        }
 
        // 點(diǎn)擊轉(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);
        }
 
        // 點(diǎn)擊選擇文件夾按鈕,設(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 輸出路徑會(huì)顯示在文本框中。

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

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

總結(jié)

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

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

相關(guān)文章

  • C#權(quán)限管理和設(shè)計(jì)淺談

    C#權(quán)限管理和設(shè)計(jì)淺談

    權(quán)限管理是很多軟件中相當(dāng)重要的一個(gè)模塊——它的設(shè)計(jì)的好壞直接影響到軟件的安全性、權(quán)限管理的可擴(kuò)展性和易操作性 以及代碼中權(quán)限判斷的復(fù)雜程度和效率等方面
    2012-02-02
  • C#、vb.net及SQL判斷指定年份是否為閏年的方法

    C#、vb.net及SQL判斷指定年份是否為閏年的方法

    這篇文章主要介紹了C#、vb.net及SQL判斷指定年份是否為閏年的方法,分別以三種方法實(shí)現(xiàn)了判斷閏年的功能,在進(jìn)行項(xiàng)目開發(fā)中具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • C# PropertyGrid使用案例詳解

    C# PropertyGrid使用案例詳解

    這篇文章主要介紹了C# PropertyGrid使用案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • c# 實(shí)現(xiàn)打印機(jī)狀態(tài)查詢與阻塞打印

    c# 實(shí)現(xiàn)打印機(jī)狀態(tài)查詢與阻塞打印

    這篇文章主要介紹了c# 引用System.Management來實(shí)現(xiàn)對打印機(jī)狀態(tài)的查詢,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-05-05
  • C# winform打開Excel文檔的方法總結(jié)(必看篇)

    C# winform打開Excel文檔的方法總結(jié)(必看篇)

    下面小編就為大家?guī)硪黄狢# winform打開Excel文檔的方法總結(jié)(必看篇)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • 一篇文章弄懂C#中的async和await

    一篇文章弄懂C#中的async和await

    這篇文章主要給大家介紹了如何通過一篇文章弄懂C#中async和await的相關(guān)資料,async和await相信大家應(yīng)該不陌生,讓異步處理變得更友好,本文通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-07-07
  • Windows系統(tǒng)中C#調(diào)用WinRAR來壓縮和解壓縮文件的方法

    Windows系統(tǒng)中C#調(diào)用WinRAR來壓縮和解壓縮文件的方法

    這篇文章主要介紹了Windows系統(tǒng)中C#調(diào)用WinRAR來壓縮和解壓縮文件的方法,個(gè)人感覺在Windows中WinRAR相對7-zip更加穩(wěn)定一些,需要的朋友可以參考下
    2016-04-04
  • c#索引器詳解示例

    c#索引器詳解示例

    索引器是一種特殊的類成員,它能夠讓對象以類似數(shù)組的方式來存取,使程序看起來更為直觀,更容易編寫。
    2014-04-04
  • 淺析C# 裝箱和拆箱

    淺析C# 裝箱和拆箱

    這篇文章主要介紹了C# 裝箱和拆箱的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#檢查foreach判讀是否為null的方法

    C#檢查foreach判讀是否為null的方法

    這篇文章主要介紹了C#如何檢查foreach判讀其是否為null,文中給出了示例代碼,介紹的很詳細(xì),需要的朋友可以參考下方法
    2016-09-09

最新評論