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

C#/VB.NET創(chuàng)建PDF文檔的示例代碼

 更新時(shí)間:2023年12月17日 09:00:51   作者:E-iceblue  
通過(guò)代碼創(chuàng)建 PDF 文檔有許多好處,所以本文將為大家詳細(xì)介紹一下如何使用 Spire.PDF for .NET 在 C# 和 VB.NET 中從頭開(kāi)始創(chuàng)建 PDF 文檔,需要的可以參考下

通過(guò)代碼創(chuàng)建 PDF 文檔有許多好處。例如,您可以輕松地合并動(dòng)態(tài)內(nèi)容,如用戶輸入、數(shù)據(jù)庫(kù)記錄或?qū)崟r(shí)數(shù)據(jù)。通過(guò)使用代碼生成的 PDF 文件可以實(shí)現(xiàn)更高程度的定制和自動(dòng)化,從而最大限度地減少手動(dòng)干預(yù)以創(chuàng)建高度定制化的文檔。在本教程中,我們將為您展示如何使用 Spire.PDF for .NET 在 C# 和 VB.NET 中從頭開(kāi)始創(chuàng)建 PDF 文檔。

安裝 Spire.PDF for .NET

首先,您需要添加 Spire.PDF for .NET 包中包含的 DLL 文件作為 .NET 項(xiàng)目中的引用。DLL 文件可以從此鏈接下載或通過(guò) NuGet 安裝。

PM> Install-Package Spire.PDF

背景知識(shí)

Spire.PDF 中的頁(yè)面(由 PdfPageBase 類(lèi)表示)由內(nèi)容區(qū)域和四周的頁(yè)邊距組成。內(nèi)容區(qū)是供用戶編寫(xiě)各種內(nèi)容的區(qū)域,頁(yè)邊距通常為空白邊緣。

如下圖所示,頁(yè)面上坐標(biāo)系的原點(diǎn)位于內(nèi)容區(qū)域的左上角,x 軸水平向右延伸,y 軸垂直向下延伸。添加到內(nèi)容區(qū)域的所有元素都必須基于指定的坐標(biāo)。

此外,下表列出了重要的類(lèi)和方法,這些類(lèi)和方法可以幫助您輕松理解下一節(jié)中提供的代碼片段。

成員描述
PdfDocument 類(lèi)表示 PDF 文檔模型。
PdfPageBase 類(lèi)表示 PDF 文檔中的頁(yè)面。
PdfSolidBrush 類(lèi)表示用純色填充任何對(duì)象的筆刷。
PdfTrueTypeFont 類(lèi)表示 true Type 字體。
PdfStringFormat 類(lèi)表示文本格式信息,如對(duì)齊方式、字符間距和縮進(jìn)。
PdfTextWidget 類(lèi)表示具有跨多頁(yè)功能的文本區(qū)域。
PdfTextLayout 類(lèi)表示文本布局信息。
PdfDocument.Pages.Add() 方法將頁(yè)面添加到PDF文檔中。
PdfPageBase.Canvas.DrawString() 方法使用指定的字體和筆刷對(duì)象在頁(yè)面上的指定位置繪制字符串。
PdfTextWidget.Draw() 方法在指定位置繪制頁(yè)面上的文本小部件。
PdfDocument.Save() 方法將文檔保存為 PDF 文件。

在 C# 和 VB.NET 中從頭開(kāi)始創(chuàng)建 PDF 文檔

雖然 Spire.PDF for .NET 支持向 PDF 文檔中添加各種元素,但本文僅演示如何使用純文本創(chuàng)建 PDF 文檔。以下是詳細(xì)的步驟。

  • 創(chuàng)建 PdfDocument 對(duì)象。
  • 使用 PdfDocument.Pages.Add() 方法添加頁(yè)面。
  • 創(chuàng)建筆刷和字體對(duì)象。
  • 使用 PdfPageBase.Canvas.DrawString() 方法在頁(yè)面上指定坐標(biāo)處繪制字符串。
  • 創(chuàng)建一個(gè) PdfTextWidget 對(duì)象來(lái)容納一塊文本。
  • 使用 PdfTextWidget.Draw() 方法在頁(yè)面上的指定位置繪制文本小部件
  • 使用 PdfDocument.Save() 方法將文檔保存為 PDF 文件。

