IRONSOFTWAREHOME
IRONPDF 사용하기

C#을 사용하여 PDF를 비트맵으로 변환하는 방법

Curtis Chau
Curtis Chau
Updated: 2026년 4월 23일

VB.NET 애플리케이션 내부에 직접 PDF 문서를 표시하는 것은 많은 개발자에게 여전히 까다로울 수 있습니다. .NET Framework와 .NET Core는 PDF 파일을 보는 기본 제공 방법을 제공하지 않으므로 사람들은 종종 오래된 ActiveX 컨트롤이나 복잡한 서드파티 도구에 의존합니다. 이는 개발자와 사용자 모두에게 실망감을 줄 수 있습니다.

Windows Forms 또는 WPF 애플리케이션을 구축 중이라면 신뢰할 수 있는 PDF 뷰잉 솔루션이 필요합니다. 송장, 보고서 또는 PDF 형식으로 변환된 Word 문서 등 어떠한 경우에도, IronPDF는 외부 구성 요소가 필요 없도록 하여 이 과정을 단순화하고 프로젝트 내에서 직접 PDF를 생성, 편집 및 처리할 수 있는 강력한 옵션을 제공합니다.

이 튜토리얼에서는 VB.NET PDF 뷰어를 단계별로 구축하는 방법을 안내합니다. 마지막까지, 전문가처럼 앱에서 PDF 문서를 생성하고 표시하는 방법을 알게 될 것입니다. 추가적으로, 확대, 내비게이션, 인쇄 등의 기능을 얼마나 쉽게 추가할 수 있는지도 보게 될 것입니다. 최근 내부 프로젝트에서 이 접근 방식을 시도했으며, 팀의 보고서 검토 프로세스를 상당히 가속화했습니다.

VB.NET에서 PDF 뷰잉이 어려운 이유는 무엇인가요?

Visual Studio 도구 상자에는 표준 PDF 뷰어 컨트롤이 없습니다. 개발자들은 종종 PDF 파일을 표시하기 위해 Internet Explorer나 임베디드 WebBrowser 컨트롤에 의존하지만, 이러한 접근 방식은 사용자의 기본 PDF 리더에 의존하며, 배포 시 숨겨진 비용을 초래할 수 있습니다.

전통적인 솔루션은 또한 올바른 PDF 폼 처리, 인쇄 또는 렌더링을 위해 외부 소프트웨어 설치 또는 수동 구성을 요구할 수 있으며, 이는 복잡성을 증가시키고 여러 Windows 환경에서 PDF의 표시를 사용자화하는 능력을 제한합니다.

IronPDF는 VB.NET의 PDF 뷰잉을 어떻게 단순화하나요?

IronPDF는 Adobe Reader나 다른 외부 뷰어를 필요로 하지 않는 독립적인 라이브러리를 제공하여, VB.NET 애플리케이션의 PDF 처리를 변환합니다. 기본 뷰잉을 넘어 개발자가 익숙한 .NET 패턴을 사용하여 프로그래밍 방식으로 PDF를 생성, 편집, 조작, 렌더링할 수 있게 합니다.

라이브러리의 아키텍처는 Chrome 기반의 렌더링 엔진을 활용하여, 양식, 주석 및 내장 멀티미디어와 같은 최신 기능을 완벽하게 지원하는 복잡한 PDF의 픽셀 완벽한 표시를 보장합니다. 이 접근 방식은 모든 Windows 환경에서 일관된 렌더링을 보장합니다.

주요 기능은 다음과 같습니다

  • 다운로드나 브라우저 종속성 없이 직접 PDF 렌더링
  • Word 문서나 HTML을 PDF 형식으로 변환
  • PDF 페이지 편집, 분할 및 병합
  • PDF 양식 채우기 및 추출
  • 사용자 정의 가능한 설정으로 내장 인쇄 지원
  • 템플릿, 이미지 및 다중 페이지 PDF 파일 지원

이러한 기능들은 IronPDF를 .NET 애플리케이션을 위해 매우 사용자화 가능한 솔루션으로 만들어 복잡한 PDF 문서를 데스크톱 또는 웹 애플리케이션 환경에서 처리할 수 있게 합니다.

VB.NET 프로젝트에 IronPDF를 설치하는 방법은?

IronPDF 설정은 NuGet 패키지 관리자에서 몇 가지 단계만으로 가능합니다. Visual Studio에서 VB.NET Windows Forms 프로젝트를 열고 다음 단계를 따르세요:

  1. 새로운 프로젝트를 Visual Studio에서 열고 대상 프레임워크 또는 .NET Core를 선택합니다.
  2. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다
  3. 'NuGet 패키지 관리'를 선택합니다
  4. 찾아보기 탭에서 'IronPDF'를 검색합니다.
  5. IronPDF 패키지를 설치합니다.

