PDF 양식 채우기

PDF 양식은 데이터와 정보를 수집하는 데 자주 사용됩니다. 예를 들어, 설문지는 일반적으로 설문조사 목적으로 응답을 수집하도록 설계되었습니다. 우리는 오늘날의 디지털 세계에서 채울 수 있는 다양한 PDF 양식과 상호 작용합니다. PDF 양식의 방대한 범위와 중요성을 고려하여 Aspose.PDF for .NET API는 PDF 양식을 사용할 수 있는 많은 기능을 지원합니다. 이 문서에서 C# 언어를 사용하여 다음 사용 사례를 살펴보겠습니다.

C#을 사용하여 채울 수 있는 PDF 양식 만들기

.NET API용 Aspose.PDF를 사용하여 채울 수 있는 PDF 양식을 처음부터 만들 수 있습니다. 여기서는 두 개의 TextBoxField 인스턴스와 RadioButton을 추가하는 기본 예를 살펴보겠습니다. 그러나 TextBoxField 중 하나는 한 줄이고 다른 하나는 여러 줄입니다. 다음은 PDF 문서에서 양식을 만드는 단계입니다.

  1. Document 클래스의 인스턴스 생성
  2. PDF 문서에 빈 페이지 추가
  3. 양식에 TextBox 필드 추가
  4. 글꼴, 테두리 등을 포함한 필드의 다른 속성을 설정합니다.
  5. 양식에 라디오 버튼 추가
  6. PDF 문서 저장

다음 코드 조각은 C#을 사용하여 PDF에서 양식을 만드는 방법을 보여줍니다.

Document pdfdoc = new Document();
Page page = pdfdoc.Pages.Add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 740, 440, 770));
nameBox.PartialName = "nameBox1";
nameBox.DefaultAppearance.FontSize = 10;
nameBox.Multiline = true;
Border nameBorder = new Border(nameBox);
nameBorder.Width = 1;
nameBox.Border = nameBorder;
nameBox.Characteristics.Border = System.Drawing.Color.Black;
nameBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
TextBoxField mrnBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 718, 440, 738));
mrnBox.PartialName = "Box1";
mrnBox.DefaultAppearance.FontSize = 10;
Border mrnBorder = new Border(mrnBox);
mrnBorder.Width = 1;
mrnBox.Border = mrnBorder;
mrnBox.Characteristics.Border = System.Drawing.Color.Black;
mrnBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
// PDF 문서의 첫 페이지에 양식 필드 추가            
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);

//PDF의 특정 위치 좌표에 라디오 버튼 추가
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//여기에서 위치 설정
table.Left = 200;
table.Top = 300;
table.ColumnWidths = "120";
page.Paragraphs.Add(table);
Aspose.Pdf.Row r1 = table.Rows.Add();
Aspose.Pdf.Row r2 = table.Rows.Add();
Aspose.Pdf.Cell c1 = r1.Cells.Add();
Aspose.Pdf.Cell c2 = r2.Cells.Add();
RadioButtonField rf = new RadioButtonField(page);
rf.PartialName = "radio";
pdfdoc.Form.Add(rf, 1);
RadioButtonOptionField opt1 = new RadioButtonOptionField();
RadioButtonOptionField opt2 = new RadioButtonOptionField();
opt1.OptionName = "Yes";
opt2.OptionName = "No";
opt1.Width = 15;
opt1.Height = 15;
opt2.Width = 15;
opt2.Height = 15;
rf.Add(opt1);
rf.Add(opt2);
opt1.Border = new Border(opt1);
opt1.Border.Width = 1;
opt1.Border.Style = BorderStyle.Solid;
opt1.Characteristics.Border = System.Drawing.Color.Black;
opt1.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt1.Caption = new TextFragment("Yes");
opt2.Border = new Border(opt1);
opt2.Border.Width = 1;
opt2.Border.Style = BorderStyle.Solid;
opt2.Characteristics.Border = System.Drawing.Color.Black;
opt2.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt2.Caption = new TextFragment("No");
c1.Paragraphs.Add(opt1);
c2.Paragraphs.Add(opt2);
pdfdoc.Save(dataDir + "Fillable_PDF_Form.pdf");

아래 스크린샷은 위의 코드 조각에 지정된 양식 필드가 포함된 출력 PDF 문서를 보여줍니다.

PDF 양식

C#을 사용하여 기존 PDF의 양식 필드 채우기, 수정 또는 삭제

C#을 사용하여 PDF 문서에서 양식을 만드는 방법을 살펴보았듯이 Aspose.PDF for .NET API는 기존 PDF 양식 작업도 지원합니다. API의 다음 기능에 대해 논의해 보겠습니다.

i) C#을 사용하여 기존 PDF 파일의 양식 필드 채우기

PDF 양식을 채우기 위해 위의 예에서 만든 PDF 문서를 계속 사용합니다. 다음은 기존 PDF 문서의 필드를 채우는 단계입니다.

  1. 원본 PDF 문서 로드
  2. 텍스트 상자 필드 가져오기 및 값 채우기
  3. 라디오 버튼 필드를 가져오고 그룹에서 옵션을 선택합니다.
  4. 채워진 PDF 양식 저장

다음 코드 조각은 다음 단계를 따르고 C#을 사용하여 PDF 문서의 필드를 채우는 방법을 설명합니다.

// 문서 열기
Document pdfDocument = new Document(dataDir + "Fillable_PDF_Form.pdf");

// 필드 가져오기
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// 양식 필드 값 채우기
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";

