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

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

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

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

安裝 Spire.PDF for .NET

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

PM> Install-Package Spire.PDF

背景知識

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

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

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

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

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

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

  • 創(chuàng)建 PdfDocument 對象。
  • 使用 PdfDocument.Pages.Add() 方法添加頁面。
  • 創(chuàng)建筆刷和字體對象。
  • 使用 PdfPageBase.Canvas.DrawString() 方法在頁面上指定坐標(biāo)處繪制字符串。
  • 創(chuàng)建一個 PdfTextWidget 對象來容納一塊文本。
  • 使用 PdfTextWidget.Draw() 方法在頁面上的指定位置繪制文本小部件
  • 使用 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對象
            PdfDocument doc = new PdfDocument();

            //添加頁面
            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);

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

            //在頁面中心繪制標(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)建一個PdfTextWidget對象來保存段落內(nèi)容
            PdfTextWidget widget = new PdfTextWidget(paraText, paraFont, paraBrush);

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

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

            //在頁面上繪制小部件
            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對象
            Dim doc As PdfDocument = New PdfDocument()

            '添加頁面
            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)

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

            '在頁面中心繪制標(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)建一個PdfTextWidget對象來保存段落內(nèi)容
            Dim widget As PdfTextWidget = New PdfTextWidget(paraText, paraFont, paraBrush)

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

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

            '在頁面上繪制小部件
            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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • unity 實(shí)現(xiàn)攝像機(jī)繞某點(diǎn)旋轉(zhuǎn)一周

    unity 實(shí)現(xiàn)攝像機(jī)繞某點(diǎn)旋轉(zhuǎn)一周

    這篇文章主要介紹了unity 實(shí)現(xiàn)攝像機(jī)繞某點(diǎn)旋轉(zhuǎn)一周,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C#多線程與異步的區(qū)別詳解

    C#多線程與異步的區(qū)別詳解

    多線程和異步操作兩者都可以達(dá)到避免調(diào)用線程阻塞的目的,從而提高軟件的可響應(yīng)性。甚至有些時候我們就認(rèn)為多線程和異步操作是等同的概念。但是,多線程和異步操作還是有一些區(qū)別的。而這些區(qū)別造成了使用多線程和異步操作的時機(jī)的區(qū)別
    2017-06-06
  • Unity工具類之生成文本驗(yàn)證碼

    Unity工具類之生成文本驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了Unity工具類之生成文本驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • c#線程間傳遞參數(shù)詳解

    c#線程間傳遞參數(shù)詳解

    本篇文章主要是對c#中的線程間傳遞參數(shù)進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • C#將指定目錄所有文件名轉(zhuǎn)換成小寫的方法

    C#將指定目錄所有文件名轉(zhuǎn)換成小寫的方法

    這篇文章主要介紹了C#將指定目錄所有文件名轉(zhuǎn)換成小寫的方法,涉及C#中目錄的遍歷及filename.ToLowerInvariant方法的使用技巧,非常具有實(shí)用價值,需要的朋友可以參考下
    2015-04-04
  • unity通過Mesh網(wǎng)格繪制圖形球體

    unity通過Mesh網(wǎng)格繪制圖形球體

    這篇文章主要為大家詳細(xì)介紹了unity通過Mesh網(wǎng)格繪制圖形球體,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C#讀取文件所有行到數(shù)組的方法

    C#讀取文件所有行到數(shù)組的方法

    這篇文章主要介紹了C#讀取文件所有行到數(shù)組的方法,涉及C#針對文件及數(shù)組的相關(guān)操作技巧,需要的朋友可以參考下
    2015-07-07
  • C#數(shù)據(jù)類型實(shí)現(xiàn)背包、隊(duì)列和棧

    C#數(shù)據(jù)類型實(shí)現(xiàn)背包、隊(duì)列和棧

    本文詳細(xì)講解了C#數(shù)據(jù)結(jié)構(gòu)類型,并實(shí)現(xiàn)背包、隊(duì)列和棧的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#常用正則驗(yàn)證函數(shù)示例

    C#常用正則驗(yàn)證函數(shù)示例

    這篇文章主要介紹了C#常用正則驗(yàn)證函數(shù),舉例分析了C#針對IP驗(yàn)證、價格驗(yàn)證及正整數(shù)驗(yàn)證的相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • C#調(diào)用Polly庫實(shí)現(xiàn)捕捉異常處理的操作代碼

    C#調(diào)用Polly庫實(shí)現(xiàn)捕捉異常處理的操作代碼

    Polly 是一個 .NET 彈性和瞬態(tài)故障處理庫,允許開發(fā)人員以 Fluent 和線程安全的方式來實(shí)現(xiàn)重試、斷路、超時、隔離和回退策略,本文給大家介紹了C#調(diào)用Polly庫實(shí)現(xiàn)捕捉異常處理操作,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-08-08

最新評論