설치 후, VB.NET 파일에 다음 import 문을 추가하세요:

Imports IronPdf

이 import 문은 VB.NET 프로젝트에서 모든 IronPDF 클래스와 메서드에 액세스할 수 있게 하여, PDF 문서를 프로그래밍 방식으로 로드, 렌더, 인쇄, 조작할 수 있게 합니다.

이 설치에는 모든 필요한 런타임 구성요소가 포함되어 수동 구성을 제거하고 숨겨진 비용을 피할 수 있습니다.

Windows Forms에서 기본 PDF 뷰어를 만드는 방법은?

PDF 뷰어를 구축하는 것은 Windows Forms 애플리케이션을 만들고 IronPDF의 렌더링 기능을 구현하는 것으로 시작합니다. 애플리케이션에서 PDF를 표시하는 간소화된 방법은 다음과 같습니다:

Imports System.Drawing
Imports System.IO
Imports IronPdf
Public Class Form1
    Private currentPdf As PdfDocument
    Private pdfBitmaps() As Bitmap
    Private currentPage As Integer = 0
    Private zoomLevel As Double = 1.0
    ' Load PDF Button
    Private Sub LoadPdfButton_Click(sender As Object, e As EventArgs) Handles LoadPdfButton.Click
        Using openFileDialog As New OpenFileDialog()
            openFileDialog.Filter = "PDF Files (*.pdf)|*.pdf"
            If openFileDialog.ShowDialog() = DialogResult.OK Then
                ' Load PDF
                currentPdf = PdfDocument.FromFile(openFileDialog.FileName)
                ' Render all pages to image files
                Dim filePaths As String() = currentPdf.RasterizeToImageFiles("page_*.png")
                ' Load images into memory
                Dim pageList As New List(Of Bitmap)()
                For Each filePath As String In filePaths
                    Using ms As New MemoryStream(File.ReadAllBytes(filePath))
                        Dim bmp As New Bitmap(ms)
                        pageList.Add(bmp)
                    End Using
                Next
                pdfBitmaps = pageList.ToArray()
                currentPage = 0
                zoomLevel = 1.0
                DisplayCurrentPage()
            End If
        End Using
    End Sub
    ' Show the current page in PictureBox
    Private Sub DisplayCurrentPage()
        If pdfBitmaps IsNot Nothing AndAlso currentPage < pdfBitmaps.Length Then
            Dim bmp As Bitmap = pdfBitmaps(currentPage)
            ' Apply zoom
            Dim newWidth As Integer = CInt(bmp.Width * zoomLevel)
            Dim newHeight As Integer = CInt(bmp.Height * zoomLevel)
            Dim zoomedBmp As New Bitmap(bmp, newWidth, newHeight)
            PictureBox1.Image = zoomedBmp
        Else
            PictureBox1.Image = Nothing
        End If
        UpdateNavigationButtons()
    End Sub

코드 설명:

  • currentPdf는 로드된 PDF 문서를 저장합니다.
  • pdfBitmaps는 각 PDF 페이지에 대한 비트맵 이미지를 보유하여 PictureBox 컨트롤에 표시할 수 있습니다.
  • LoadPdfButton_Click는 표준 OpenFileDialog를 사용해 사용자가 PDF 파일을 선택하도록 합니다.
  • PdfDocument.FromFile은 PDF 문서를 로드하고, RasterizeToImageFiles는 각 페이지를 이미지 파일로 변환합니다.
  • 각 파일은 메모리로 읽어 비트맵으로 추가되고, 첫 번째 페이지는 DisplayCurrentPage()로 표시됩니다.

프로그램을 실행하면, 'Load PDF' 버튼을 클릭할 때 대화 상자를 통해 PDF 파일을 로드할 수 있습니다.

PDF 내비게이션을 구현하는 방법은?

내비게이션은 다중 페이지 문서에서의 이동을 허용하여 사용자 경험을 향상시킵니다. 이 구현으로 폼에 이전 및 다음 버튼을 추가하세요:

' Next Page Button
Private Sub NextButton_Click(sender As Object, e As EventArgs) Handles NextButton.Click
    If currentPage < pdfBitmaps.Length - 1 Then
        currentPage += 1
        DisplayCurrentPage()
    End If
End Sub
' Previous Page Button
Private Sub PreviousButton_Click(sender As Object, e As EventArgs) Handles PreviousButton.Click
    If currentPage > 0 Then
        currentPage -= 1
        DisplayCurrentPage()
    End If
End Sub

