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

使用C#代碼在PDF文檔添加頁碼的操作指南

 更新時間:2025年11月23日 11:55:59   作者:2501_93070778  
向 PDF 文檔添加頁碼不僅實用,而且具有美觀效果,因為它能使文檔呈現(xiàn)出類似專業(yè)出版物的精致外觀,在本文中,您將學習如何在 C# 中使用 Spire.PDF for .NET 向 PDF 文檔添加頁碼,需要的朋友可以參考下

向 PDF 文檔添加頁碼不僅實用,而且具有美觀效果,因為它能使文檔呈現(xiàn)出類似專業(yè)出版物的精致外觀。無論您處理的是小說的電子版、報告,還是其他類型的長篇文檔,添加頁碼都能顯著提高其可讀性和使用價值。在本文中,您將學習如何在 C# 中使用 Spire.PDF for .NET 向 PDF 文檔添加頁碼。

安裝 Spire.PDF for .NET

首先,您需要將 Spire.PDF for .NET 包中包含的 DLL 文件添加為 .NET 項目的引用。這些 DLL 文件可以通過此鏈接下載,或者通過 NuGet 進行安裝。

PM> Install-Package Spire.PDF

PDF 坐標系統(tǒng)

在使用 Spire.PDF for .NET 操作現(xiàn)有 PDF 文檔時,需要注意坐標系統(tǒng)的原點位于頁面的左上角。x 軸向右延伸,y 軸向下延伸。

通常,頁碼會放置在文檔的頁眉或頁腳區(qū)域。因此,在確定頁碼的合適位置時,必須考慮頁面的尺寸和邊距。

在 C# 中在頁腳添加左對齊的頁碼

在 Spire.PDF for .NET 庫中,有兩個可用的類:PdfPageNumberField 和 PdfPageCountField。將它們添加到 PDF 文檔的頁面時,可以獲取并顯示當前頁碼以及總頁數(shù)。如果您希望插入類似 “第 X 頁” 或 “第 X 頁,共 Y 頁” 的文本,可以使用 PdfCompositeField 類,它允許您將所需文本與一個或多個字段組合成單一字段。

具體示例代碼如下:

using Spire.Pdf.AutomaticFields;
using Spire.Pdf.Graphics;
using Spire.Pdf;
using System.Drawing;
using Spire.Pdf.License;
 
namespace AddPageNumbersToLeftCorner
{
    class Program
    {
        static void Main(string[] args)
        {
            // 應用許可證密鑰
            LicenseProvider.SetLicenseKey("License Key");
 
            // 創(chuàng)建 PdfDocument 對象
            PdfDocument doc = new PdfDocument();
 
            // 加載 PDF 文件
            doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Terms of service.pdf");
 
            // 創(chuàng)建字體、畫刷和畫筆,用于設置頁碼的顯示樣式
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman", 12, FontStyle.Regular), true);
            PdfBrush brush = PdfBrushes.Black;
            PdfPen pen = new PdfPen(brush, 1.0f);
 
            // 創(chuàng)建 PdfPageNumberField 對象和 PdfPageCountField 對象
            PdfPageNumberField pageNumberField = new PdfPageNumberField();
            PdfPageCountField pageCountField = new PdfPageCountField();
 
            // 創(chuàng)建 PdfCompositeField 對象,將頁碼字段和總頁數(shù)字段組合為一個字段
            PdfCompositeField compositeField = new PdfCompositeField(font, brush, "Page {0} of {1}", pageNumberField, pageCountField);
 
            // 獲取頁面尺寸
            SizeF pageSize = doc.Pages[0].Size;
 
            // 設置復合字段的位置
            compositeField.Location = new PointF(72, pageSize.Height - 45);
 
            // 遍歷文檔中的每一頁
            for (int i = 0; i < doc.Pages.Count; i++)
            {
 
                // 獲取指定頁面
                PdfPageBase page = doc.Pages[i];
 
                // 在指定位置繪制一條直線
                page.Canvas.DrawLine(pen, 72, pageSize.Height - 50, pageSize.Width - 72, pageSize.Height - 50);
 
                // 在頁面上繪制復合字段
                compositeField.Draw(page.Canvas);
            }
 
            // 保存為新的 PDF 文件
            doc.SaveToFile("AddPageNumbersToLeftCorner.pdf");
 
            // 釋放資源
            doc.Dispose();
        }
    }
}

在 C# 中在頁腳添加居中對齊的頁碼

為了將頁腳中的頁碼居中對齊,關鍵在于動態(tài)計算文本 “第 X 頁,共 Y 頁” 的寬度。這一步計算非常重要,因為它決定了頁碼(PdfCompositeField)的 X 坐標。為了實現(xiàn)居中對齊,X 坐標的計算方法為:用頁面寬度減去頁碼寬度,然后將結果除以 2,即 (PageWidth - PageNumberWidth) / 2。

