>  기사  >  백엔드 개발  >  C#을 사용하여 PDF에서 필드 만들기 및 채우기에 대한 자세한 소개(그림 및 텍스트)

C#을 사용하여 PDF에서 필드 만들기 및 채우기에 대한 자세한 소개(그림 및 텍스트)

黄舟
黄舟원래의
2017-03-31 15:05:531901검색

이 글에서는 PDF에서 필드를 생성하고 채우기 위한 C# 관련 지식을 주로 소개합니다. 참고할만한 가치가 매우 높으니 아래 편집기로 살펴보겠습니다.

우리 모두 알고 있듯이 PDF 문서는 일반적으로 편집하거나 수정할 수 없습니다. 사용자가 PDF 문서의 다른 내용에 서명하거나 채워야 하는 경우 PDF 문서에는 편집 가능한 필드가 있어야 합니다. 개발자는 프로그래밍 방식으로 방식으로 PDF 템플릿 필드에 데이터를 채워야 하는 경우가 종종 있습니다. 이때 다음 두 가지 질문을 해결해야 합니다.

  1. PDF에서 편집 가능한 필드를 만드는 방법은 무엇입니까?

  2. 이 필드에 내용을 정확하게 입력하는 방법은 무엇입니까?

여기에서는 이 기능을 구현하기 위해 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 (普通按钮)

도메인 이름
클래스 이름
텍스트 필드 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");

C#을 사용하여 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;

C#을 사용하여 PDF에서 필드 만들기 및 채우기에 대한 자세한 소개(그림 및 텍스트)

텍스트 필드의 입력 내용 지정:

Adobe Acrobat은 개발자가 Javascript를 사용하여 텍스트 필드 입력 콘텐츠의 형식, 유형 등을 미리 정의할 수 있도록 지원합니다. 이 구성 요소는 또한 이러한 유형의 스크립트를 지원하고 이러한 기능을 구현하기 위한 해당 방법을 제공합니다. 다음 표에는 일부 Javascript 및 메소드가 나열되어 있습니다.

날짜C#을 사용하여 PDF에서 필드 만들기 및 채우기에 대한 자세한 소개(그림 및 텍스트)

描述

示例

Javascript

方法

Date

01/31/2008

AFDate_FormatEx("mm/dd/yyyy");
     AFDate_KeystrokeEx("mm/dd/yyyy");

GetDateFormatString("mm/dd/yyyy");
     GetDateKeystrokeString("mm/dd/yyyy");

Date

1/31/2008

AFDate_FormatEx("m/d/yyyy");
     AFDate_KeystrokeEx("m/d/yyyy");

GetDateFormatString("m/d/yyyy");
     GetDateKeystrokeString("m/d/yyyy");

Zip code

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);

Phone number

(123) 456-7890

AFSpecial_Format(2);
     AFSpecial_Keystroke(2);

GetSpecialFormatString(2);
     GetSpecialKeystrokeString(2);

Money

,345.00
       -,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);

Validate

1≤input value≤10

AFRange_Validate(true,1,true,10)

GetRangeValidateString(true,   1, true, 10);

설명

자바스크립트


방법
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");

C#을 사용하여 PDF에서 필드 만들기 및 채우기에 대한 자세한 소개(그림 및 텍스트)GetDateFormatString("m/d/yyyy"); GetDateKeyStrokeString("m/d/yyyy");

우편번호 12345

AFSpecial_Format(0);

AFSpecial_KeyStroke(0);

GetSpecialFormatString(0);

GetSpecialKeyStrokeString(0);C#을 사용하여 PDF에서 필드 만들기 및 채우기에 대한 자세한 소개(그림 및 텍스트)

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.