이 글에서는 PDF에서 필드를 생성하고 채우기 위한 C# 관련 지식을 주로 소개합니다. 참고할만한 가치가 매우 높으니 아래 편집기로 살펴보겠습니다.
우리 모두 알고 있듯이 PDF 문서는 일반적으로 편집하거나 수정할 수 없습니다. 사용자가 PDF 문서의 다른 내용에 서명하거나 채워야 하는 경우 PDF 문서에는 편집 가능한 필드가 있어야 합니다. 개발자는 프로그래밍 방식으로 방식으로 PDF 템플릿 필드에 데이터를 채워야 하는 경우가 종종 있습니다. 이때 다음 두 가지 질문을 해결해야 합니다.
PDF에서 편집 가능한 필드를 만드는 방법은 무엇입니까?
이 필드에 내용을 정확하게 입력하는 방법은 무엇입니까?
여기에서는 이 기능을 구현하기 위해 C# 및 Free Spire.PDF 구성 요소를 사용하는 방법을 소개합니다.
Free Spire.PDF구성 요소 개요
Free Spire.PDF는 .NET 애플리케이션에서 사용할 수 있는 무료 전문 PDF 구성 요소입니다. PDF 문서를 처리하고 읽습니다. PDF 문서 병합/분할, 변환(HTML에서 PDF로, PDF에서 이미지로 등), 인쇄(자동 인쇄 포함), 압축, 주석 추가, 보안 설정(디지털 서명 포함)과 같은 풍부한 PDF 문서 처리 작업을 지원합니다. , 필드 생성 및 채우기, 이미지 삽입 및 추출, 텍스트 추출 및 강조 표시 등 Adobe Acrobat에 의존하지 않으며 중국어를 지원합니다.
설치에 관해서는 공식 홈페이지와 개발자들이 가장 즐겨 사용하는 방법인 NuGet 등 다양한 채널이 있습니다. Visual Studio의 NuGet 패키지 관리자 콘솔에 다음 PowerShell 명령을 입력하고 Enter를 누르면 구성 요소 dll이 자동으로 프로젝트에 참조됩니다.
PM> Install-Package FreeSpire.PDF
필드 생성 및 채우기 구현
1. 도메인 생성
이 구성 요소는 다양한 PDF 도메인을 생성할 수 있는 다양한 해당 클래스를 제공합니다. 유형이 많기 때문에 몇 가지 공통 필드와 구성 요소의 필드에 해당하는 클래스 이름만 나열합니다.
|
클래스 이름 | ||||||||||||||
텍스트 필드 | PdfTextBoxField | ||||||||||||||
서명 필드 | PdfSignatureField | ||||||||||||||
체크박스 | PdfCheckBoxField | 콤보박스 | PdfComboBoxField | ||||||||||||
PdfListBoxField | |||||||||||||||
버튼 | PdfRadioButtonListField(라디오 버튼)PdfButtonField(일반 버튼) |
여기서 소개할 PDF 문서에서 가장 일반적으로 편집 가능한 두 가지 필드인 텍스트 필드와 서명 필드를 선택합니다.
1.1 텍스트 필드
먼저 간단한 텍스트 필드를 만들었습니다. 생성할 때 필드 이름을 지정해야 합니다. 문서에 동시에 여러 텍스트 필드가 있는 경우 프로그래밍 방식으로 필드를 채울 때 내용을 빠르고 정확하게 채울 수 있다는 장점이 있습니다. 도메인의 필드 이름에 따라 지정된 필드입니다. 도메인 이름은 반복되어서는 안 됩니다. 그렇지 않으면 도메인 이름에 해당하는 모든 필드에 내용이 채워지게 됩니다.
//创建PDF文档 PdfDocument pdf = new PdfDocument(); //添加一个新页面 PdfPageBase page = pdf.Pages.Add(PdfPageSize.A4, new PdfMargins()); //添加文本到页面 PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 10f), true); page.Canvas.DrawString("年龄:", font, PdfBrushes.DeepSkyBlue, 10, 50); //创建文本域并指定文本域的名称 PdfTextBoxField textbox = new PdfTextBoxField(page, "Age"); //设置文本域的大小、位置、字体 textbox.Bounds = new RectangleF(40, 50, 50, 12); textbox.Font = font; //添加文本域到文档 pdf.Form.Fields.Add(textbox); //保存文档 pdf.SaveToFile("Fields.pdf");
물론 대부분의 경우 간단한 텍스트 필드를 만드는 것뿐만 아니라 테두리 설정, 배경색, 글꼴 색상, 글꼴 배열. 특정 텍스트 필드의 입력 내용(예: 특정 범위 내의 날짜나 숫자만)까지 입력할 수 있습니다.
형식 설정:
//设置边框 textbox.BorderWidth = 0.75f; textbox.BorderStyle = PdfBorderStyle.Solid; textbox.BorderColor = Color.Black; //设置背景色 textbox.BackColor = Color.Yellow; //设置字体颜色 textbox.ForeColor = Color.Red; //设置字体排列方式 textbox.TextAlignment = PdfTextAlignment.Center;
텍스트 필드의 입력 내용 지정:
Adobe Acrobat은 개발자가 Javascript를 사용하여 텍스트 필드 입력 콘텐츠의 형식, 유형 등을 미리 정의할 수 있도록 지원합니다. 이 구성 요소는 또한 이러한 유형의 스크립트를 지원하고 이러한 기능을 구현하기 위한 해당 방법을 제공합니다. 다음 표에는 일부 Javascript 및 메소드가 나열되어 있습니다.
| 예 | 자바스크립트 |
방법 |
||||||||||||||||||||||||||||||||
2008년 1월 31일 | AFDate_FormatEx("mm/dd/yyyy"); AFDate_KeyStrokeEx("mm/dd/yyyy"); | GetDateFormatString("mm/dd/yyyy"); GetDateKeyStrokeString("mm/dd/yyyy"); | |||||||||||||||||||||||||||||||||
날짜 | 2008년 1월 31일 |
AFDate_FormatEx("m/d/yyyy"); AFDate_KeyStrokeEx("m/d/yyyy"); |
GetDateFormatString("m/d/yyyy"); GetDateKeyStrokeString("m/d/yyyy"); | ||||||||||||||||||||||||||||||||
우편번호 | 12345
|
AFSpecial_Format(0);
AFSpecial_KeyStroke(0); |
GetSpecialFormatString(0); GetSpecialKeyStrokeString(0); |
||||||||||||||||||||||||||||||||
Zip+4 | 12345-1234 | AFSpecial_Format(1); AFSpecial_KeyStroke(1); | GetSpecialFormatString(1); GetSpecialKeyStrokeString(1); | ||||||||||||||||||||||||||||||||
전화번호 | (123) 456-7890 | AFSpecial_Format(2); AFSpecial_KeyStroke(2); | GetSpecialFormatString(2); GetSpecialKeyStrokeString(2); | ||||||||||||||||||||||||||||||||
돈 | $12,345.00 -$12,345.00 | AFNumber_Format(2, 0, 0, 0, "$", true); AFNumber_KeyStroke(2, 0, 0, 0, "$", true); | GetNumberFormatString(2, 0, 0, 0, "$", true); GetNumberKeyStrokeString(2, 0, 0, 0, "$", true); | ||||||||||||||||||||||||||||||||
확인 | 1≤입력값≤10 | AFRange_Validate(true,1,true,10) | GetRangeValidateString(true, 1, true , 10); |
//指定输入数据在1-100之间 string js = PdfJavascript.GetRangeValidateString(true, 1, true, 100); PdfJavascriptAction jsAction = new PdfJavascriptAction(js); textbox.Actions.Validate = jsAction;1.2 서명 필드서명 필드를 만드는 것은 텍스트 필드와 유사합니다. 필드의 위치 등속성. 여기서는 자세히 다루지 않겠습니다. rreee2. 필드 채우기필드를 채울 때는 다음을 수행해야 합니다. 문서의 첫 번째 필드에서 모든 정보를 가져온 다음 지정된 필드를 하나씩 채웁니다. 동일한 유형의 도메인이 여러 개인 경우 도메인 이름을 사용하여 빠르게 채울 수 있습니다. 아아앙
위 내용은 C#을 사용하여 PDF에서 필드 만들기 및 채우기에 대한 자세한 소개(그림 및 텍스트)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!