// 라디오 버튼 필드 가져오기
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// 그룹에서 라디오 버튼의 인덱스 지정
radioField.Selected = 1;

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// 업데이트된 문서 저장
pdfDocument.Save(dataDir);

아래 스크린샷은 C#을 사용하여 PDF 양식의 채워진 양식 필드를 보여줍니다.

채울 수 있는 PDF

ii) C#을 사용하여 PDF 문서의 양식 필드 수정

때로는 PDF 양식의 모든 필드에서 값을 변경해야 할 수도 있습니다. 양식 필드의 값을 변경하는 것은 아래 단계를 통해 달성할 수 있는 기본 사용 사례입니다.

  1. PDF 양식 로드
  2. 이름을 사용하여 특정 필드 가져오기
  3. 필드 값 수정
  4. 업데이트된 PDF 문서 저장

다음 코드 조각은 PDF 문서의 양식 필드에서 값을 변경하는 방법을 보여줍니다.

// 문서 열기
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// 필드 가져오기
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// 필드 값 수정
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// 업데이트된 문서 저장
pdfDocument.Save(dataDir);

여기서 주목할 점은 폼의 값을 변경할 수 있을 뿐만 아니라 다른 속성도 업데이트할 수 있다는 점입니다. 예를 들어, 필드는 위의 코드 조각에서 읽기 전용으로 표시되었습니다.

iii) C#을 사용하여 기존 PDF 파일에서 양식 필드 삭제

우리는 이미 PDF 양식 필드를 추가하고 채우는 방법을 배웠습니다. 이제 양식 필드를 제거하는 방법을 살펴보겠습니다. 다음 단계를 따라야 합니다.

  1. PDF 문서 로드
  2. 양식 필드의 이름으로 Delete 메서드를 호출합니다.
  3. PDF 문서 저장

다음 코드 조각은 C#을 사용하여 PDF 파일에서 양식 필드를 삭제하는 방법을 보여줍니다.

// 문서 열기
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// 이름으로 특정 필드 삭제
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// 수정된 문서 저장
pdfDocument.Save(dataDir);

C#을 사용하여 PDF 양식의 확장된 권한 유지

PDF 양식에는 양식 조작 중에 보존하려는 확장 기능이라고도 하는 확장된 권한이 있을 수 있습니다. 아래 단계를 수행하는 동안 점진적으로 저장해야 합니다.

  • Stream에서 PDF 문서 로드
  • 양식 작업
  • 매개변수 없이 파일 저장

다음 C# 코드 조각은 PDF 양식의 확장된 권한을 유지하는 방법을 설명합니다.

// 읽기 및 쓰기의 FileAccess로 원본 PDF 양식을 읽으십시오.
// 수정 후 ReadWrite 권한이 필요합니다.
// 업데이트된 내용을 동일한 문서/파일에 저장해야 합니다.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// 문서 인스턴스 인스턴스화
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// 모든 필드에서 값 가져오기
foreach (Field formField in pdfDocument.Form)
{
    // 필드의 전체 이름에 A1이 포함된 경우 작업을 수행합니다.
    if (formField.FullName.Contains("nameBox1"))
    {
        // 양식 필드를 TextBox로 캐스트
        TextBoxField textBoxField = formField as TextBoxField;
        // 필드 값 수정
        textBoxField.Value = "Preserve Extended Features";
    }
}
// 파일스트림 저장에 업데이트된 문서 저장
pdfDocument.Save();
// 파일 스트림 개체 닫기
fs.Close();

C#을 사용하여 PDF 형식에서 JavaScript 사용

.NET API용 Aspose.PDF와 함께 PDF 양식 필드에서 JavaScript를 사용할 수 있습니다. 이 요구 사항을 달성하기 위해 다음 단계를 따르십시오.

  1. Document 클래스의 인스턴스 시작
  2. 특정 페이지 좌표의 첫 페이지에 TextBoxField 추가
  3. 자바스크립트 설정
  4. 문서 작업 지정
  5. PDF 문서 저장

다음 코드 조각은 C#을 사용하여 PDF 형식으로 JavaScript를 추가하는 방법을 보여줍니다.

Aspose.Pdf.Document pdfdoc = new Aspose.Pdf.Document();
pdfdoc.Pages.Add();
Aspose.Pdf.Forms.TextBoxField textBoxField = new Aspose.Pdf.Forms.TextBoxField(pdfdoc.Pages[1], new Aspose.Pdf.Rectangle(85, 750, 215, 770));
textBoxField.PartialName = "textbox1";
textBoxField.Value = "Text Box";
//TextBoxField.Border = 새로운 테두리();
Border border = new Border(textBoxField);
border.Width = 2;
border.Dash = new Dash(1, 1);
textBoxField.Border = border;
textBoxField.DefaultAppearance.FontSize = 10;
textBoxField.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
// 문서에 필드 추가
pdfdoc.Form.Add(textBoxField, 1);
string JS = @"var w = this.getField('" + textBoxField.PartialName + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.OpenAction = new JavascriptAction(JS);
pdfdoc.Save(dataDir + "JS_Form.pdf");

JavaScript는 PDF 문서가 열리고 해당 값이 텍스트 상자에 채워지면 시스템의 현재 날짜와 시간을 가져옵니다.

결론

이 기사에서는 PDF 문서에서 양식 작업의 다양한 측면을 배웠습니다. .NET API용 Aspose.PDF를 사용하면 PDF 양식을 작성, 작성 또는 편집하는 것이 간단합니다. API는 다양한 파일로 작업할 수 있는 많은 흥미로운 기능을 제공합니다. 무료 지원 포럼을 통해 피드백이나 의견을 알려주십시오.

또한보십시오