C#

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

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

            //添加頁(yè)面
            PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(35f));

            //指定標(biāo)題文本
            String titleText = "什么是AI?";

            //創(chuàng)建實(shí)體筆刷
            PdfSolidBrush titleBrush = new PdfSolidBrush(new PdfRGBColor(Color.Blue));
            PdfSolidBrush paraBrush = new PdfSolidBrush(new PdfRGBColor(Color.Black));

            //創(chuàng)建true type字體
            PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new Font("宋體", 18f, FontStyle.Bold), true);
            PdfTrueTypeFont paraFont = new PdfTrueTypeFont(new Font("宋體", 12f, FontStyle.Regular), true);

            //通過(guò)PdfStringFormat類(lèi)設(shè)置文本對(duì)齊方式
            PdfStringFormat format = new PdfStringFormat();
            format.Alignment = PdfTextAlignment.Center;

            //在頁(yè)面中心繪制標(biāo)題
            page.Canvas.DrawString(titleText, titleFont, titleBrush, page.Canvas.ClientSize.Width / 2, 20, format);

            //從.txt文件中獲取段落內(nèi)容
            string paraText = File.ReadAllText("C:\\Users\\Administrator\\Desktop\\文本.txt");

            //創(chuàng)建一個(gè)PdfTextWidget對(duì)象來(lái)保存段落內(nèi)容
            PdfTextWidget widget = new PdfTextWidget(paraText, paraFont, paraBrush);

            //創(chuàng)建一個(gè)放置段落內(nèi)容的矩形
            RectangleF rect = new RectangleF(0, 50, page.Canvas.ClientSize.Width, page.Canvas.ClientSize.Height);

            //將PdfLayoutType設(shè)置為Paginate以使內(nèi)容自動(dòng)分頁(yè)
            PdfTextLayout layout = new PdfTextLayout();
            layout.Layout = PdfLayoutType.Paginate;

            //在頁(yè)面上繪制小部件
            widget.Draw(page, rect, layout);

            //保存文件
            doc.SaveToFile("創(chuàng)建PDF文檔.pdf");
            doc.Dispose();
        }
    }
}

VB.NET

Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing
Imports System.IO

Namespace CreatePdfDocument
    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            '創(chuàng)建PdfDocument對(duì)象
            Dim doc As PdfDocument = New PdfDocument()

            '添加頁(yè)面
            Dim page As PdfPageBase = doc.Pages.Add(PdfPageSize.A4, New PdfMargins(35F))

            '指定標(biāo)題文本
            Dim titleText = "什么是AI?"

            '創(chuàng)建實(shí)體筆刷
            Dim titleBrush As PdfSolidBrush = New PdfSolidBrush(New PdfRGBColor(Color.Blue))
            Dim paraBrush As PdfSolidBrush = New PdfSolidBrush(New PdfRGBColor(Color.Black))

            '創(chuàng)建true type字體
            Dim titleFont As PdfTrueTypeFont = New PdfTrueTypeFont(New Font("宋體", 18F, FontStyle.Bold), True)
            Dim paraFont As PdfTrueTypeFont = New PdfTrueTypeFont(New Font("宋體", 12F, FontStyle.Regular), True)

            '通過(guò)PdfStringFormat類(lèi)設(shè)置文本對(duì)齊方式
            Dim format As PdfStringFormat = New PdfStringFormat()
            format.Alignment = PdfTextAlignment.Center

            '在頁(yè)面中心繪制標(biāo)題
            page.Canvas.DrawString(titleText, titleFont, titleBrush, page.Canvas.ClientSize.Width / 2, 20, format)

            '從.txt文件中獲取段落內(nèi)容
            Dim paraText = File.ReadAllText("C:\Users\Administrator\Desktop\文本.txt")

            '創(chuàng)建一個(gè)PdfTextWidget對(duì)象來(lái)保存段落內(nèi)容
            Dim widget As PdfTextWidget = New PdfTextWidget(paraText, paraFont, paraBrush)

            '創(chuàng)建一個(gè)放置段落內(nèi)容的矩形
            Dim rect As RectangleF = New RectangleF(0, 50, page.Canvas.ClientSize.Width, page.Canvas.ClientSize.Height)

            '將PdfLayoutType設(shè)置為Paginate以使內(nèi)容自動(dòng)分頁(yè)
            Dim layout As PdfTextLayout = New PdfTextLayout()
            layout.Layout = PdfLayoutType.Paginate

            '在頁(yè)面上繪制小部件
            widget.Draw(page, rect, layout)

            '保存文件
            doc.SaveToFile("創(chuàng)建PDF文檔.pdf")
            doc.Dispose()
        End Sub
    End Class
End Namespace

