>  기사  >  백엔드 개발  >  C#에서 PDF 중첩 테이블을 그리는 방법은 무엇입니까? PDF 중첩 테이블을 그리는 단계

C#에서 PDF 중첩 테이블을 그리는 방법은 무엇입니까? PDF 중첩 테이블을 그리는 단계

青灯夜游
青灯夜游앞으로
2018-10-18 14:55:352250검색

PDF 중첩 테이블을 그리는 방법은 무엇입니까? 이 기사에서는 PDF 중첩 테이블을 그리는 단계에 대해 자세히 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

중첩 테이블, 즉 테이블의 특정 셀에 하나 이상의 테이블을 삽입하는 것입니다. 중첩 테이블을 사용하면 내용의 레이아웃을 보다 합리적으로 만들 수 있다는 장점이 있으며, 프로그램 적용에도 편리합니다. 다음 예에서는 C# 프로그래밍을 사용하여 PDF 문서에 중첩 테이블을 삽입하는 방법을 소개합니다.

핵심 요약:

1. 중첩 테이블 삽입

2. 중첩 테이블에 텍스트 삽입

도구 사용

    Spire.PDF 7
참고:

1. 여기에 사용된 버전은 4.9.7입니다. 테스트 후 코드에 포함된 PdfGridCellContentList 클래스와 PdfGridCellContent 클래스는 이 버전 이상에서만 사용할 수 있습니다. 사용시 버전 정보에 주의하시기 바랍니다.

2. 다운로드 및 설치 후 코드 편집 시 Spire.Pdf.dll에 대한 참조 추가에 주의하시기 바랍니다. (dll 파일은 설치 경로 아래의 Bin 폴더에서 얻을 수 있습니다.)

Sample 코드(참조용)

1단계: 문서 만들기

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단계: 첫 번째 테이블 만들기

//创建一个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단계: PDF 문서 만들기 중첩 테이블

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

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

5단계: 중첩 테이블에 텍스트 및 그림 추가

//初始化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단계: 저장 the 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# 비디오 튜토리얼

  • C# 개발 그래픽 튜토리얼


  • bootstrap 비디오 튜토리얼

  • (기사 끝)

위 내용은 C#에서 PDF 중첩 테이블을 그리는 방법은 무엇입니까? PDF 중첩 테이블을 그리는 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제