이 비공개 서브루틴은 Object sender, EventArgs e를 사용해 PDF 페이지를 넘나들며 내비게이션을 처리합니다. 버튼은 currentPage를 업데이트하고 DisplayCurrentPage()를 호출해 PDF 페이지를 Windows Form에서 렌더링합니다.

' Update navigation controls and page label
Private Sub UpdateNavigationButtons()
    PreviousButton.Enabled = currentPage > 0
    NextButton.Enabled = currentPage < pdfBitmaps.Length - 1
    PageLabel.Text = $"Page {currentPage + 1} of {pdfBitmaps.Length}"
End Sub

이는 버튼 상태를 업데이트하고 사용자가 처음이나 마지막 페이지를 넘어서 내비게이션할 수 없도록 하며, 라벨은 현재 페이지 번호와 총 페이지 수를 표시합니다.

산출

다양한 소스에서 PDF 파일을 로드하는 방법은?

IronPDF는 로컬 파일 외에도 다양한 소스에서 PDF 로드를 지원합니다. 이런 유연성은 데이터베이스, 웹 서비스, 메모리 스트림과 통합할 수 있게 합니다:

URL에서 로드하기

' Load PDF from URL
Private Sub LoadUrlButton_Click(sender As Object, e As EventArgs) Handles LoadUrlButton.Click
    Dim url As String = UrlTextBox.Text.Trim()
    If String.IsNullOrEmpty(url) Then
        MessageBox.Show("Please enter a valid URL.")
        Return
    End If
    Try
        LoadFromUrl(url)
    Catch ex As Exception
        MessageBox.Show("Failed to load PDF: " & ex.Message)
    End Try
End Sub

이 비공개 서브루틴은 URL 입력을 확인하고, 유효하지 않으면 경고를 표시하고 LoadFromUrl을 호출해 PDF를 동적으로 렌더링합니다.

Private Sub LoadFromUrl(url As String)
    Dim renderer As New ChromePdfRenderer()
    renderer.RenderingOptions.EnableJavaScript = True
    renderer.RenderingOptions.CssMediaType = Rendering.PdfCssMediaType.Print
    renderer.RenderingOptions.WaitFor.JavaScript(3000)
    currentPdf = renderer.RenderUrlAsPdf(url)
    LoadPdfBitmaps()
End Sub

이는 ChromePdfRenderer를 사용해 웹 페이지 URL을 PDF 문서로 변환합니다. 옵션은 JavaScript 실행 및 출력에 적합한 CSS를 허용하며, 그런 다음 PDF 페이지는 비트맵으로 로드됩니다.

산출

IronPDF로 VB.NET PDF 뷰어 만드는 방법: 완전한 튜토리얼: 그림 3 - PDF 뷰어에 표시된 URL에서의 PDF

HTML 콘텐츠에서 로드

Private Sub LoadHtmlButton_Click(sender As Object, e As EventArgs) Handles LoadHtmlButton.Click
    Dim htmlContent As String = "<html><body><h1>Hello PDF!</h1><p>This is a hardcoded HTML PDF test.</p></body></html>"
    LoadFromHtml(htmlContent)
End Sub
Private Sub LoadFromHtml(htmlContent As String)
    Dim renderer As New ChromePdfRenderer()
    currentPdf = renderer.RenderHtmlAsPdf(htmlContent)
    LoadPdfBitmaps()
End Sub

이 예제는 HTML 콘텐츠를 RenderHtmlAsPdf 메서드를 사용하여 PDF로 변환합니다. 이 과정은 동적 보고서나 템플릿에 이상적입니다.

산출

IronPDF로 VB.NET PDF 뷰어 만드는 방법: 완전한 튜토리얼: 그림 4 - PDF 뷰어에 표시된 HTML에서의 PDF

이 방법들은 임시 파일 없이 동적 PDF 생성 및 보기를 가능하게 하며 성능과 보안을 향상시킵니다.

줌 기능을 추가하는 방법?

줌 컨트롤은 세부적인 문서의 가독성을 향상시킵니다. 이미지 스케일링을 사용하여 줌을 구현하십시오:

Private Sub ZoomInButton_Click(sender As Object, e As EventArgs) Handles ZoomInButton.Click
        zoomLevel = Math.Min(zoomLevel + 0.25, 3.0)
        DisplayCurrentPage()
    End Sub
    Private Sub ZoomOutButton_Click(sender As Object, e As EventArgs) Handles ZoomOutButton.Click
        zoomLevel = Math.Max(zoomLevel - 0.25, 0.5)
        DisplayCurrentPage()
    End Sub
    Private Sub ApplyZoom()
        If pdfBitmaps IsNot Nothing AndAlso currentPage < pdfBitmaps.Length Then
            Dim pageImage As Bitmap = pdfBitmaps(currentPage)
            Dim newWidth As Integer = CInt(pageImage.Width * zoomLevel)
            Dim newHeight As Integer = CInt(pageImage.Height * zoomLevel)
            Dim zoomedImage As New Bitmap(pageImage, newWidth, newHeight)
            PictureBox1.Image = zoomedImage
        Else
            PictureBox1.Image = Nothing
        End If
    End Sub

