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

C#使用Spire.PDF for .NET實(shí)現(xiàn)設(shè)置或修改PDF頁(yè)面尺寸

 更新時(shí)間:2026年02月06日 08:31:24   作者:m5655bj  
在文檔處理場(chǎng)景中,調(diào)整 PDF 頁(yè)面尺寸是常見(jiàn)需求,本文將介紹如何使用免費(fèi)庫(kù) Free Spire.PDF for .NET 通過(guò) C# 代碼設(shè)置或修改 PDF 頁(yè)面尺寸,有需要的小伙伴可以了解下

在文檔處理場(chǎng)景中,調(diào)整 PDF 頁(yè)面尺寸是常見(jiàn)需求,例如將 A4 尺寸的 PDF 適配 A3 打印紙張、為移動(dòng)端顯示自定義窄版頁(yè)面,或統(tǒng)一多來(lái)源 PDF 的頁(yè)面規(guī)格。本文將介紹如何使用免費(fèi)庫(kù) Free Spire.PDF for .NET 通過(guò) C# 代碼設(shè)置或修改 PDF 頁(yè)面尺寸。

一、安裝免費(fèi) .NET 庫(kù)

通過(guò) NuGet 包管理器安裝(最便捷方式):

  • 打開(kāi)Visual Studio → 右鍵項(xiàng)目 → 管理NuGet程序包 → 搜索“Free Spire.PDF” → 安裝。
  • 或通過(guò)NuGet命令行安裝:
Install-Package FreeSpire.PDF

注:Free Spire.PDF for .NET 有10頁(yè)的頁(yè)數(shù)限制,僅適用于小型文檔。

二、C# 如何調(diào)整 PDF 頁(yè)面尺寸

本文采用 “創(chuàng)建新 PDF 文檔 + 原頁(yè)面模板繪制” 的方式調(diào)整尺寸,核心優(yōu)勢(shì)是通過(guò) PdfTextLayoutOnePage 布局自動(dòng)適配內(nèi)容到新頁(yè)面,避免直接修改尺寸導(dǎo)致的內(nèi)容裁剪或錯(cuò)位。

PDF 頁(yè)面尺寸的核心單位為“點(diǎn)(Point)”,常見(jiàn)尺寸換算關(guān)系:

  • 1英寸 = 72點(diǎn);
  • A4(210mm×297mm)= 595.28點(diǎn) × 841.89點(diǎn);
  • A3(297mm×420mm)= 841.89點(diǎn) × 1190.55點(diǎn)。

Free Spire.PDF 類(lèi)庫(kù)提供 PdfUnitConvertor 工具類(lèi)可便捷完成英寸、毫米與點(diǎn)的換算。

場(chǎng)景 1:將現(xiàn)有 PDF 修改為標(biāo)準(zhǔn)預(yù)設(shè)頁(yè)面尺寸(A1)

適用于將 PDF 批量調(diào)整為行業(yè)標(biāo)準(zhǔn)尺寸(如 A1、A3、Letter 等),通過(guò) Free Spire.PDF 預(yù)設(shè)的PdfPageSize 枚舉直接指定尺寸,無(wú)需手動(dòng)換算單位。

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

namespace ChangePageSizeToStandardPaperSize
{
    class Program
    {
        static void Main(string[] args)
        {            
            // 1. 創(chuàng)建PdfDocument實(shí)例并加載原始PDF
            PdfDocument originPdf = new PdfDocument();
            originPdf.LoadFromFile("Sample.pdf"); // 替換為你的PDF文件路徑

            // 2. 創(chuàng)建新的PDF文檔用于存儲(chǔ)調(diào)整尺寸后的內(nèi)容
            PdfDocument newPdf = new PdfDocument();

            // 3. 遍歷原始PDF的所有頁(yè)面,逐頁(yè)調(diào)整尺寸
            foreach(PdfPageBase page in originPdf.Pages)
            { 
                // 3.1 新增A1尺寸的頁(yè)面(設(shè)置邊距為0)
                PdfPageBase newPage = newPdf.Pages.Add(PdfPageSize.A1, new PdfMargins(0));
                
                // 3.2 設(shè)置文本布局為“單頁(yè)適配”,確保內(nèi)容完整縮放至新頁(yè)面
                PdfTextLayout layout = new PdfTextLayout();
                layout.Layout = PdfLayoutType.OnePage;
                
                // 3.3 基于原頁(yè)面創(chuàng)建模板,將內(nèi)容繪制到新尺寸頁(yè)面
                PdfTemplate template = page.CreateTemplate();
                template.Draw(newPage, new PointF(0, 0), layout);
            }

            // 4. 保存調(diào)整后的PDF文件
            newPdf.SaveToFile("預(yù)設(shè)尺寸.pdf");
            
            // 5. 釋放資源
            originPdf.Close();
            newPdf.Close();
        }
    }
}

