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

C# 實(shí)現(xiàn)繪制PDF嵌套表格案例詳解

 更新時(shí)間:2021年11月26日 10:26:40   作者:返回主頁(yè)E-iceblue  
嵌套表格,顧名思義,就是在一張表格中的特定單元格中再插入一個(gè)或者多個(gè)表格,本文將為大家介紹C#繪制PDF嵌套表格的代碼示例,需要的同學(xué)可以參考一下

嵌套表格,即在一張表格中的特定單元格中再插入一個(gè)或者多個(gè)表格,使用嵌套表格的優(yōu)點(diǎn)在于能夠讓內(nèi)容的布局更加合理,同時(shí)也方便程序套用。下面的示例中,將介紹如何通過C#編程來演示如何插入嵌套表格到PDF文檔。

要點(diǎn)概括:

1. 插入嵌套表格

2. 插入文字到嵌套表格

3. 插入圖片到嵌套表格

使用工具

Spire.PDF 4.9.7

注:

1.這里使用的版本為4.9.7,經(jīng)測(cè)試,對(duì)于代碼中涉及的PdfGridCellContentList類和PdfGridCellContent類僅在使用該版本或者以上版本可用。使用時(shí),請(qǐng)注意版本信息。

2.下載安裝后,在編輯代碼時(shí),請(qǐng)注意添加引用Spire.Pdf.dll(dll文件可在安裝路徑下的Bin文件夾下獲取)

示例代碼(供參考)

步驟 1 :創(chuàng)建文檔

PdfDocument pdf = new PdfDocument();
PdfPageBase page = pdf.Pages.Add();

步驟 2 :添加字體、畫筆,寫入文本到PDF文檔?

PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("行楷", 11f), true);
PdfPen pen = new PdfPen(Color.Gray);
string text = "2018 Pyeongchang Olympic Winter Games Medal Ranking";
page.Canvas.DrawString(text, font, pen, 100, 50);

步驟 3 :創(chuàng)建第一個(gè)表格

//創(chuàng)建一個(gè)PDF表格,并添加兩行
PdfGrid grid = new PdfGrid(); 
PdfGridRow row1 = grid.Rows.Add();
PdfGridRow row2 = grid.Rows.Add();

//設(shè)置表格的單元格內(nèi)容和邊框之間的上、下邊距
grid.Style.CellPadding.Top = 5f;
grid.Style.CellPadding.Bottom = 5f;

//添加三列,并設(shè)置列寬
grid.Columns.Add(3);
grid.Columns[0].Width = 120f;
grid.Columns[1].Width = 150f;
grid.Columns[2].Width = 120f;

步驟 4 :創(chuàng)建一個(gè)嵌套表格

//創(chuàng)建一個(gè)一行兩列的嵌套表格
PdfGrid embedGrid1 = new PdfGrid();
PdfGridRow newRow = embedGrid1.Rows.Add();
embedGrid1.Columns.Add(2);

//設(shè)置嵌套表格的列寬
embedGrid1.Columns[0].Width = 50f;
embedGrid1.Columns[1].Width = 60f;

步驟 5 :添加文本、圖片到嵌套表格

//初始化SizeF類,設(shè)置圖片大小
SizeF imageSize = new SizeF(45, 35);

//實(shí)例化PdfGridCellContentList、PdfGridCellContent類,加載需要添加到嵌套表格的圖片
PdfGridCellContentList contentList = new PdfGridCellContentList();
PdfGridCellContent content = new PdfGridCellContent();
content.Image = PdfImage.FromFile("1.png");
content.ImageSize = imageSize;
contentList.List.Add(content);
//實(shí)例化PdfStringFormat、PdfTrueTypeFont類,設(shè)置單元格文字對(duì)齊方式
PdfStringFormat stringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);

//添加文本內(nèi)容及圖片到嵌套表格
newRow.Cells[0].Value = "Norway";
newRow.Cells[0].StringFormat = stringFormat;
newRow.Cells[1].Value = contentList; //將圖片添加到嵌套表格的第二個(gè)單元格
newRow.Cells[1].StringFormat = stringFormat;

步驟 6 :添加數(shù)據(jù)到第一個(gè)表格

