Java에서 PDF에 양식 필드 추가
30113 단어 pdfformfieldsjava
Spire.PDF는 PDF 문서의 생성 및 조작을 지원하도록 작성된 Java 클래스 라이브러리입니다. com.spire.pdf.fields 네임스페이스에 여러 가지 유용한 클래스를 제공하여 프로그래머가 다양한 유형의 양식을 만들고 기존 PDF 문서에 포함된 양식 필드를 처리할 수 있도록 합니다. 다음은 이 기사에 관련된 몇 가지입니다.
수업
설명
PdfTextBox필드
PDF 형식의 텍스트 상자 필드를 나타냅니다.
PdfCheckBox필드
PDF 형식의 확인란 필드를 나타냅니다.
PdfComboBox필드
PDF 양식의 콤보 상자 필드를 나타냅니다.
PdfListBox필드
PDF 양식의 목록 상자 필드를 나타냅니다.
PdfListFieldItem
목록 필드의 항목을 나타냅니다.
PdfRadioButtonList필드
PDF 형식의 라디오 버튼 필드를 나타냅니다.
PdfRadioButtonList항목
라디오 버튼 목록의 항목을 나타냅니다.
Pdf버튼필드
PDF 형식의 버튼 필드를 나타냅니다.
Spire.Pdf.jar 설치
비 Maven 프로젝트를 생성하는 경우 this link에서 jar 파일을 다운로드하고 애플리케이션의 종속성으로 추가합니다. Maven 프로젝트의 경우 다음 구성을 사용하여 애플리케이션에 jar를 쉽게 추가할 수 있습니다.
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId> e-iceblue </groupId>
<artifactId>spire.pdf</artifactId>
<version>3.8.2</version>
</dependency>
</dependencies>
코드 사용
import com.spire.pdf.fields.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.util.EnumSet;
public class AddFormFieldsToPdf {
public static void main(String[] args) throws Exception {
//Create a PdfDocument object
PdfDocument doc = new PdfDocument();
//Add a page
PdfPageBase page = doc.getPages().add();
//Initialize x and y coordinates
float baseX = 100;
float baseY = 0;
//Create brush objects
PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.BLUE));
PdfSolidBrush brush2 = new PdfSolidBrush(new PdfRGBColor(Color.black));
//Create font
PdfFont font = new PdfFont(PdfFontFamily.Times_Roman, 12f, EnumSet.of(PdfFontStyle.Regular));
//Add a text box to pdf
String text = "Name:";
page.getCanvas().drawString(text, font, brush1, new Point2D.Float(0, baseY));
Rectangle2D.Float tbxBounds = new Rectangle2D.Float(baseX, baseY, 150, 15);
PdfTextBoxField textBox = new PdfTextBoxField(page, "textbox");
textBox.setBounds(tbxBounds);
textBox.setFont(font);
doc.getForm().getFields().add(textBox);
baseY += 35;
//Add radio buttons to pdf
page.getCanvas().drawString("Gender:", font, brush1, new Point2D.Float(0, baseY));
PdfRadioButtonListField radioButtonListField = new PdfRadioButtonListField(page, "radio");
PdfRadioButtonListItem radioItem1 = new PdfRadioButtonListItem("male");
radioItem1.setBounds(new Rectangle2D.Float(baseX, baseY, 15, 15));
page.getCanvas().drawString("Male", font, brush2, new Point2D.Float(baseX + 20, baseY));
PdfRadioButtonListItem radioItem2 = new PdfRadioButtonListItem("female");
radioItem2.setBounds(new Rectangle2D.Float(baseX + 70, baseY, 15, 15));
page.getCanvas().drawString("Female", font, brush2, new Point2D.Float(baseX + 90, baseY));
radioButtonListField.getItems().add(radioItem1);
radioButtonListField.getItems().add(radioItem2);
radioButtonListField.setSelectedIndex(0);
doc.getForm().getFields().add(radioButtonListField);
baseY += 35;
//Add a combo box to pdf
page.getCanvas().drawString("Country:", font, brush1, new Point2D.Float(0, baseY));
Rectangle2D.Float cmbBounds = new Rectangle2D.Float(baseX, baseY, 150, 15);
PdfComboBoxField comboBoxField = new PdfComboBoxField(page, "combobox");
comboBoxField.setBounds(cmbBounds);
comboBoxField.getItems().add(new PdfListFieldItem("United States", "us"));
comboBoxField.getItems().add(new PdfListFieldItem("Canada", "can"));
comboBoxField.getItems().add(new PdfListFieldItem("China", "cn"));
comboBoxField.getItems().add(new PdfListFieldItem("Japan", "jpn"));
comboBoxField.setSelectedIndex(0);
comboBoxField.setFont(font);
doc.getForm().getFields().add(comboBoxField);
baseY += 35;
//Add checkboxes to pdf
page.getCanvas().drawString("Hobbies:", font, brush1, new Point2D.Float(0, baseY));
java.awt.geom.Rectangle2D.Float rec1 = new java.awt.geom.Rectangle2D.Float(baseX, baseY, 15, 15);
PdfCheckBoxField checkBoxField = new PdfCheckBoxField(page, "travel");
checkBoxField.setBounds(rec1);
checkBoxField.setChecked(false);
page.getCanvas().drawString("Travel", font, brush2, new Point2D.Float(baseX + 20, baseY));
java.awt.geom.Rectangle2D.Float rec2 = new java.awt.geom.Rectangle2D.Float(baseX + 70, baseY, 15, 15);
PdfCheckBoxField checkBoxField1 = new PdfCheckBoxField(page, "game");
checkBoxField1.setBounds(rec2);
checkBoxField1.setChecked(false);
page.getCanvas().drawString("Game", font, brush2, new Point2D.Float(baseX + 90, baseY));
doc.getForm().getFields().add(checkBoxField);
doc.getForm().getFields().add(checkBoxField1);
baseY += 35;
//Add a list box to pdf
page.getCanvas().drawString("Degree:", font, brush1, new Point2D.Float(0, baseY));
java.awt.geom.Rectangle2D.Float rec = new java.awt.geom.Rectangle2D.Float(baseX, baseY, 150, 50);
PdfListBoxField listBoxField = new PdfListBoxField(page, "degree");
listBoxField.getItems().add(new PdfListFieldItem("High School", "high"));
listBoxField.getItems().add(new PdfListFieldItem("College Degree", "college"));
listBoxField.getItems().add(new PdfListFieldItem("Master's Degree", "master"));
listBoxField.setBounds(rec);
listBoxField.setFont(font);
listBoxField.setSelectedIndex(0);
doc.getForm().getFields().add(listBoxField);
baseY += 75;
//Add a button to pdf
Rectangle2D.Float btnBounds = new Rectangle2D.Float(baseX, baseY, 50, 15);
PdfButtonField buttonField = new PdfButtonField(page, "submit");
buttonField.setBounds(btnBounds);
buttonField.setText("Submit");
buttonField.setFont(font);
doc.getForm().getFields().add(buttonField);
//Save to file
doc.saveToFile("AddFormFields.pdf", FileFormat.PDF);
}
}
산출
Reference
이 문제에 관하여(Java에서 PDF에 양식 필드 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/eiceblue/add-form-fields-to-pdf-in-java-13d4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)