C#을 사용하여 PDF를 이미지로 변환

PDF 문서의 페이지를 이미지 파일로 다른 사람과 공유해야 할 수도 있습니다. C# 개발자는 .NET 응용 프로그램에서 프로그래밍 방식으로 PDF 파일을 PNG, JPG, TIFF 또는 BMP로 쉽게 변환할 수 있습니다. 이 기사에서는 C#을 사용하여 PDF를 이미지로 변환하는 방법을 배웁니다.

이 문서에서는 다음 주제를 논의/다룹니다.

PDF를 이미지로 변환 C# API

PDF를 이미지로 변환하기 위해 Aspose.PDF for .NET API를 사용합니다. .NET 응용 프로그램 내에서 PDF 문서를 조작할 수 있는 강력한 PDF 파일 관리 API입니다. Adobe Acrobat을 사용하지 않고 문서를 생성, 수정, 변환, 렌더링, 보호 및 인쇄할 수 있습니다.

API의 DLL을 다운로드하거나 NuGet을 사용하여 설치할 수 있습니다.

Install-Package Aspose.Pdf

C#을 사용하여 PDF를 PNG 이미지로 변환

아래 단계에 따라 프로그래밍 방식으로 PDF 파일을 PNG 이미지로 변환할 수 있습니다.

  • 입력 PDF 파일 경로로 Document 클래스의 인스턴스를 생성합니다.
  • Document.Pages 컬렉션을 사용하여 PDF의 모든 페이지를 반복하고 다음을 수행합니다.
    • Resolution 클래스의 인스턴스를 만들고 값을 설정합니다.
    • PngDevice 클래스의 인스턴스를 만들고 Width, Height 및 Resolution 개체를 전달합니다.
    • 페이지 번호와 출력 PNG 이미지 경로를 사용하여 Process(Page, String) 메서드를 호출하여 페이지를 PNG로 변환합니다.

다음 코드 샘플은 C#을 사용하여 PDF 페이지를 PNG 이미지로 변환하는 방법을 보여줍니다.

// 문서 열기
Document pdfDocument = new Document("C:\\Files\\sample.pdf");

foreach (var page in pdfDocument.Pages)
{
    // 해상도 정의
    Resolution resolution = new Resolution(300);

    // 지정된 속성으로 Png 장치 만들기
    // 너비, 높이, 해상도
    PngDevice PngDevice = new PngDevice(500, 700, resolution);

    // 특정 페이지를 변환하고 이미지를 스트림에 저장
    PngDevice.Process(pdfDocument.Pages[page.Number], "C:\\Files\\image" + page.Number + "_out" + ".Png");
}
C#을 사용하여 PDF를 PNG 이미지로 변환

C#을 사용하여 PDF를 PNG 이미지로 변환

Document 클래스는 PDF 문서를 나타냅니다. 다양한 기능을 수행하기 위한 여러 속성과 메서드를 제공합니다. Document.Pages 컬렉션은 문서 페이지의 컬렉션이며 페이지 번호는 컬렉션에서 1부터 시작합니다. Resolution 클래스는 이미지 해상도를 정의합니다. PngDevice 클래스를 사용하면 PDF 문서의 페이지를 PNG 이미지로 저장할 수 있습니다. 이 클래스는 페이지를 PNG 이미지로 저장하는 다음 메서드를 제공합니다.

C#을 사용하여 PDF를 JPG 이미지로 변환

아래 단계에 따라 프로그래밍 방식으로 PDF 파일을 JPG 이미지로 변환할 수 있습니다.

  • 입력 파일 경로를 사용하여 Document 클래스의 인스턴스를 만듭니다.
  • Document.Pages 컬렉션을 사용하여 PDF의 모든 페이지를 반복하고 다음을 수행합니다.
    • Resolution 클래스의 인스턴스를 만들고 값을 설정합니다.
    • JpegDevice 클래스의 인스턴스를 만들고 Width, Height 및 Resolution 개체를 전달합니다.
    • 페이지 번호와 출력 JPG 이미지 경로를 사용하여 Process(Page, String) 메서드를 호출하여 페이지를 JPG로 변환합니다.

