이 기사에서는 Java에서 프로그래밍 방식으로 PDF 파일을 처음부터 만드는 방법을 배웁니다.

Java를 사용하여 PDF 문서 만들기

PDF는 다양한 유형의 문서를 만드는 데 일반적으로 사용되는 파일 형식이 되었습니다. 다양한 산업 분야에서 영수증, 송장, 비즈니스 보고서 등과 같은 문서 생성을 위해 PDF 자동화를 채택했습니다. 이러한 시나리오를 주시하면서 이 기사에서는 Java에서 PDF 파일을 생성하는 방법을 다룹니다. 코드 샘플은 PDF 파일을 처음부터 생성하고 Java에서 해당 PDF에 텍스트, 이미지, 테이블 및 기타 요소를 삽입하는 방법을 보여줍니다.

PDF 생성을 위한 Java API - 무료 다운로드

Aspose.PDF for Java는 Java 응용 프로그램 내에서 PDF 파일을 생성할 수 있는 PDF 파일 조작 API입니다. API를 사용하여 간단한 PDF 문서와 복잡한 PDF 문서를 모두 만들 수 있습니다. Java용 Aspose.PDF는 JAR로 다운로드하거나 Maven 기반 애플리케이션 내에 설치할 수 있습니다.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.11</version>
    <classifier>jdk17</classifier>
</dependency>

자바에서 PDF 파일 만들기

다음은 처음부터 간단한 PDF 파일을 생성하고 그 안에 텍스트를 삽입하는 단계입니다.

다음 코드 샘플은 Java를 사용하여 PDF 파일을 만드는 방법을 보여줍니다.

// 전체 예제 및 데이터 파일을 보려면 https://github.com/aspose-pdf/Aspose.PDF-for-Java로 이동하십시오.
// 문서 객체 초기화
Document document = new Document();
 
//페이지 추가
Page page = document.getPages().add();
 
// 새 페이지에 텍스트 추가
page.getParagraphs().add(new TextFragment("Hello World!"));
 
// 업데이트된 PDF 저장
document.save("HelloWorld_out.pdf");

Java에서 텍스트 서식을 사용하여 PDF 파일 만들기

이제 PDF 문서의 텍스트에 서식을 적용하는 방법을 알아보겠습니다. 텍스트 서식에는 글꼴, 글꼴 크기, 색상, 위치 등이 포함될 수 있습니다. 다음은 이 작업을 수행하는 단계입니다.

  • Document 클래스를 사용하여 새 PDF 문서를 만들거나 기존 문서를 로드합니다.
  • 텍스트를 배치할 페이지에 액세스합니다.
  • 위치, 글꼴, 색상, 크기 등과 같은 텍스트 및 기타 서식 옵션을 설정하려면 TextFragment의 개체를 만듭니다.
  • TextBuilder 클래스를 사용하여 페이지에 TextFragment 개체를 추가합니다.
  • Document.save(String) 메서드를 사용하여 PDF 문서를 저장합니다.

다음 코드 샘플은 Java를 사용하여 PDF 파일을 만들고 텍스트 서식을 적용하는 방법을 보여줍니다.

// PDF 문서 로드
Document document = new Document();

// 페이지 추가
Page page = document.getPages().add();

// 텍스트 조각 만들기
TextFragment textFragment = new TextFragment(
		"Text 1: We have now applied text formatting. This is PDF generated by Aspose.PDF for .NET");
