![C#을 사용하여 PDF 문서 만들기](images/Create-PDF-Documents-using-C.jpg#center)
PDF는 플랫폼에 독립적인 문서 형식으로, 다양한 운영 체제 또는 컴퓨터에서 콘텐츠의 형식과 레이아웃을 일관되게 유지합니다. 이것이 다양한 조직에서 인보이스, 영수증, 보고서 및 기타 비즈니스 문서를 동적으로 생성하기 위해 PDF 형식을 사용하는 이유입니다. .NET용 Aspose.PDF는 .NET 응용 프로그램에서 PDF 자동화를 구현하는 데 도움이 되는 PDF 라이브러리입니다. C# 또는 VB.NET을 사용하여 프로그래밍 방식으로 PDF 파일을 생성, 편집, 구문 분석 및 변환할 수 있습니다. 이 기사에서는 PDF 생성 기능을 다루고 C#을 사용하여 처음부터 PDF 파일을 만드는 방법을 보여줍니다.
간단한 PDF 문서를 만든 다음 문서에 다른 요소를 추가하는 작업을 진행하겠습니다. 다음은 이 기사에서 시연할 기능 목록입니다.
- C#을 사용하여 PDF 문서 만들기
- C#을 사용하여 PDF에 텍스트 서식 적용
- C#을 사용하여 여러 열 PDF 만들기
- C#을 사용하여 PDF에 이미지 삽입
- C#을 사용하여 PDF에 표 만들기
- C#을 사용하여 PDF에 하이퍼링크 추가
- C#을 사용하여 PDF에 책갈피 추가
C# PDF 라이브러리 - 설치
NuGet 패키지 관리자를 사용하거나 다음 명령을 사용하여 패키지 관리자 콘솔을 사용하여 .NET용 Aspose.PDF를 설치할 수 있습니다. 또는 다운로드 섹션에서 다운로드할 수 있습니다.
Install-Package Aspose.Pdf
C#을 사용하여 PDF 파일 만들기
먼저 텍스트 조각이 포함된 PDF 문서를 생성해 보겠습니다. 다음은 처음부터 간단한 PDF 문서를 만드는 단계입니다.
- Document 클래스의 인스턴스를 만듭니다.
- 문서의 페이지 컬렉션에 새 페이지를 추가합니다.
- PDF의 단락에 새 TextFragment를 추가합니다.
- Document.Save() 메서드를 사용하여 PDF 파일을 만듭니다.
다음 코드 샘플은 C#을 사용하여 PDF 파일을 만드는 방법을 보여줍니다.
// PDF 문서 로드
Document document = new Document();
// 페이지 추가
Aspose.Pdf.Page page = document.Pages.Add();
// 새 페이지에 텍스트 추가
page.Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Hello World! This is a new PDF generated by Aspose.PDF for .NET."));
// PDF 문서 저장
document.Save("Generated-PDF.pdf");
![C#을 사용하여 PDF 만들기](images/Create-PDF-using-C.jpg#center)
C#을 사용하여 PDF에 텍스트 서식 적용
이제 PDF 문서에 텍스트를 추가하고 다양한 서식 옵션을 사용하는 방법을 알아보겠습니다. 다음은 이 작업을 수행하는 단계입니다.
- Document 클래스를 사용하여 새 PDF 문서를 만들거나 기존 문서를 로드합니다.
- 텍스트를 배치할 페이지에 액세스합니다.
- TextFragment의 개체를 만들고 위치, 글꼴, 색상, 크기 등과 같은 텍스트 및 기타 서식 옵션을 설정합니다.
- TextBuilder 클래스를 사용하여 페이지에 TextFragment 개체를 추가합니다.
- Document.Save() 메서드를 사용하여 PDF 문서를 만듭니다.
다음 코드 샘플은 C#을 사용하여 PDF 파일에 서식 있는 텍스트를 추가하는 방법을 보여줍니다.
// PDF 문서 로드
Document document = new Document();
// 페이지 추가
Aspose.Pdf.Page page = document.Pages.Add();
// 텍스트 조각 만들기
TextFragment textFragment = new TextFragment("Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.Position = new Position(100, 700);
TextFragment textFragment1 = new TextFragment("Text 2: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment1.Position = new Position(100, 600);
// 텍스트 속성 설정
textFragment.TextState.FontSize = 12;
textFragment.TextState.Font = FontRepository.FindFont("TimesNewRoman");
textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray);
textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
textFragment1.TextState.DrawTextRectangleBorder = true;
textFragment1.TextState.Underline = true;
textFragment1.TextState.StrikeOut = true;
// 패턴 색상 공간으로 새 색상 만들기
textFragment1.TextState.ForegroundColor = new Aspose.Pdf.Color()
{
PatternColorSpace = new Aspose.Pdf.Drawing.GradientAxialShading(Color.Red, Color.Blue)
};
// TextBuilder 객체 생성
TextBuilder textBuilder = new TextBuilder(page);
// PDF 페이지에 텍스트 조각 추가
textBuilder.AppendText(textFragment);
textBuilder.AppendText(textFragment1);
// PDF 문서 저장
document.Save("Generated-PDF.pdf");
![C#을 사용하여 서식이 지정된 텍스트로 pdf 만들기](images/Create-PDF-with-Text-Formatting-C.jpg#center)
C#을 사용하여 다중 열 PDF 만들기
우리는 종종 신문, 연구 기사 및 기타 유형의 문서에서 텍스트가 두 개 이상의 열로 분할되는 것을 봅니다. 이 텍스트 분할을 달성하기 위해 .NET용 Aspose.PDF는 다중 열 PDF 생성을 허용합니다. 다음은 다중 열 PDF를 만드는 단계입니다.
- Document 클래스를 사용하여 새 PDF 문서를 만듭니다.
- Document.Pages.Add() 메서드를 사용하여 문서에 새 Page를 추가합니다.
- Document.PageInfo.Margin 속성을 사용하여 페이지 여백을 설정합니다.
- 새 FloatingBox 개체를 만들고 ColumnCount, ColumnSpacing 및 ColumnWidths 속성을 설정합니다.
- 새 TextFragment를 만들고 텍스트를 설정합니다.
- FloatingBox.Paragraphs.Add()를 사용하여 TextFragment를 FloatingBox에 추가합니다.
- Page.Paragraphs.Add()를 사용하여 페이지에 FloatingBox를 추가합니다.
- Document.Save() 메서드를 사용하여 PDF를 저장합니다.
다음 코드 샘플은 C#을 사용하여 여러 열로 구성된 PDF를 만드는 방법을 보여줍니다.
// PDF 문서 로드
Document document = new Document();
// PDF 파일의 왼쪽 여백 정보 지정
document.PageInfo.Margin.Left = 40;
// PDF 파일의 오른쪽 여백 정보 지정
document.PageInfo.Margin.Right = 40;
Aspose.Pdf.Page page = document.Pages.Add();
// 라인 추가
Aspose.Pdf.Drawing.Graph graph1 = new Aspose.Pdf.Drawing.Graph(500, 2);
// 섹션 개체의 paraphraphs 컬렉션에 라인 추가
page.Paragraphs.Add(graph1);
// 선의 좌표 지정
float[] posArr = new float[] { 1, 2, 500, 2 };
Aspose.Pdf.Drawing.Line l1 = new Aspose.Pdf.Drawing.Line(posArr);
graph1.Shapes.Add(l1);
// 제목 추가
// html 태그가 포함된 텍스트로 문자열 변수 생성
string s = "<font face=\"Times New Roman\" size=4>" +
"<strong> How to Steer Clear of money scams</<strong> "
+ "</font>";
// HTML 텍스트가 포함된 텍스트 단락 만들기
HtmlFragment heading_text = new HtmlFragment(s);
page.Paragraphs.Add(heading_text);
Aspose.Pdf.FloatingBox box = new Aspose.Pdf.FloatingBox();
// 섹션에 4개의 열 추가
box.ColumnInfo.ColumnCount = 2;
// 열 사이의 간격 설정
box.ColumnInfo.ColumnSpacing = "5";
// 열 너비 설정
box.ColumnInfo.ColumnWidths = "250 250";
// 텍스트 만들기
TextFragment text2 = new TextFragment(@"Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales. Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales. Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales. Sed augue tortor, sodales id, luctus et, pulvinar ut, eros. Suspendisse vel dolor. Sed quam. Curabitur ut massa vitae eros euismod aliquam. Pellentesque sit amet elit. Vestibulum interdum pellentesque augue. Cras mollis arcu sit amet purus. Donec augue. Nam mollis tortor a elit. Nulla viverra nisl vel mauris. Vivamus sapien. nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et,nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim Nam justo lorem, aliquam luctus, sodales et, semper sed, enim nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.nAenean posuere ante ut neque. Morbi sollicitudin congue felis. Praesent turpis diam, iaculis sed, pharetra non, mollis ac, mauris. Phasellus nisi ipsum, pretium vitae, tempor sed, molestie eu, dui. Duis lacus purus, tristique ut, iaculis cursus, tincidunt vitae, risus. Sed commodo. *** sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed urna. . Duis convallis ultrices nisi. Maecenas non ligula. Nunc nibh est, tincidunt in, placerat sit amet, vestibulum a, nulla. Praesent porttitor turpis eleifend ante. Morbi sodales.");
// 문서에 텍스트 추가
box.Paragraphs.Add(text2);
page.Paragraphs.Add(box);
// PDF 문서 저장
document.Save("Generated-PDF.pdf");
![C#을 사용하여 다중 열 PDF 만들기](images/Create-multicolumn-PDF-using-C.jpg#center)
C#을 사용하여 PDF에 이미지 삽입
다음 단계는 PDF 문서에 이미지를 삽입하는 방법을 보여줍니다.
- Document 클래스를 사용하여 새 PDF 문서를 만들거나 기존 문서를 엽니다.
- 이미지를 삽입할 페이지를 가져옵니다.
- 페이지의 이미지에 이미지를 추가합니다.
- GSave, ConcatenateMatrix 및 Do 연산자를 사용하여 페이지에 이미지를 배치합니다.
- Document.Save() 메서드를 사용하여 PDF 문서를 저장합니다.
다음 코드 샘플은 C#을 사용하여 PDF에 이미지를 삽입하는 방법을 보여줍니다.
// PDF 문서 로드
Document document = new Document();
// 페이지 추가
Aspose.Pdf.Page page = document.Pages.Add();
// 좌표 설정
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 250;
int upperRightY = 250;
// 스트림에 이미지 로드
FileStream imageStream = new FileStream("aspose_pdf.png", FileMode.Open);
// 페이지 리소스의 이미지 컬렉션에 이미지 추가
page.Resources.Images.Add(imageStream);
// GSave 연산자 사용: 이 연산자는 현재 그래픽 상태를 저장합니다.
page.Contents.Add(new Aspose.Pdf.Operators.GSave());
// Rectangle 및 Matrix 객체 만들기
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
//행렬 행렬 = new Matrix(new double[] { 직사각형.URX - 직사각형.LLX, 0, 0, 직사각형.URY - 직사각형.LLY, 직사각형.LLX, 직사각형.LLY });
Matrix matrix = new Matrix(new double[] { 200, 0, 0, 200, 200, 600 });
// ConcatenateMatrix(행렬 연결) 연산자 사용: 이미지를 배치하는 방법을 정의합니다.
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];
// Do 연산자 사용: 이 연산자는 이미지를 그립니다.
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));
// GRestore 연산자 사용: 이 연산자는 그래픽 상태를 복원합니다.
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());
// PDF 문서 저장
document.Save("Generated-PDF.pdf");
![C#을 사용하여 PDF에 이미지 삽입](images/Create-PDF-with-Image-C.jpg#center)
C#을 사용하여 PDF 파일에 테이블 만들기
표는 행과 열의 형태로 데이터를 구성하고 정보의 빠른 개요를 제공하는 데 사용됩니다. PDF 문서에 표를 생성하려면 다음 단계를 따르세요.
- Document 클래스의 객체를 생성하여 새로운 PDF를 생성하거나 기존 PDF를 불러옵니다.
- 테이블을 생성하려는 페이지에 액세스합니다.
- Table 클래스의 인스턴스를 생성합니다.
- BorderInfo 클래스를 사용하여 표의 테두리와 셀의 테두리를 설정합니다.
- 새 Row를 만들어 Table.Rows 컬렉션에 추가합니다.
- Row.Cells 컬렉션에 셀을 추가합니다.
- Page.Paragraphs.Add() 메서드를 사용하여 페이지에 테이블을 추가합니다.
- Document.Save() 메서드를 사용하여 PDF 문서를 저장합니다.
다음 코드 샘플은 C#을 사용하여 PDF로 테이블을 만드는 방법을 보여줍니다.
// PDF 문서 로드
Document document = new Document();
// 페이지 추가
Aspose.Pdf.Page page = document.Pages.Add();
// 테이블의 새 인스턴스를 초기화합니다.
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
// 테이블 테두리 색상을 LightGray로 설정
table.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .5f, Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray));
// 표 셀의 테두리 설정
table.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .5f, Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray));
// 10개의 행을 추가하는 루프 만들기
for (int row_count = 1; row_count < 10; row_count++)
{
// 테이블에 행 추가
Aspose.Pdf.Row row = table.Rows.Add();
// 표 셀 추가
row.Cells.Add("Column (" + row_count + ", 1)");
row.Cells.Add("Column (" + row_count + ", 2)");
row.Cells.Add("Column (" + row_count + ", 3)");
}
// 페이지에 테이블 추가
page.Paragraphs.Add(table);
// PDF 문서 저장
document.Save("Generated-PDF.pdf");
![C#을 사용하여 pdf로 테이블 만들기](images/Create-PDF-with-Table-C.jpg#center)
C#을 사용하여 PDF에 주석 추가
주석은 PDF 문서의 내용에 대한 추가 정보를 제공하는 데 사용되는 그래픽 개체입니다. PDF 형식은 텍스트, 하이라이트, 라인, 메모 등 다양한 주석을 지원합니다. 다음은 PDF 문서에 주석을 추가하는 단계입니다.
- 새 PDF 문서를 만들거나 기존 문서를 로드합니다.
- 주석을 추가할 페이지를 선택합니다.
- TextAnnotation, LineAnnotation, HighlightAnnotation 등과 같은 새 주석을 만듭니다.
- 주석의 속성을 설정합니다.
- Page.Annotations 컬렉션에 주석을 추가합니다.
- Document.Save() 메서드를 사용하여 PDF를 생성합니다.
다음 코드 샘플은 C#을 사용하여 PDF에 주석을 추가하는 방법을 보여줍니다.
// PDF 문서 로드
Document document = new Document();
// 페이지 추가
Aspose.Pdf.Page page = document.Pages.Add();
// 주석 만들기
TextAnnotation textAnnotation = new TextAnnotation(page, new Aspose.Pdf.Rectangle(200, 400, 400, 600));
textAnnotation.Title = "Sample Annotation Title";
textAnnotation.Subject = "Sample Subject";
textAnnotation.State = AnnotationState.Accepted;
textAnnotation.Contents = "Sample contents for the annotation";
textAnnotation.Open = true;
textAnnotation.Icon = TextIcon.Key;
Border border = new Border(textAnnotation);
border.Width = 5;
border.Dash = new Dash(1, 1);
textAnnotation.Border = border;
textAnnotation.Rect = new Aspose.Pdf.Rectangle(200, 400, 400, 600);
// 페이지의 주석 컬렉션에 주석 추가
page.Annotations.Add(textAnnotation);
// PDF 문서 저장
document.Save("Generated-PDF.pdf");
![C#을 사용하여 PDF에 주석 추가](images/Create-PDF-with-annotation-C.jpg#center)
C#을 사용하여 PDF 파일에 하이퍼링크 추가
링크 주석을 사용하여 PDF 문서에 하이퍼링크를 추가할 수도 있습니다. 다음은 이 작업을 수행하는 단계입니다.
- 새 Document 개체를 만듭니다.
- 하이퍼링크를 추가할 페이지에 액세스합니다.
- LinkAnnotation 클래스의 인스턴스를 만듭니다.
- 액션 URI를 포함한 LinkAnnotation 객체의 속성을 설정합니다.
- Page.Annotations 컬렉션에 대한 링크를 추가합니다.
- FreeTextAnnotation 클래스를 사용하여 하이퍼링크의 텍스트를 설정합니다.
- Page.Annotations 컬렉션에 FreeTextAnnotation 개체를 추가합니다.
- Document.Save() 메서드를 사용하여 PDF 문서를 만듭니다.
다음 코드 샘플은 C#을 사용하여 PDF 문서에 하이퍼링크를 추가하는 방법을 보여줍니다.
// PDF 문서 로드
Document document = new Document();
// 페이지 추가
Aspose.Pdf.Page page = document.Pages.Add();
// 링크 주석 객체 생성
LinkAnnotation link = new LinkAnnotation(page, new Aspose.Pdf.Rectangle(100, 800, 250, 750));
// LinkAnnotation에 대한 테두리 개체 만들기
Border border = new Border(link);
// 테두리 너비 값을 0으로 설정
border.Width = 1;
// LinkAnnotation의 테두리 설정
link.Border = border;
// 링크 유형을 원격 URI로 지정
link.Action = new GoToURIAction("www.aspose.com");
// PDF 파일 첫 페이지의 주석 모음에 링크 주석 추가
page.Annotations.Add(link);
// 링크 텍스트에 대한 자유 텍스트 주석 생성
FreeTextAnnotation textAnnotation = new FreeTextAnnotation(document.Pages[1], new Aspose.Pdf.Rectangle(100, 800, 250, 750), new DefaultAppearance(Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman"), 10, System.Drawing.Color.Blue));
// 자유 텍스트로 추가할 문자열
textAnnotation.Contents = "Link to Aspose website";
// 자유 텍스트 주석의 테두리 설정
textAnnotation.Border = border;
// 문서 첫 페이지의 주석 모음에 FreeText 주석 추가
page.Annotations.Add(textAnnotation);
// PDF 문서 저장
document.Save("Generated-PDF.pdf");
![C#을 사용하여 PDF에 하이퍼링크 추가](images/Create-PDF-with-HyperlinkC.jpg#center)
C#을 사용하여 PDF에 책갈피 만들기
책갈피는 PDF 문서의 특정 섹션이나 페이지를 탐색하는 데 사용됩니다. .NET용 Aspose.PDF를 사용하면 책갈피를 추가하거나 조작할 수 있습니다. 다음은 PDF 문서에서 책갈피를 만들고 추가하는 단계입니다.
- PDF 문서를 만들거나 기존 문서를 엽니다.
- OutlineItemCollection 클래스를 사용하여 새 책갈피 개체를 만듭니다.
- Document.Outlines 컬렉션에 책갈피를 추가합니다.
- Document.Save() 메서드를 사용하여 PDF 문서를 만듭니다.
다음 코드 샘플은 C#을 사용하여 책갈피가 있는 PDF 문서를 만드는 방법을 보여줍니다.
// PDF 문서 로드
Document document = new Document();
// 페이지 추가
Aspose.Pdf.Page page = document.Pages.Add();
// 상위 책갈피 개체 만들기
OutlineItemCollection pdfOutline = new OutlineItemCollection(document.Outlines);
pdfOutline.Title = "Parent Outline";
pdfOutline.Italic = true;
pdfOutline.Bold = true;
// 자식 책갈피 개체 만들기
OutlineItemCollection pdfChildOutline = new OutlineItemCollection(document.Outlines);
pdfChildOutline.Title = "Child Outline";
pdfChildOutline.Italic = true;
pdfChildOutline.Bold = true;
// 상위 책갈피 컬렉션에 하위 책갈피 추가
pdfOutline.Add(pdfChildOutline);
// 문서의 개요 컬렉션에 상위 책갈피를 추가합니다.
document.Outlines.Add(pdfOutline);
// PDF 문서 저장
document.Save("Generated-PDF.pdf");
![C#을 사용하여 PDF에 책갈피 만들기](images/Create-PDF-with-Bookmarks-C.jpg#center)
결론
이 기사에서는 C#을 사용하여 PDF 파일을 처음부터 만드는 방법을 보여주었습니다. 단계별 가이드 및 코드 샘플은 프로그래밍 방식으로 PDF 파일에 텍스트, 이미지, 표, 주석, 하이퍼링크 및 책갈피를 추가하는 방법을 보여줍니다. 문서를 사용하여 Aspose의 .NET PDF 라이브러리의 다른 기능을 탐색할 수 있습니다.