ホームページ  >  記事  >  バックエンド開発  >  C# で PDF のネストされたテーブルを描画するにはどうすればよいですか? PDF ネストされたテーブルを描画する手順

C# で PDF のネストされたテーブルを描画するにはどうすればよいですか? PDF ネストされたテーブルを描画する手順

青灯夜游
青灯夜游転載
2018-10-18 14:55:352250ブラウズ

PDF ネストされたテーブルを描画するにはどうすればよいですか?この記事では、PDF のネストされたテーブルを描画する手順を詳しく紹介します。一定の参考値があるので、困っている友達は参考にしていただければ幸いです。

ネストされたテーブル、つまり、テーブル内の特定のセルに 1 つ以上のテーブルを挿入します。ネストされたテーブルを使用する利点は、コンテンツのレイアウトをより合理的にできることと、プログラムにとっても便利であることです。応用。次の例では、C# プログラミングを使用して、入れ子になったテーブルを PDF ドキュメントに挿入する方法を紹介します。

キーポイントのまとめ:

1. ネストしたテーブルに挿入

2. ネストしたテーブルにテキストを挿入

#3. ネストしたテーブルにテキストを挿入します。ネストしたテーブルへの画像の挿入

ツールの使用

  • Spire.PDF 4.9.7

##注:

1. ここで使用されるバージョンは 4.9.7 です。テスト後、コードに含まれる PdfGridCellContentList クラスと PdfGridCellContent クラスは、このバージョン以降を使用する場合にのみ使用できます。ご利用の際はバージョン情報にご注意ください。

2. ダウンロードしてインストールした後、コードを編集するときは、Spire.Pdf.dll への参照を追加することに注意してください (dll ファイルは、インストール パスの下の Bin フォルダーで取得できます)

サンプル コード (参考用)

ステップ 1: ドキュメントの作成

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

ステップ 2: フォント、ブラシ、

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: 最初のテーブルを作成します

//创建一个PDF表格,并添加两行
PdfGrid grid = new PdfGrid(); 
PdfGridRow row1 = grid.Rows.Add();
PdfGridRow row2 = grid.Rows.Add();

//设置表格的单元格内容和边框之间的上、下边距
grid.Style.CellPadding.Top = 5f;
grid.Style.CellPadding.Bottom = 5f;

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

ステップ 4: ネストされたテーブルを作成します

//创建一个一行两列的嵌套表格
PdfGrid embedGrid1 = new PdfGrid();
PdfGridRow newRow = embedGrid1.Rows.Add();
embedGrid1.Columns.Add(2);

//设置嵌套表格的列宽
embedGrid1.Columns[0].Width = 50f;
embedGrid1.Columns[1].Width = 60f;

ステップ 5: PDF ドキュメントにテキストと画像を追加しますネストされたテーブル

//初始化SizeF类,设置图片大小
SizeF imageSize = new SizeF(45, 35);

//实例化PdfGridCellContentList、PdfGridCellContent类,加载需要添加到嵌套表格的图片
PdfGridCellContentList contentList = new PdfGridCellContentList();
PdfGridCellContent content = new PdfGridCellContent();
content.Image = PdfImage.FromFile("1.png");
content.ImageSize = imageSize;
contentList.List.Add(content);
//实例化PdfStringFormat、PdfTrueTypeFont类,设置单元格文字对齐方式
PdfStringFormat stringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);

//添加文本内容及图片到嵌套表格
newRow.Cells[0].Value = "Norway";
newRow.Cells[0].StringFormat = stringFormat;
newRow.Cells[1].Value = contentList; //将图片添加到嵌套表格的第二个单元格
newRow.Cells[1].StringFormat = stringFormat;

ステップ 6: 最初のテーブルにデータを追加します

//设置第一个表格的单元格的值和格式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; //将嵌套表格添加到第一个表格的第二行第二个单元格
row2.Cells[1].StringFormat = stringFormat;

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

ステップ 7: ページ上の指定された位置にテーブルを描画します

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

ステップ 8: document

pdf.SaveToFile("result.pdf");

コードが完成したら、プログラムをデバッグし、ドキュメントを生成します。描画されたテーブルは次のとおりです:

すべてのコード:

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)
        {
            //实例化PdfDocument类,并添加页面到新建的文档
            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);

            //创建一个PDF表格,并添加两行
            PdfGrid grid = new PdfGrid(); 
            PdfGridRow row1 = grid.Rows.Add();
            PdfGridRow row2 = grid.Rows.Add();

            //设置表格的单元格内容和边框之间的上、下边距
            grid.Style.CellPadding.Top = 5f;
            grid.Style.CellPadding.Bottom = 5f;

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

            //创建一个一行两列的嵌套表格
            PdfGrid embedGrid1 = new PdfGrid();
            PdfGridRow newRow = embedGrid1.Rows.Add();
            embedGrid1.Columns.Add(2);

            //设置嵌套表格的列宽
            embedGrid1.Columns[0].Width = 50f;
            embedGrid1.Columns[1].Width = 60f;

            //初始化SizeF类,设置图片大小
            SizeF imageSize = new SizeF(45, 35);

            //实例化PdfGridCellContentList、PdfGridCellContent类,加载需要添加到嵌套表格的图片
            PdfGridCellContentList contentList = new PdfGridCellContentList();
            PdfGridCellContent content = new PdfGridCellContent();
            content.Image = PdfImage.FromFile("1.png");
            content.ImageSize = imageSize;
            contentList.List.Add(content);
            //实例化PdfStringFormat、PdfTrueTypeFont类,设置单元格文字对齐方式
            PdfStringFormat stringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);         

            //添加文本内容及图片到嵌套表格
            newRow.Cells[0].Value = "Norway";
            newRow.Cells[0].StringFormat = stringFormat;
            newRow.Cells[1].Value = contentList; //将图片添加到嵌套表格的第二个单元格
            newRow.Cells[1].StringFormat = stringFormat;           

            //设置第一个表格的单元格的值和格式
            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; //将嵌套表格添加到第一个表格的第二行第二个单元格
            row2.Cells[1].StringFormat = stringFormat;

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

            //将表格绘制到页面指定位置
            grid.Draw(page, new PointF(30f, 90f));

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

上記は、次の C# です。 PDF ネストされたテーブルの内容全体を描画します。

その他の関連チュートリアルについては、次のサイトをご覧ください:

(この記事の終わり)

以上がC# で PDF のネストされたテーブルを描画するにはどうすればよいですか? PDF ネストされたテーブルを描画する手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。