textFragment.setPosition(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.setPosition(new Position(100, 600));

// 텍스트 속성 설정
textFragment.getTextState().setFontSize(12);
textFragment.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment.getTextState().setBackgroundColor(Color.getLightGray());
textFragment.getTextState().setForegroundColor(Color.getRed());

textFragment1.getTextState().setDrawTextRectangleBorder(true);
textFragment1.getTextState().setUnderline(true);
textFragment1.getTextState().setStrikeOut(true);

// 패턴 색상 공간으로 새 색상 만들기
Color color = new Color();
color.setPatternColorSpace(new GradientAxialShading(Color.getRed(), Color.getBlue()));		
textFragment1.getTextState().setForegroundColor(color);

// TextBuilder 객체 생성
TextBuilder textBuilder = new TextBuilder(page);

// PDF 페이지에 텍스트 조각 추가
textBuilder.appendText(textFragment);
textBuilder.appendText(textFragment1);

// PDF 문서 저장
document.save("Generated-PDF.pdf");

Java 이미지로 PDF 파일 생성

Java용 Aspose.PDF를 사용하여 PDF 파일에 이미지를 삽입하는 단계는 다음과 같습니다.

  • Document 개체를 만들어 PDF 문서를 만들거나 엽니다.
  • Page 개체에서 이미지를 추가할 페이지를 가져옵니다.
  • 이미지를 Page.getResources() 컬렉션에 추가합니다.
  • 연산자를 사용하여 페이지에 이미지를 배치합니다.
    • G저장 operator to save the current graphical state.
    • 행렬 연결 operator to specify where the image is to be placed.
    • 하다 operator to draw the image on the page.
    • 마지막으로 GRestore 연산자를 사용하여 업데이트된 그래픽 상태를 저장합니다.
  • PDF 파일을 저장합니다.

다음 코드 샘플은 Java에서 PDF 파일에 이미지를 삽입하는 방법을 보여줍니다.

// 전체 예제 및 데이터 파일을 보려면 https://github.com/aspose-pdf/Aspose.Pdf-for-Java로 이동하십시오.
// 문서 열기
Document pdfDocument1 = new Document("input.pdf");

// 좌표 설정
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// 이미지를 추가할 페이지를 가져옵니다.
Page page = pdfDocument1.getPages().get_Item(1);

// 스트림에 이미지 로드
java.io.FileInputStream imageStream = new java.io.FileInputStream(new java.io.File("input_image1.jpg"));

// 페이지 리소스의 이미지 컬렉션에 이미지 추가
page.getResources().getImages().add(imageStream);

// GSave 연산자 사용: 이 연산자는 현재 그래픽 상태를 저장합니다.
page.getContents().add(new Operator.GSave());

// Rectangle 및 Matrix 객체 만들기
Rectangle rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.getURX() - rectangle.getLLX(), 0, 0, rectangle.getURY() - rectangle.getLLY(), rectangle.getLLX(), rectangle.getLLY() });

// ConcatenateMatrix(행렬 연결) 연산자 사용: 이미지를 배치하는 방법을 정의합니다.
page.getContents().add(new Operator.ConcatenateMatrix(matrix));
XImage ximage = page.getResources().getImages().get_Item(page.getResources().getImages().size());

// Do 연산자 사용: 이 연산자는 이미지를 그립니다.
page.getContents().add(new Operator.Do(ximage.getName()));

// GRestore 연산자 사용: 이 연산자는 그래픽 상태를 복원합니다.
page.getContents().add(new Operator.GRestore());

// 새 PDF 저장
pdfDocument1.save("Updated_document.pdf");

// 이미지 스트림 닫기
imageStream.close();

Java에서 PDF 파일로 테이블 만들기

테이블은 행과 열의 형태로 데이터를 구성하는 좋은 방법입니다. Aspose.PDF를 사용하면 PDF 문서에 표를 아주 쉽게 삽입할 수 있습니다. 다음은 테이블을 만드는 단계입니다.

  • Document 클래스를 사용하여 소스 파일을 로드합니다.
  • Table을 초기화하고 열과 행을 설정합니다.
  • 테이블 설정(예: 테두리)을 설정합니다.
  • 행을 추가하여 테이블을 채웁니다.
  • 페이지에 테이블을 추가합니다.
  • PDF 파일을 저장합니다.

다음 코드 샘플은 Java에서 PDF 파일로 테이블을 생성하는 방법을 보여줍니다.

// 전체 예제 및 데이터 파일을 보려면 https://github.com/aspose-pdf/Aspose.Pdf-for-Java로 이동하십시오.
// 원본 PDF 문서 로드
Document doc = new Document(dataDir + "input.pdf");
// 테이블의 새 인스턴스를 초기화합니다.
Table table = new Table();
// 테이블 테두리 색상을 LightGray로 설정
table.setBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// 표 셀의 테두리 설정
table.setDefaultCellBorder(new BorderInfo(BorderSide.All, .5f, Color.getLightGray()));
// 10개의 행을 추가하는 루프 생성
for (int row_count = 1; row_count < 10; row_count++) {
	// 테이블에 행 추가
	Row row = table.getRows().add();
	// 표 셀 추가
	row.getCells().add("Column (" + row_count + ", 1)");
	row.getCells().add("Column (" + row_count + ", 2)");
	row.getCells().add("Column (" + row_count + ", 3)");
}
// 입력 문서의 첫 페이지에 테이블 개체 추가
doc.getPages().get_Item(1).getParagraphs().add(table);
// 테이블 개체가 포함된 업데이트된 문서 저장
doc.save(dataDir + "document_with_table.pdf");