效果圖

到此這篇關(guān)于C#/VB.NET創(chuàng)建PDF文檔的示例代碼的文章就介紹到這了,更多相關(guān)C#創(chuàng)建PDF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#線程啟動(dòng)的幾種實(shí)現(xiàn)方法小結(jié)

    C#線程啟動(dòng)的幾種實(shí)現(xiàn)方法小結(jié)

    在C#中創(chuàng)建新線程執(zhí)行代碼的幾種方法,包括Thread、Task、ThreadPool等,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-07-07
  • C#中Array與ArrayList用法及轉(zhuǎn)換的方法

    C#中Array與ArrayList用法及轉(zhuǎn)換的方法

    C#中Array與ArrayList用法及轉(zhuǎn)換的方法,需要的朋友可以參考一下
    2013-03-03
  • C#中感嘆號(hào)(!) 的作用總結(jié)

    C#中感嘆號(hào)(!) 的作用總結(jié)

    這篇文章主要給大家總結(jié)介紹了C#中感嘆號(hào)(!) 的作用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • C#如何在自定義事件里傳遞自定義數(shù)據(jù)

    C#如何在自定義事件里傳遞自定義數(shù)據(jù)

    相信很多小伙伴都知道傳值的一些方式,比如構(gòu)造方法傳值,屬性傳值等,這篇文章主要來(lái)給大家分享的另一種方式,通過(guò)自定義事件來(lái)傳值,感興趣的可以了解下
    2024-12-12
  • C# Socket的TCP通訊的實(shí)例代碼

    C# Socket的TCP通訊的實(shí)例代碼

    本篇文章主要介紹了C# Socket的TCP通訊,socket通訊方式有兩種:同步和異步,詳細(xì)的介紹了這兩種方法,有興趣的可以了解一下。
    2016-12-12
  • C#實(shí)現(xiàn)從Word文檔和各種Word元素中自動(dòng)提取文本

    C#實(shí)現(xiàn)從Word文檔和各種Word元素中自動(dòng)提取文本

    手動(dòng)提取文本既費(fèi)時(shí)又容易出錯(cuò),尤其是在處理較長(zhǎng)或復(fù)雜的Word文檔時(shí),這篇文章將探討如何使用C# 從Word文檔中提取文本,我們將涵蓋不同方面的內(nèi)容,希望對(duì)大家有所幫助
    2025-11-11
  • C#中使用OpenCV的常用函數(shù)的常用示例

    C#中使用OpenCV的常用函數(shù)的常用示例

    這篇文章主要介紹了C#中使用OpenCV的常用函數(shù)的常用示例,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • 在C# WinForm項(xiàng)目中跨.cs文件傳值的六種常用方案

    在C# WinForm項(xiàng)目中跨.cs文件傳值的六種常用方案

    你想知道在 C# WinForm 項(xiàng)目中,不同.cs 文件之間傳遞數(shù)據(jù) 的通用處理方法,我會(huì)結(jié)合串口調(diào)試工具的場(chǎng)景,講解 6 種常用方案(從簡(jiǎn)單到規(guī)范),并說(shuō)明每種方案的適用場(chǎng)景、優(yōu)缺點(diǎn)和具體實(shí)現(xiàn),需要的朋友可以參考下
    2026-01-01
  • C#實(shí)現(xiàn)多個(gè)計(jì)時(shí)器記錄不同定時(shí)時(shí)間

    C#實(shí)現(xiàn)多個(gè)計(jì)時(shí)器記錄不同定時(shí)時(shí)間

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)多個(gè)計(jì)時(shí)器記錄不同定時(shí)時(shí)間,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • C#程序調(diào)用cmd.exe執(zhí)行命令

    C#程序調(diào)用cmd.exe執(zhí)行命令

    這篇文章介紹了C#程序調(diào)用cmd.exe執(zhí)行命令的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論

洛川县| 额尔古纳市| 西吉县| 遂溪县| 紫阳县| 德惠市| 夏津县| 枣庄市| 肥西县| 沛县| 达拉特旗| 丰台区| 嘉峪关市| 青神县| 枣庄市| 玉田县| 白朗县| 蒲江县| 苍南县| 加查县| 都江堰市| 永修县| 新民市| 新安县| 东阳市| 老河口市| 彩票| 丹东市| 漳平市| 灌阳县| 南岸区| 专栏| 南靖县| 竹山县| 乡城县| 乌鲁木齐县| 兰考县| 佛山市| 桑植县| 光泽县| 肇州县|