Java를 사용하여 PDF 이미지 작업

이미지는 PDF 파일에서 다양한 유형의 묘사 및 데모에 널리 사용됩니다. 이 기사에서는 프로그래밍 방식으로 PDF 파일의 이미지를 조작하는 방법을 배웁니다. 특히 이 기사에서는 Java를 사용하여 PDF 파일에서 이미지를 추가, 추출, 제거 또는 교체하는 방법을 다룹니다.

PDF에 이미지를 추가하고 조작하는 Java API - 무료 다운로드

Aspose.PDF for Java는 광범위한 PDF 조작 기능을 제공하는 강력한 API입니다. API를 사용하면 PDF 파일의 텍스트, 주석 또는 이미지로 원활하게 작업할 수 있습니다. API의 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>21.2</version>
</dependency>

Java에서 PDF 파일에 이미지 추가

Java에서 PDF 파일에 이미지를 추가하는 단계는 다음과 같습니다.

  • 먼저 Document 클래스의 인스턴스를 만들어 PDF 문서를 로드합니다.
  • Document.getPages().get_Item(int) 메서드를 사용하여 이미지를 추가하려는 Page를 가져옵니다.
  • 이미지 파일을 FileInputStream 객체에 로드합니다.
  • Page.getResources().getImages().add(FileInputStream) 메서드를 사용하여 페이지의 리소스에 이미지를 추가합니다.
  • 연산자를 사용하여 페이지에 이미지를 배치합니다.
    1. GSave 연산자를 사용하여 현재 그래픽 상태를 저장합니다.
    2. ConcatenateMatrix 연산자를 사용하여 이미지를 배치할 위치를 지정합니다.
    3. Do 연산자를 사용하여 페이지에 이미지를 그립니다.
    4. GRestore 연산자를 사용하여 업데이트된 그래픽 상태를 저장합니다.
  • 마지막으로 Document.save(string) 메서드를 사용하여 업데이트된 PDF 파일을 저장합니다.

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

// 문서 열기
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 파일에서 이미지 추출

다음은 Java를 사용하여 PDF 문서에서 이미지를 추출하는 단계입니다.

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

// 문서 열기
Document pdfDocument = new Document("input.pdf");

// 특정 이미지 추출
XImage xImage = pdfDocument.getPages().get_Item(1).getResources().getImages().get_Item(1);

// 출력 이미지를 저장할 스트림 객체 생성
java.io.OutputStream output = new java.io.FileOutputStream("output.jpg");

// 출력 이미지 저장
xImage.save(output);

// 스트림 닫기
output.close();

Java를 사용하여 PDF 파일에서 이미지 제거

다음은 Java를 사용하여 PDF 파일에서 이미지를 제거하는 단계입니다.

  • PDF 파일을 Document 개체에 로드합니다.
  • 다음 방법 중 하나를 사용하여 원하는 이미지를 삭제합니다.
  • 마지막으로 Document.save(string) 메서드를 사용하여 업데이트된 PDF 파일을 저장합니다.

다음 코드 샘플은 Java를 사용하여 PDF에서 이미지를 삭제하는 방법을 보여줍니다.

// 문서 열기
Document pdfDocument = new Document("input.pdf");

// 특정 이미지 삭제
pdfDocument.getPages().get_Item(1).getResources().getImages().delete(1);

// 업데이트된 PDF 파일 저장
pdfDocument.save("output.pdf");

Java를 사용하여 PDF 파일의 이미지 바꾸기

다음은 Java를 사용하여 PDF 파일의 이미지를 바꾸는 단계입니다.

다음 코드 샘플은 Java를 사용하여 PDF의 이미지를 바꾸는 방법을 보여줍니다.

// 문서 열기
Document pdfDocument = new Document("input.pdf");

// 특정 이미지 바꾸기
pdfDocument.getPages().get_Item(1).getResources().getImages().replace(1, new java.io.FileInputStream(new java.io.File("apose.png")));

// 업데이트된 PDF 파일 저장
pdfDocument.save("output.pdf");

PDF에 이미지를 추가하는 Java API - 무료 API 라이선스 받기

임시 라이선스 받기를 통해 Java용 Aspose.PDF를 무료로 사용해 볼 수 있습니다.

결론

이 기사에서는 Java를 사용하여 PDF 파일의 이미지를 조작하는 방법을 배웠습니다. 단계별 가이드 및 코드 샘플은 PDF 파일에서 이미지를 추출, 추가, 제거 및 교체하는 방법을 보여줍니다. 문서를 사용하여 Java용 Aspose.PDF의 다른 기능을 탐색할 수 있습니다. 질문이 있는 경우 포럼을 통해 문의할 수 있습니다.

또한보십시오