代碼說(shuō)明

  • PdfDocument:分別實(shí)例化 “原始 PDF” 和 “新 PDF”,避免直接修改原文件導(dǎo)致數(shù)據(jù)丟失;
  • PdfPageSize.A1:內(nèi)置標(biāo)準(zhǔn)尺寸枚舉,支持 A0-A4、Letter、Legal 等常用尺寸,無(wú)需手動(dòng)換算;
  • PdfTextLayout:設(shè)置 Layout = PdfLayoutType.OnePage 是核心,可讓原頁(yè)面內(nèi)容自動(dòng)縮放并完整適配新頁(yè)面尺寸;
  • PdfTemplate:將原頁(yè)面內(nèi)容封裝為模板,再繪制到新尺寸頁(yè)面,是實(shí)現(xiàn) “內(nèi)容適配尺寸” 的關(guān)鍵載體。

場(chǎng)景2:將現(xiàn)有 PDF 修改為自定義頁(yè)面尺寸

適用于非標(biāo)準(zhǔn)尺寸需求(如 6.5×8.5 英寸),通過(guò) PdfUnitConvertor 完成英寸到點(diǎn)的自動(dòng)換算,避免手動(dòng)計(jì)算誤差。

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

namespace ChangePageSizeToCustomPaperSize
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 加載原始PDF文檔
            PdfDocument originPdf = new PdfDocument();
            originPdf.LoadFromFile("Sample.pdf"); // 替換為你的PDF文件路徑

            // 2. 創(chuàng)建新PDF文檔存儲(chǔ)調(diào)整后的內(nèi)容
            PdfDocument newPdf = new PdfDocument();

            // 3. 初始化單位轉(zhuǎn)換器,實(shí)現(xiàn)英寸→點(diǎn)的自動(dòng)換算
            PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
            // 3.1 換算自定義尺寸:6.5英寸(寬)、8.5英寸(高)→ 點(diǎn)(Point)
            float width = unitCvtr.ConvertUnits(6.5f, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point);
            float height = unitCvtr.ConvertUnits(8.5f, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point);
            // 3.2 封裝為SizeF對(duì)象,作為新頁(yè)面的自定義尺寸
            SizeF customSize = new SizeF(width, height);

            // 4. 遍歷原始PDF頁(yè)面,逐頁(yè)繪制到自定義尺寸頁(yè)面
            foreach (PdfPageBase page in originPdf.Pages)
            {
                // 4.1 新增自定義尺寸的頁(yè)面(邊距設(shè)為0)
                PdfPageBase newPage = newPdf.Pages.Add(customSize, new PdfMargins(0));
                
                // 4.2 設(shè)置單頁(yè)適配布局,保證內(nèi)容完整縮放
                PdfTextLayout layout = new PdfTextLayout();
                layout.Layout = PdfLayoutType.OnePage;
                
                // 4.3 創(chuàng)建原頁(yè)面模板并繪制到新頁(yè)面
                PdfTemplate template = page.CreateTemplate();
                template.Draw(newPage, new PointF(0, 0), layout);
            }

            // 5. 保存自定義尺寸的PDF文件
            newPdf.SaveToFile("自定義尺寸.pdf");
            
            // 6. 釋放資源
            originPdf.Close();
            newPdf.Close();
        }
    }
}

代碼說(shuō)明

  • PdfUnitConvertor:內(nèi)置單位轉(zhuǎn)換工具,支持 Inch(英寸)、Millimeter(毫米)、Point(點(diǎn))、Centimeter(厘米)等單位互轉(zhuǎn);
  • ConvertUnits 方法:參數(shù)依次為 “數(shù)值、原單位、目標(biāo)單位”,無(wú)需手動(dòng)計(jì)算 “1 英寸 = 72 點(diǎn)” 的換算關(guān)系,降低出錯(cuò)概率;
  • SizeF:封裝自定義寬高,作為 Pages.Add 方法的尺寸參數(shù),適配任意非標(biāo)準(zhǔn)頁(yè)面尺寸需求。

三、注意事項(xiàng)

  • 單位一致性:修改尺寸時(shí)需確保寬高單位統(tǒng)一(均為點(diǎn)),避免因單位換算錯(cuò)誤導(dǎo)致尺寸偏差。
  • 內(nèi)容適配PdfLayoutType.OnePage 會(huì)自動(dòng)縮放內(nèi)容適配新尺寸,若需保持內(nèi)容原比例,無(wú)需額外調(diào)整;若需手動(dòng)控制縮放比例,可結(jié)合 ScaleTransform 方法補(bǔ)充調(diào)整。
  • 兼容性:該類(lèi)庫(kù)生成的 PDF 兼容主流閱讀器(Adobe Acrobat、Chrome、Edge等),但復(fù)雜PDF(含表單/批注)修改后需驗(yàn)證格式完整性。
  • 資源釋放:使用 Close() 方法釋放 PdfDocument 資源,避免因文件占用導(dǎo)致保存失敗。