//設(shè)置第一個(gè)表格的單元格的值和格式
row1.Cells[0].Value = "Rank";
row1.Cells[0].StringFormat = stringFormat;
row1.Cells[0].Style.Font = font;
row1.Cells[0].Style.BackgroundBrush = PdfBrushes.LightSalmon;
row1.Cells[1].Value = "Country";
row1.Cells[1].StringFormat = stringFormat;
row1.Cells[1].Style.Font = font;
row1.Cells[1].Style.BackgroundBrush = PdfBrushes.LightSalmon;
row1.Cells[2].Value = "Total";
row1.Cells[2].StringFormat = stringFormat;
row1.Cells[2].Style.Font = font;
row1.Cells[2].Style.BackgroundBrush = PdfBrushes.LightSalmon;

row2.Cells[0].Value = "1";
row2.Cells[0].StringFormat = stringFormat;
row2.Cells[0].Style.Font = font;
row2.Cells[1].Value = embedGrid1; //將嵌套表格添加到第一個(gè)表格的第二行第二個(gè)單元格
row2.Cells[1].StringFormat = stringFormat;

row2.Cells[2].Value = "39";
row2.Cells[2].StringFormat = stringFormat;
row2.Cells[2].Style.Font = font;

步驟 7:將表格繪制到頁(yè)面指定位置

grid.Draw(page, new PointF(30f, 90f));

步驟 8 :保存文檔

pdf.SaveToFile("result.pdf");

完成代碼后,調(diào)試程序,生成文檔。繪制的表格如下:

全部代碼:

using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Grid;
using System.Drawing;
using System.Windows.Forms;
using System;

namespace NestedTable_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
            //實(shí)例化PdfDocument類,并添加頁(yè)面到新建的文檔
            PdfDocument pdf = new PdfDocument();
            PdfPageBase page = pdf.Pages.Add();

            //添加字體、畫筆,寫入文本到PDF文檔
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("行楷", 11f), true);
            PdfPen pen = new PdfPen(Color.Gray);
            string text = "2018 Pyeongchang Olympic Winter Games Medal Ranking";
            page.Canvas.DrawString(text, font, pen, 100, 50);

            //創(chuàng)建一個(gè)PDF表格,并添加兩行
            PdfGrid grid = new PdfGrid(); 
            PdfGridRow row1 = grid.Rows.Add();
            PdfGridRow row2 = grid.Rows.Add();

            //設(shè)置表格的單元格內(nèi)容和邊框之間的上、下邊距
            grid.Style.CellPadding.Top = 5f;
            grid.Style.CellPadding.Bottom = 5f;

            //添加三列,并設(shè)置列寬
            grid.Columns.Add(3);
            grid.Columns[0].Width = 120f;
            grid.Columns[1].Width = 150f;
            grid.Columns[2].Width = 120f; 

            //創(chuàng)建一個(gè)一行兩列的嵌套表格
            PdfGrid embedGrid1 = new PdfGrid();
            PdfGridRow newRow = embedGrid1.Rows.Add();
            embedGrid1.Columns.Add(2);

            //設(shè)置嵌套表格的列寬
            embedGrid1.Columns[0].Width = 50f;
            embedGrid1.Columns[1].Width = 60f;

            //初始化SizeF類,設(shè)置圖片大小
            SizeF imageSize = new SizeF(45, 35);

            //實(shí)例化PdfGridCellContentList、PdfGridCellContent類,加載需要添加到嵌套表格的圖片
            PdfGridCellContentList contentList = new PdfGridCellContentList();
            PdfGridCellContent content = new PdfGridCellContent();
            content.Image = PdfImage.FromFile("1.png");
            content.ImageSize = imageSize;
            contentList.List.Add(content);
            //實(shí)例化PdfStringFormat、PdfTrueTypeFont類,設(shè)置單元格文字對(duì)齊方式
            PdfStringFormat stringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);         

            //添加文本內(nèi)容及圖片到嵌套表格
            newRow.Cells[0].Value = "Norway";
            newRow.Cells[0].StringFormat = stringFormat;
            newRow.Cells[1].Value = contentList; //將圖片添加到嵌套表格的第二個(gè)單元格
            newRow.Cells[1].StringFormat = stringFormat;           

            //設(shè)置第一個(gè)表格的單元格的值和格式
            row1.Cells[0].Value = "Rank";
            row1.Cells[0].StringFormat = stringFormat;
            row1.Cells[0].Style.Font = font;
            row1.Cells[0].Style.BackgroundBrush = PdfBrushes.LightSalmon;
            row1.Cells[1].Value = "Country";
            row1.Cells[1].StringFormat = stringFormat;
            row1.Cells[1].Style.Font = font;
            row1.Cells[1].Style.BackgroundBrush = PdfBrushes.LightSalmon;
            row1.Cells[2].Value = "Total";
            row1.Cells[2].StringFormat = stringFormat;
            row1.Cells[2].Style.Font = font;
            row1.Cells[2].Style.BackgroundBrush = PdfBrushes.LightSalmon;

            row2.Cells[0].Value = "1";
            row2.Cells[0].StringFormat = stringFormat;
            row2.Cells[0].Style.Font = font;
            row2.Cells[1].Value = embedGrid1; //將嵌套表格添加到第一個(gè)表格的第二行第二個(gè)單元格
            row2.Cells[1].StringFormat = stringFormat;

            row2.Cells[2].Value = "39";
            row2.Cells[2].StringFormat = stringFormat;
            row2.Cells[2].Style.Font = font;

            //將表格繪制到頁(yè)面指定位置
            grid.Draw(page, new PointF(30f, 90f));

            //保存文檔并打開
            pdf.SaveToFile("result.pdf");
            System.Diagnostics.Process.Start("result.pdf");
        }
    }
}