이 코드는 데스크톱에서 가독성을 향상시키기 위해 zoomLevel을 단계적으로 조정하고 DisplayCurrentPage()를 호출하여 줌 스케일링을 적용합니다.

PDF 문서를 인쇄하는 방법?

인쇄 기능은 뷰어 경험을 완성합니다. IronPDF는 내장 메소드로 인쇄를 간소화합니다:

Private Sub PrintButton_Click(sender As Object, e As EventArgs) Handles PrintButton.Click
        If currentPdf IsNot Nothing Then
            ' Simple print with default settings
            currentPdf.Print()
            ' Or with custom settings
            Dim printDoc As PrintDocument = currentPdf.GetPrintDocument()
            Using printDialog As New PrintDialog()
                printDialog.Document = printDoc
                If printDialog.ShowDialog() = DialogResult.OK Then
                    printDoc.Print()
                End If
            End Using
        End If
    End Sub

이 Private Sub는 사용자가 기본 또는 사용자 정의 프린터 설정을 사용하여 PDF 문서를 인쇄할 수 있도록 합니다. GetPrintDocument()는 Windows Forms PrintDialog와 통합할 수 있는 PrintDocument 개체를 반환합니다.

WPF 애플리케이션에서 PDF 보기를 구현하는 방법?

Windows Forms가 데스크톱 개발을 지배하는 동안 WPF 애플리케이션도 IronPDF를 활용할 수 있습니다. 접근 방식이 약간 다릅니다:

' In WPF Window code-behind
Private Sub LoadPdfInWpf(filePath As String)
    Dim pdfDoc As PdfDocument = PdfDocument.FromFile(filePath)
    Dim pageImage As Bitmap = pdfDoc.ToBitmap(0)
    ' Convert to WPF-compatible image
    Dim bitmapImage As New BitmapImage()
    Using memory As New MemoryStream()
        pageImage.Save(memory, ImageFormat.Png)
        memory.Position = 0
        bitmapImage.BeginInit()
        bitmapImage.StreamSource = memory
        bitmapImage.CacheOption = BitmapCacheOption.OnLoad
        bitmapImage.EndInit()
    End Using
    ImageControl.Source = bitmapImage
End Sub

PDF 뷰어 성능에 대한 최선의 실천은 무엇인가요?

PDF 보기 최적화는 원활한 사용자 경험을 보장합니다:

메모리 관리

사용을 마치면 항상 PDF 문서를 폐기하십시오:

Protected Overrides Sub OnFormClosed(e As FormClosedEventArgs)
    If currentPdf IsNot Nothing Then
        currentPdf.Dispose()
    End If
    MyBase.OnFormClosed(e)
End Sub

비동기 로딩

IronPDF는 대규모 PDF를 UI가 멈추지 않도록 비동기 로딩을 추가적으로 지원합니다:

Private Async Sub LoadPdfAsync(filePath As String)
    LoadingLabel.Visible = True
    Await Task.Run(Sub()
        currentPdf = PdfDocument.FromFile(filePath)
    End Sub)
    LoadingLabel.Visible = False
    DisplayCurrentPage()
End Sub

결론

IronPDF를 사용하여 VB.NET에서 PDF 뷰어를 구축하는 것은 전통적인 접근 방식의 복잡성을 제거하면서 전문적인 기능을 제공합니다. 기본 파일 보기에서 고급 PDF 폼 처리 및 인쇄까지, IronPDF는 Windows Forms 애플리케이션 내에서 PDF 상호작용의 모든 측면을 처리합니다.

보고서를 표시하든, 양식을 처리하든, 문서 관리 시스템을 구현하든, IronPDF는 포괄적인 PDF 솔루션에 필요한 도구, 지원 및 라이선스 옵션을 제공합니다.

IronPDF의 무료 체험판으로 VB.NET PDF 뷰어 프로젝트를 시작하여 모든 기능을 탐색하십시오. 유연한 라이선스로 생산 배포에 확장하십시오. IronPDF 문서를 방문하여 자세한 API 문서와 추가 예제를 확인하고 종합적인 VB.NET 코드 샘플을 탐색하십시오.

NuGetNuGet을 사용하여 설치하세요

PM > Install-Package IronPdf

Install IronPDF by running the command above in the NuGet Package Manager Console, or search for the package in the NuGet Package Manager.
Curtis Chau
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

...
더 읽어보기

관련 기사

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.