具體示例代碼如下:

using Spire.Pdf.AutomaticFields;
using Spire.Pdf.Graphics;
using Spire.Pdf;
using System.Drawing;
using Spire.Pdf.License;
 
namespace AddPageNumbersToCenter
{
    class Program
    {
        static void Main(string[] args)
        {
            // 應用許可證密鑰
            LicenseProvider.SetLicenseKey("License Key");
 
            // 創(chuàng)建 PdfDocument 對象
            PdfDocument doc = new PdfDocument();
 
            // 加載 PDF 文件
            doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Terms of service.pdf");
 
            // 創(chuàng)建字體、畫刷和畫筆,用于設置頁碼的顯示樣式
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman", 12, FontStyle.Regular), true);
            PdfBrush brush = PdfBrushes.Black;
            PdfPen pen = new PdfPen(brush, 1.0f);
 
            // 創(chuàng)建 PdfPageNumberField 對象和 PdfPageCountField 對象
            PdfPageNumberField pageNumberField = new PdfPageNumberField();
            PdfPageCountField pageCountField = new PdfPageCountField();
 
            // 創(chuàng)建 PdfCompositeField 對象,將頁碼字段和總頁數(shù)字段組合為一個字段
            PdfCompositeField compositeField = new PdfCompositeField(font, brush, "Page {0} of {1}", pageNumberField, pageCountField);
 
 
            // 遍歷文檔中的每一頁
            for (int i = 0; i < doc.Pages.Count; i++)
            {
 
                // 獲取指定頁面
                PdfPageBase page = doc.Pages[i];
 
                // 獲取頁面尺寸
                SizeF pageSize = doc.Pages[i].Size;
 
                // 在指定位置繪制一條直線
                page.Canvas.DrawLine(pen, 72, pageSize.Height - 50, pageSize.Width - 72, pageSize.Height - 50);
 
                // 測量 "Page X of Y" 文本的尺寸
                SizeF pageNumberSize = font.MeasureString(string.Format("Page {0} of {1}", i + 1, doc.Pages.Count));
 
                // 設置復合字段的位置,實現(xiàn)居中對齊
                compositeField.Location = new PointF((pageSize.Width - pageNumberSize.Width) / 2, pageSize.Height - 45);
 
                // 在頁面上繪制復合字段
                compositeField.Draw(page.Canvas);
 
            }
 
            // 保存為新的 PDF 文件
            doc.SaveToFile("AddPageNumbersToCenter.pdf");
 
            // 釋放資源
            doc.Dispose();
        }
    }
}

在 C# 中在頁腳添加右對齊的頁碼

為了將頁腳中的頁碼放置在右側角落,同樣需要動態(tài)計算文本 “第 X 頁,共 Y 頁” 的寬度。因為頁碼(PdfCompositeField)的 X 坐標是通過用頁面寬度減去頁碼寬度與右側頁邊距的和來確定的,計算公式如下:

PageWidth - (PageNumberWidth + RightPageMargin)

具體示例代碼如下:

using Spire.Pdf.AutomaticFields;
using Spire.Pdf.Graphics;
using Spire.Pdf;
using System.Drawing;
using Spire.Pdf.License;
 
namespace AddPageNumbersToRigthCorner
{
    class Program
    {
        static void Main(string[] args)
        {
            // 應用許可證密鑰
            LicenseProvider.SetLicenseKey("License Key");
 
            // 創(chuàng)建 PdfDocument 對象
            PdfDocument doc = new PdfDocument();
 
            // 加載 PDF 文件
            doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Terms of service.pdf");
 
            // 創(chuàng)建字體、畫刷和畫筆,用于設置頁碼的顯示樣式
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Times New Roman", 12, FontStyle.Regular), true);
            PdfBrush brush = PdfBrushes.Black;
            PdfPen pen = new PdfPen(brush, 1.0f);
 
            // 創(chuàng)建 PdfPageNumberField 對象和 PdfPageCountField 對象
            PdfPageNumberField pageNumberField = new PdfPageNumberField();
            PdfPageCountField pageCountField = new PdfPageCountField();
 
            // 創(chuàng)建 PdfCompositeField 對象,將頁碼字段和總頁數(shù)字段組合為一個字段
            PdfCompositeField compositeField = new PdfCompositeField(font, brush, "Page {0} of {1}", pageNumberField, pageCountField);
 
 
            // 遍歷文檔中的每一頁
            for (int i = 0; i < doc.Pages.Count; i++)
            {
 
                // 獲取指定頁面
                PdfPageBase page = doc.Pages[i];
 
                // 獲取頁面尺寸
                SizeF pageSize = doc.Pages[i].Size;
 
                // 在指定位置繪制一條直線
                page.Canvas.DrawLine(pen, 72, pageSize.Height - 50, pageSize.Width - 72, pageSize.Height - 50);
 
                // 測量 "Page X of Y" 文本的尺寸
                SizeF pageNumberSize = font.MeasureString(string.Format("Page {0} of {1}", i + 1, doc.Pages.Count));
 
                // 設置復合字段的位置,實現(xiàn)右對齊
                compositeField.Location = new PointF(pageSize.Width - pageNumberSize.Width - 72, pageSize.Height - 45);
 
                // 在頁面上繪制復合字段
                compositeField.Draw(page.Canvas);
 
            }
 
            // 保存為新的 PDF 文件
            doc.SaveToFile("AddPageNumbersToRigthCorner.pdf");
 
            // 釋放資源
            doc.Dispose();
        }
    }
}

