C#에서 PDF 파일을 이미지로 변환

Aimen Fatima 2023년10월12일
  1. PDF를 이미지로 변환
  2. PDFium 패키지를 사용하여 C#에서 PDF 파일을 이미지로 변환
  3. Syncfusion 패키지를 사용하여 C#에서 PDF 파일을 이미지로 변환
  4. PDFRasterizer를 사용하여 C#에서 PDF 파일을 이미지로 변환
C#에서 PDF 파일을 이미지로 변환

이 문서에서는 C#에서 PDF 파일을 이미지로 변환하는 방법을 보여줍니다.

PDF 파일을 이미지로 변환하는 두 가지 방법을 살펴보겠습니다. 자세히 설명하기 위해 단계별로 C# 프로젝트를 생성하고 모든 코드 스니펫을 제공합니다.

PDF를 이미지로 변환

C#을 사용하여 PDF 파일을 이미지로 변환하는 방법에는 여러 가지가 있습니다. 타사 어셈블리를 사용하여 변환기를 만들거나 직접 만들 수 있습니다.

두 가지 다른 어셈블리를 사용하여 PDF 파일을 이미지로 변환하는 변환기를 만들 것입니다. 이것들은:

  1. PDFium
  2. 동기화

이 두 가지 NuGet 패키지는 nuget.org에서 프로젝트에 설치할 수 있습니다. C# 프로젝트를 만들고 이러한 패키지를 단계별로 설치하도록 안내해 보겠습니다.

PDFium 패키지를 사용하여 C#에서 PDF 파일을 이미지로 변환

  • Visual Studio에서 콘솔 응용 프로그램을 만듭니다. 이러한 패키지를 설치하고 사용하려면 Visual Studio 2019 이상을 권장합니다.

    프로젝트 만들기

  • 프로젝트 탭을 클릭하고 NuGet 패키지 관리를 선택하거나 도구 탭을 클릭하고 NuGet 패키지 관리자를 선택한 다음 솔루션용 NuGet 패키지 관리를 선택합니다.

    NuGet 패키지

    NuGet 패키지 2

  • 찾아보기 탭을 선택하고 패키지 소스nuget.org로 설정합니다.
  • Package Source 창에서 nuget.org를 찾을 수 없다고 가정합니다. 설정 탭을 클릭하여 추가하십시오. + 아이콘을 클릭하고 이미지에 표시된 이름과 소스를 입력합니다.

    NuGet 설정

  • 검색창에 PDFium을 입력합니다. PdfiumViewer, PdfiumViewer.Native.x86.v8-xfa 및 PDFium.x86을 설치합니다.

    PDFium 검색

    PDFium 패키지

  • 이 패키지를 설치한 후 참조 창에서 PdfiumViewer에 대한 참조를 사용할 수 있습니다. Samples라는 프로젝트 디렉토리에 폴더를 만들고 변환하려는 PDF 파일을 이 폴더에 넣습니다.

    참조 창

  • System.Drawing에 대한 참조를 추가하여 이 어셈블리를 프로젝트로 가져옵니다. Solution Explorer 창에서 References 탭을 마우스 오른쪽 버튼으로 클릭하고 Add Reference를 선택한 다음 Framework로 이동하고 System.Drawing을 선택합니다.

    참조 추가

    시스템 도면

  • Program.cs 파일에 다음 코드 조각을 추가합니다. 요구 사항에 따라 입력 및 출력 파일 이름을 사용자 지정할 수 있습니다.
  • 이 코드 스니펫은 단일 페이지 및 다중 페이지 문서를 변환합니다. 코드를 실행한 후 PDF 파일을 이미지로 변환해야 합니다(각 PDF 파일 페이지는 이미지로).
    using PdfiumViewer;
    using System;
    using System.Drawing.Imaging;
    using System.IO;
    using System.Linq;
    
    namespace PdfToImage {
      class Program {
        static void Main(string[] args) {
          var projectDirectory = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName;
    
          try {
            using (var document = PdfDocument.Load(projectDirectory + @"\Samples\document.pdf")) {
              var pageCount = document.PageCount;
    
              for (int i = 0; i < pageCount; i++) {
                var dpi = 300;
    
                using (var image = document.Render(i, dpi, dpi, PdfRenderFlags.CorrectFromDpi)) {
                  var encoder =
                      ImageCodecInfo.GetImageEncoders().First(c => c.FormatID == ImageFormat.Jpeg.Guid);
                  var encoderParams = new EncoderParameters(1);
                  encoderParams.Param[0] =
                      new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
    
                  image.Save(projectDirectory + @"\Samples\image_" + i + ".jpg", encoder,
                             encoderParams);
                }
              }
            }
          } catch (Exception ex) {
            Console.WriteLine(ex.Message);
          }
    
          Console.WriteLine("Pdf converted to images. Press any key to exit...");
          Console.ReadKey();
        }
      }
    }
    
  • DLL 'pdfium.dll'에서 'FPDF_AddRef'라는 진입점을 찾을 수 없습니다. 예외가 발생하면 빌드 설정에서 대상 플랫폼을 변경해야 합니다.
  • 빌드 탭으로 이동하고 시스템에 따라 플랫폼 대상을 선택합니다(예: x86 또는 x64). 빌드에서 플랫폼 대상을 찾지 못한 경우 프로젝트 탭을 선택하고 프로젝트 속성을 선택한 다음 빌드에서 플랫폼 대상을 찾으십시오.

    프로젝트 속성

    빌드 탭