다음 코드 샘플은 C#을 사용하여 PDF 페이지를 JPG 이미지로 변환하는 방법을 보여줍니다.

// 문서 열기
Document pdfDocument = new Document("C:\\Files\\sample.pdf");

foreach (var page in pdfDocument.Pages)
{
    // 해상도 정의
    Resolution resolution = new Resolution(300);
    
    // 지정된 속성으로 Jpeg 장치 생성
    // 너비, 높이, 해상도
    JpegDevice JpegDevice = new JpegDevice(500, 700, resolution);

    // 특정 페이지를 변환하고 이미지를 스트림에 저장
    JpegDevice.Process(pdfDocument.Pages[page.Number], "C:\\Files\\image" + page.Number + "_out" + ".Jpg");
}
C#을 사용하여 PDF를 JPG 이미지로 변환

C#을 사용하여 PDF를 JPG 이미지로 변환

C#을 사용하여 PDF에서 BMP로 변환

다음 단계에 따라 프로그래밍 방식으로 PDF 파일을 BMP 이미지로 변환할 수 있습니다.

  • 입력 파일 경로를 사용하여 Document 클래스의 인스턴스를 만듭니다.
  • Document.Pages 컬렉션을 사용하여 PDF의 모든 페이지를 반복하고 다음을 수행합니다.
    • Resolution 클래스의 인스턴스를 만들고 값을 설정합니다.
    • BmpDevice 클래스의 인스턴스를 만들고 Width, Height 및 Resolution 개체를 전달합니다.
    • 페이지 번호와 출력 BMP 이미지 경로를 사용하여 Process(Page, String) 메서드를 호출하여 페이지를 BMP로 변환합니다.

다음 코드 샘플은 C#을 사용하여 PDF 페이지를 BMP 이미지로 변환하는 방법을 보여줍니다.

// 문서 열기
Document pdfDocument = new Document("C:\\Files\\sample.pdf");

foreach (var page in pdfDocument.Pages)
{
    // 해상도 정의
    Resolution resolution = new Resolution(300);
    
    // 지정된 속성으로 PNG 장치 만들기
    // 너비, 높이, 해상도
    BmpDevice BmpDevice = new BmpDevice(500, 700, resolution);

    // 특정 페이지를 변환하고 이미지를 스트림에 저장
    BmpDevice.Process(pdfDocument.Pages[page.Number], "C:\\Files\\image" + page.Number + "_out" + ".bmp");
}
C#을 사용하여 PDF에서 BMP로 변환

C#을 사용하여 PDF에서 BMP로 변환

C#을 사용하여 PDF에서 TIFF로 변환

다음 단계에 따라 프로그래밍 방식으로 PDF 파일을 TIFF로 변환할 수 있습니다.

  • 입력 파일 경로를 사용하여 Document 클래스의 인스턴스를 만듭니다.
  • Resolution 클래스의 인스턴스를 초기화하고 값을 설정합니다.
  • TiffSettings 클래스의 인스턴스를 만듭니다.
  • Compression, Depth, Shape, SkipBlankPages 등의 다양한 속성을 설정합니다.
  • Resolution 및 TiffSettings 개체를 사용하여 TiffDevice 클래스의 인스턴스를 만듭니다.
  • Document 객체와 출력 TIFF 파일 경로를 사용하여 Process(Document, String) 메서드를 호출하여 문서를 TIFF로 변환합니다.

다음 코드 샘플은 C#을 사용하여 PDF 파일을 TIFF로 변환하는 방법을 보여줍니다.

// 문서 열기
Document pdfDocument = new Document("C:\\Files\\sample.pdf");

