ホームページ >バックエンド開発 >C#.Net チュートリアル >C# で PDF のネストされたテーブルを描画するにはどうすればよいですか? PDF ネストされたテーブルを描画する手順
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 サイトの他の関連記事を参照してください。