到此這篇關于使用C#代碼在PDF文檔添加頁碼的操作指南的文章就介紹到這了,更多相關C# PDF文檔添加頁碼內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C# 獲取硬盤號,CPU信息,加密解密技術的步驟

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

    這篇文章主要介紹了C# 獲取硬盤號,CPU信息,加密解密技術的步驟,幫助大家更好的理解和學習c#,感興趣的朋友可以了解下
    2021-01-01
  • 如何用.NETCore操作RabbitMQ

    如何用.NETCore操作RabbitMQ

    這篇文章主要介紹了如何用.NETCore操作RabbitMQ,對中間件感興趣的同學,可以參考下
    2021-05-05
  • C#二叉搜索樹算法實現(xiàn)步驟和實例代碼

    C#二叉搜索樹算法實現(xiàn)步驟和實例代碼

    二叉搜索樹(Binary?Search?Tree,簡稱BST)是一種節(jié)點有序排列的二叉樹數(shù)據結構,這篇文章主要介紹了C#二叉搜索樹算法實現(xiàn)步驟和實例代碼,需要的朋友可以參考下
    2024-08-08
  • C# Datagridview綁定List方法代碼

    C# Datagridview綁定List方法代碼

    這篇文章主要介紹了C# Datagridview綁定List方法代碼,在進行C#數(shù)據庫程序設計時非常具有實用價值,需要的朋友可以參考下
    2014-10-10
  • C#調用C++ DLL bool返回值始終為true的問題

    C#調用C++ DLL bool返回值始終為true的問題

    這篇文章主要介紹了C#調用C++ DLL bool返回值始終為true的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 在C#中自動化創(chuàng)建Excel儀表圖的操作代碼

    在C#中自動化創(chuàng)建Excel儀表圖的操作代碼

    在數(shù)據驅動的時代,Excel 儀表圖(Gauge Chart)因其直觀、高效的特點,成為業(yè)務監(jiān)控和績效評估的利器,本文我們將深入探討如何利用 C# Excel Chart Automation 的強大能力,通過編程方式在 Excel 中自動化創(chuàng)建儀表圖,徹底告別手動操作的煩惱,需要的朋友可以參考下
    2025-09-09
  • c#實現(xiàn)winform屏幕截圖并保存的示例

    c#實現(xiàn)winform屏幕截圖并保存的示例

    這篇文章主要介紹了c#實現(xiàn)winform屏幕截圖并保存的示例,需要的朋友可以參考下
    2014-02-02
  • C#獲取Word文檔中所有表格的實現(xiàn)代碼分享

    C#獲取Word文檔中所有表格的實現(xiàn)代碼分享

    這篇文章主要介紹了C#獲取Word文檔中所有表格的實現(xiàn)代碼分享,小編親測可用,需要的朋友可以參考下
    2014-09-09
  • C#中的日期時間比較和格式化的方法

    C#中的日期時間比較和格式化的方法

    本文將介紹C#中常用的日期時間比較方法(CompareTo、Equals和比較運算符)以及日期時間格式化方法(ToString、自定義格式字符串和標準格式),具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • C#使用for循環(huán)移除HTML標記

    C#使用for循環(huán)移除HTML標記

    大家在項目開發(fā)階段移除文字中的html標記最常用的方法就是使用正則表達式,但是正則表達式不能處理所有的html文檔,所以采用迭代方式會更好,下面小編給大家解答下
    2016-08-08

最新評論

安多县| 石嘴山市| 长丰县| 临颍县| 图片| 泸州市| 安义县| 台南市| 汉阴县| 宾阳县| 扬中市| 合山市| 南宫市| 宿迁市| 长寿区| 汉阴县| 呼图壁县| 江川县| 山丹县| 东乡族自治县| 新营市| 安平县| 三门县| 牡丹江市| 海口市| 江口县| 蒙山县| 长治市| 尚义县| 杭州市| 乡宁县| 泰顺县| 昌平区| 承德市| 富平县| 深泽县| 巴楚县| 江陵县| 平潭县| 鄂伦春自治旗| 波密县|