該方案無(wú)需依賴(lài)外部工具,純代碼實(shí)現(xiàn) PDF 頁(yè)面尺寸調(diào)整,適合 .NET 開(kāi)發(fā)者集成到文檔處理系統(tǒng)中,在中小規(guī)模 PDF 尺寸調(diào)整場(chǎng)景中具備較高的實(shí)用性和穩(wěn)定性。

到此這篇關(guān)于C#使用Spire.PDF for .NET實(shí)現(xiàn)設(shè)置或修改PDF頁(yè)面尺寸的文章就介紹到這了,更多相關(guān)C#設(shè)置或修改PDF頁(yè)面尺寸內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#修改圖片尺寸以及不改變?cè)袌D片比例

    C#修改圖片尺寸以及不改變?cè)袌D片比例

    文章介紹了如何使用C#中的Bitmap類(lèi)來(lái)修改圖片尺寸,同時(shí)保持原有的圖片比例,作者分享了自己的經(jīng)驗(yàn),并鼓勵(lì)讀者參考和使用
    2025-01-01
  • 在C#中使用Channels的完整教程

    在C#中使用Channels的完整教程

    這篇文章主要介紹了在C#中使用Channels的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C#刪除字符串中重復(fù)字符的方法

    C#刪除字符串中重復(fù)字符的方法

    這篇文章主要介紹了C#刪除字符串中重復(fù)字符的方法,涉及C#針對(duì)字符串的遍歷及移除等操作的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-02-02
  • 詳解C#設(shè)置Excel數(shù)據(jù)自適應(yīng)行高、列寬的2種情況

    詳解C#設(shè)置Excel數(shù)據(jù)自適應(yīng)行高、列寬的2種情況

    這篇文章主要介紹了C#設(shè)置Excel數(shù)據(jù)自適應(yīng)行高、列寬的2種情況,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • C#中托管DLL和非托管DLL的區(qū)別詳解

    C#中托管DLL和非托管DLL的區(qū)別詳解

    這篇文章主要介紹了C#中托管DLL和非托管DLL的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Unity的IPostBuildPlayerScriptDLLs實(shí)用案例深入解析

    Unity的IPostBuildPlayerScriptDLLs實(shí)用案例深入解析

    這篇文章主要為大家介紹了Unity的IPostBuildPlayerScriptDLLs實(shí)用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • C#?MemoryStream中ToArray和GetBuffer的區(qū)別小小結(jié)

    C#?MemoryStream中ToArray和GetBuffer的區(qū)別小小結(jié)

    MemoryStream?中的?GetBuffer()?和?ToArray()?是兩個(gè)用于獲取流數(shù)據(jù)的方法,核心區(qū)別在于數(shù)據(jù)范圍、內(nèi)存占用和安全性,本文就來(lái)介紹一下兩者的區(qū)別,感興趣的額可以了解一下
    2025-07-07
  • WPF應(yīng)用程序本地化的最佳方法分享

    WPF應(yīng)用程序本地化的最佳方法分享

    應(yīng)用程序本地化有很多種方式,選擇合適的才是最好的,這篇文章主要為大家介紹了動(dòng)態(tài)資源的方式,可以在不重啟應(yīng)用程序的情況下進(jìn)行資源的切換,需要的可以參考下
    2023-08-08
  • C#利用WebClient實(shí)現(xiàn)兩種方式下載文件

    C#利用WebClient實(shí)現(xiàn)兩種方式下載文件

    本篇文章主要介紹了C#利用WebClient 兩種方式下載文件,詳細(xì)的介紹了兩種方式,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2017-02-02
  • 一文弄懂C#淺克隆與深克隆

    一文弄懂C#淺克隆與深克隆

    在C#中,淺克隆和深克隆是兩種常見(jiàn)的對(duì)象克隆技術(shù),本文主要介紹了C#淺克隆與深克隆,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02

最新評(píng)論

鹿泉市| 崇礼县| 蒲城县| 赤城县| 五家渠市| 高淳县| 华安县| 大港区| 河北省| 延吉市| 临海市| 桂阳县| 荆门市| 东乡县| 年辖:市辖区| 八宿县| 兴隆县| 惠州市| 鸡东县| 隆林| 晋中市| 周至县| 宜春市| 阿克陶县| 景泰县| 阜康市| 栖霞市| 昌黎县| 江安县| 抚松县| 若尔盖县| 高清| 新疆| 大厂| 林芝县| 永丰县| 温泉县| 会昌县| 拉孜县| 许昌县| 元氏县|