?以上就是C# 實(shí)現(xiàn)繪制PDF嵌套表格案例詳解的詳細(xì)內(nèi)容,更多關(guān)于C# 的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 深入解析C#中的泛型類與泛型接口

    深入解析C#中的泛型類與泛型接口

    這篇文章主要介紹了C#中的泛型類與泛型接口,對(duì)泛型的支持是C#語(yǔ)言的重要特性,需要的朋友可以參考下
    2016-02-02
  • C#實(shí)現(xiàn)多線程的Web代理服務(wù)器實(shí)例

    C#實(shí)現(xiàn)多線程的Web代理服務(wù)器實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)多線程的Web代理服務(wù)器,涉及C#多線程代理服務(wù)器的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • c# 連接池的設(shè)置與使用

    c# 連接池的設(shè)置與使用

    這篇文章主要介紹了c# 連接池的設(shè)置與使用,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2021-01-01
  • C# 元組和值元組的具體使用

    C# 元組和值元組的具體使用

    這篇文章主要介紹了C# 元組和值元組的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • C#多線程的相關(guān)操作講解

    C#多線程的相關(guān)操作講解

    本文詳細(xì)講解了C#多線程的相關(guān)操作,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C#實(shí)現(xiàn)的pdf生成圖片文字水印類實(shí)例

    C#實(shí)現(xiàn)的pdf生成圖片文字水印類實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)的pdf生成圖片文字水印類,結(jié)合完整實(shí)例形式分析了C#針對(duì)pdf文件的創(chuàng)建、添加文字、水印等相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • C#多線程死鎖介紹與案例代碼

    C#多線程死鎖介紹與案例代碼

    這篇文章介紹了C#多線程的死鎖,并使用案例代碼實(shí)現(xiàn)解決方案,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#實(shí)現(xiàn)計(jì)算年齡的簡(jiǎn)單方法匯總

    C#實(shí)現(xiàn)計(jì)算年齡的簡(jiǎn)單方法匯總

    本文給大家分享的是C#代碼實(shí)現(xiàn)的簡(jiǎn)單實(shí)用的給出用戶的出生日期,計(jì)算出用戶的年齡的代碼,另外附上其他網(wǎng)友的方法,算是對(duì)計(jì)算年齡的一次小結(jié),希望大家能夠喜歡。
    2015-05-05
  • C# 文件下載之?dāng)帱c(diǎn)續(xù)傳實(shí)現(xiàn)代碼

    C# 文件下載之?dāng)帱c(diǎn)續(xù)傳實(shí)現(xiàn)代碼

    本篇文章主要介紹了C# 文件下載之?dāng)帱c(diǎn)續(xù)傳實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • WINFORM 窗體間的傳值實(shí)現(xiàn)解析

    WINFORM 窗體間的傳值實(shí)現(xiàn)解析

    這篇文章主要介紹了WINFORM 窗體間的傳值實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09

最新評(píng)論