Syncfusion 패키지를 사용하여 C#에서 PDF 파일을 이미지로 변환

  • 위에서 설명한 대로 1단계에 따라 Visual Studio 2019 이상 버전에서 콘솔 응용 프로그램을 만듭니다.
  • 위 섹션에 설명된 2단계와 3단계에 따라 NuGet.org에서 Syncfusion 패키지를 찾습니다.
  • Syncfusion.pdfViewer.Windows 패키지를 검색하여 설치합니다.

    Syncfusion 패키지

  • 위에서 언급한 6단계에 따라 System.DrawingSystem.Windows.Forms에 대한 참조를 추가합니다.

    참조 - 시스템 드로잉 및 시스템 Windows Forms

  • 다음 코드 조각을 Program.cs 파일에 복사하여 PDF 파일의 단일 페이지를 이미지로 변환합니다. for 루프를 사용하여 다중 페이지 변환을 위해 사용자 정의할 수 있습니다.
  • 요구 사항에 따라 입력 및 출력 파일 이름을 사용자 지정합니다. ExportAsImage() 메소드에서 적절한 매개변수를 전달하여 변환할 특정 페이지를 선택할 수 있습니다.
    using Syncfusion.Pdf.Parsing;
    using Syncfusion.Windows.Forms.PdfViewer;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace PDFToJPEG {
      class Program {
        static void Main(string[] args) {
          // Initialize the PdfViewer Control
          PdfViewerControl pdfViewer = new PdfViewerControl();
    
          // Load the input PDF file
          PdfLoadedDocument document = new PdfLoadedDocument("../../Data/document.pdf");
    
          pdfViewer.Load(document);
    
          Bitmap image = pdfViewer.ExportAsImage(0);
    
          // Save the image.
          image.Save("output.jpg", ImageFormat.Jpeg);
        }
      }
    }
    

    프로젝트 디렉터리->bin->Debug로 이동하여 출력 이미지 파일을 찾습니다.

PDFRasterizer를 사용하여 C#에서 PDF 파일을 이미지로 변환

PDFRasterizer는 PDF 파일을 C#으로 개발된 이미지로 변환하는 도구입니다. Windows Form을 이용한 GUI를 제공합니다.

소스 코드를 다운로드하여 오류 없이 사용할 수 있습니다. PDFRasterizer로 이동하여 구성 요소를 다운로드합니다.

관련 문장 - Csharp PDF

관련 문장 - Csharp Image