Java에서 PDF 파일로 양식 만들기

PDF 형식은 또한 사용자로부터 입력을 수집하기 위한 양식 추가를 지원합니다. 양식에는 텍스트 상자, 라디오 버튼 등과 같은 다양한 유형의 필드가 포함될 수 있습니다. 다음 단계는 PDF 파일에 간단한 양식을 삽입하는 방법을 보여줍니다.

  • PDF 문서를 로드하거나 Document 클래스를 사용하여 새 문서를 만듭니다.
  • TextBoxField와 같이 추가하려는 양식 필드를 만듭니다.
  • 필드의 속성을 설정합니다.
  • pdfDocument.getForm().add(Field, Int) 메서드를 사용하여 PDF의 Form에 필드를 추가합니다.
  • PDF 문서를 저장합니다.

다음 코드 샘플은 Java에서 PDF 파일에 양식을 만드는 방법을 보여줍니다.

// 전체 예제 및 데이터 파일을 보려면 https://github.com/aspose-pdf/Aspose.Pdf-for-Java로 이동하십시오.
// 문서 열기
Document pdfDocument = new Document("input.pdf");

// 필드 만들기
TextBoxField textBoxField1 = new TextBoxField(pdfDocument.getPages().get_Item(1), new Rectangle(100, 200, 300, 300));

// 필드 이름 설정
textBoxField1.setPartialName("textbox1");

// 필드 값 설정
textBoxField1.setValue("Text Box");

// 테두리 개체 만들기
Border border = new Border(textBoxField1);

// 테두리 너비 설정
border.setWidth(5);

// 테두리 대시 스타일 설정
border.setDash(new Dash(1, 1));

// 필드 테두리 설정
textBoxField1.setBorder(border);

// 문서에 필드 추가
pdfDocument.getForm().add(textBoxField1, 1);

// 수정된 PDF 저장
pdfDocument.save("output.pdf");

여기를 사용하여 양식 필드에 대해 자세히 알아보십시오.

Java에서 PDF 파일에 책갈피 삽입

다음은 PDF 파일에 책갈피를 추가하는 단계입니다.

  • Document 개체를 사용하여 PDF 문서를 엽니다.
  • OutlineItemCollection 컬렉션에 문서 개요를 추가합니다.
  • 대상 페이지 번호를 설정합니다.
  • 문서의 개요 컬렉션에 책갈피를 추가합니다.
  • PDF 파일을 저장합니다.

다음 코드 샘플은 Java를 사용하여 PDF에 책갈피를 삽입하는 방법을 보여줍니다.

// 전체 예제 및 데이터 파일을 보려면 https://github.com/aspose-pdf/Aspose.Pdf-for-Java로 이동하십시오.
// 원본 PDF 문서 열기
Document pdfDocument = new Document("input.pdf");

// 책갈피 개체 만들기
OutlineItemCollection pdfOutline = new OutlineItemCollection(pdfDocument.getOutlines());
pdfOutline.setTitle("Test Outline");
pdfOutline.setItalic(true);
pdfOutline.setBold(true);

// 대상 페이지 번호 설정
pdfOutline.setAction(new GoToAction(pdfDocument.getPages().get_Item(1)));

// 문서의 개요 컬렉션에 책갈피를 추가합니다.
pdfDocument.getOutlines().add(pdfOutline);

// 업데이트 문서 저장
pdfDocument.save("output.pdf");

무료 라이선스 받기

평가 제한 없이 API를 사용해 보려면 무료 임시 라이선스를 얻으십시오.

결론

이 기사에서는 Java로 PDF 파일을 처음부터 만드는 방법을 배웠습니다. 또한 Java 코드 샘플은 새 PDF 파일이나 기존 PDF 파일에 텍스트, 이미지, 표, 양식 및 책갈피를 삽입하는 방법을 보여주었습니다. 문서를 사용하여 Java PDF API에 대해 자세히 알아볼 수 있습니다.

또한보십시오