// 해상도 정의
Resolution resolution = new Resolution(300);

// TiffSettings 객체 생성
TiffSettings tiffSettings = new TiffSettings
{
    Compression = CompressionType.None,
    Depth = ColorDepth.Default,
    Shape = ShapeType.Portrait,
    SkipBlankPages = false
};

// TIFF 장치 만들기
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);

// 특정 페이지를 변환하고 이미지를 스트림에 저장
tiffDevice.Process(pdfDocument, "C:\\Files\\AllPagesToTIFF_out.tif");
C#을 사용하여 PDF에서 TIFF로 변환

C#을 사용하여 PDF에서 TIFF로 변환

TiffSettings 클래스는 PDF를 TIFF로 변환하기 위한 몇 가지 설정을 제공합니다. PDF를 TIFF로 변환하는 동안 밝기, 압축, 좌표 유형, 깊이, 여백, 모양 및 SkipBlankPages를 설정할 수 있습니다.

C#을 사용하여 PDF 문서에서 이미지 추출

아래 단계에 따라 프로그래밍 방식으로 PDF 파일에서 모든 이미지를 추출할 수 있습니다.

  • 입력 파일 경로를 사용하여 Document 클래스의 인스턴스를 만듭니다.
  • 각 페이지에 대해 Page.Resources.Images 컬렉션의 모든 이미지에 대해 XImage 인스턴스를 만듭니다.
  • 출력 이미지 파일 경로를 사용하여 FileStream 클래스의 인스턴스를 만듭니다.
  • FileStream 객체와 함께 Save() 메서드를 호출하여 이미지를 저장합니다.
  • 마지막으로 Close() 메서드를 사용하여 FileStream을 닫습니다.

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

// 문서 열기
Document pdfDocument = new Document("C:\\Files\\sample.pdf");

// 페이지 반복
foreach (var page in pdfDocument.Pages)
{
    int imageCounter = 1;
    // 모든 이미지 반복
    foreach (XImage image in page.Resources.Images)
    {
        // 이미지에 대한 파일 스트림 생성
        FileStream outputImage = new FileStream(String.Format("C:\\Files\\Page{0}_Image{1}.jpg", page.Number, imageCounter), FileMode.Create);

        // 출력 이미지 저장
        image.Save(outputImage);

        // 스트림 닫기
        outputImage.Close();

        imageCounter++;
    }
}
C#을 사용하여 PDF 문서에서 이미지 추출

C#을 사용하여 PDF 문서에서 이미지 추출

XImage 클래스는 이미지 X-Object를 나타냅니다. 이미지 작업을 위한 여러 속성과 메서드를 제공합니다. XImage 클래스는 이미지 개체를 저장하기 위해 다음 메서드를 제공합니다.

Page.Resources.Images 컬렉션은 특정 페이지에 대한 이미지 컬렉션을 나타냅니다.

무료 라이선스 받기

임시 무료 라이선스를 요청하면 평가 제한 없이 API를 사용해 볼 수 있습니다.

결론

이 기사에서는 C#을 사용하여 PDF 파일 페이지를 이미지로 변환하는 방법을 배웠습니다. 또한 프로그래밍 방식으로 PDF를 PNG로, PDF를 JPG로, PDF를 BMP로, PDF를 TIFF로 변환하는 방법도 배웠습니다. 또한 C#을 사용하여 PDF 파일에서 이미지를 추출하는 방법을 배웠습니다. API는 또한 압축 옵션, 테이블 생성 및 조작, 그래프 및 이미지 기능, 광범위한 하이퍼링크 기능, 스탬프 및 워터마크 작업, 확장된 보안 제어 및 사용자 정의 글꼴 처리를 제공합니다. 문서를 사용하여 .NET API용 Aspose.PDF에 대해 자세히 알아볼 수 있습니다. 모호한 부분이 있는 경우 포럼을 통해 언제든지 문의해 주십시오.

또한보십시오