푸터 콘텐츠로 바로가기
IRONPDF 사용하기

IronPDF를 사용하여 VB.NET PDF 뷰어 생성하기: 완벽한 튜토리얼

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
Imports IronPdf
$vbLabelText   $csharpLabel

이 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
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
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
End Class
$vbLabelText   $csharpLabel

코드 설명:

  • 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
' 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
' 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
$vbLabelText   $csharpLabel

이 비공개 서브루틴은 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
' 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
' 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
$vbLabelText   $csharpLabel

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

출력

다양한 소스에서 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
' 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
' 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
$vbLabelText   $csharpLabel

이 비공개 서브루틴은 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
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
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
$vbLabelText   $csharpLabel

이는 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
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
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
$vbLabelText   $csharpLabel

이 예제는 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
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
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
$vbLabelText   $csharpLabel

이 코드는 데스크톱에서 가독성을 향상시키기 위해 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 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 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
$vbLabelText   $csharpLabel

이 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
' 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
Imports System.IO
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Windows.Media.Imaging

' 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
$vbLabelText   $csharpLabel

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

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

메모리 관리

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

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

비동기 로딩

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
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
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
$vbLabelText   $csharpLabel

결론

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

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

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

!{--010011000100100101000010010100100100000101010010010110010101111101001110010101010001110100010101010100010111110100100101001110010100110101010001000001010011000100110001001100010111110100001001001100010011110100001101001011--}

자주 묻는 질문

VB.NET에서 PDF 뷰어를 어떻게 만들 수 있나요?

IronPDF를 사용하여 VB.NET에서 PDF 뷰어를 만들 수 있습니다. 이를 통해 .NET 애플리케이션에서 PDF 페이지를 열고, 보고, 확대하고, 탐색하고, 인쇄하고, 저장할 수 있습니다.

.NET에서 PDF 파일을 표시할 때 개발자가 직면하는 어려움은 무엇입니까?

개발자들은 종종 .NET Framework와 .NET Core가 PDF 파일을 보기 위한 내장 메서드를 제공하지 않기 때문에 어려움을 겪습니다. 이로 인해 많은 개발자들이 구식 ActiveX 컨트롤이나 복잡한 서드파티 도구에 의존하게 됩니다.

IronPDF는 .NET Framework와 .NET Core 모두에서 사용할 수 있습니까?

네, IronPDF는 .NET Framework와 .NET Core 모두에서 호환되며, VB.NET에서 PDF 보기 응용 프로그램을 개발하기 위한 다목적 선택입니다.

IronPDF가 PDF 보기 기능에 제공하는 기능은 무엇입니까?

IronPDF는 .NET 애플리케이션에서 PDF 문서를 열고, 보고, 확대하고, 탐색하고, 인쇄하고, 저장할 수 있는 기능을 제공하여 사용자 경험을 향상시킵니다.

VB.NET에서 PDF 보기용 ActiveX 컨트롤 사용을 피해야 하는 이유는 무엇인가요?

ActiveX 컨트롤은 종종 구식이며 구현이 복잡해질 수 있습니다. IronPDF와 같은 최신 라이브러리는 VB.NET에서 PDF 보기를 위한 더 간편하고 신뢰할 수 있는 솔루션을 제공합니다.

VB.NET에서 IronPDF를 사용하여 PDF 문서를 인쇄할 수 있습니까?

네, IronPDF를 사용하면 VB.NET 애플리케이션에서 PDF 문서를 직접 인쇄할 수 있어 사용자가 문서의 하드 카피가 필요할 때 원활한 경험을 제공합니다.

IronPDF는 사용자에게 PDF 보기 경험을 어떻게 개선합니까?

IronPDF는 PDF와 상호작용하기 위한 간편한 기능을 제공함으로써 PDF 보기 경험을 개선합니다. 부드러운 탐색, 확대 및 문서를 쉽게 저장하고 인쇄할 수 있는 기능이 있습니다.

IronPDF는 .NET 10에서 VB.NET PDF 뷰어 응용 프로그램과 호환됩니까?

네, IronPDF는 .NET 10과 완전히 호환됩니다. .NET 10에서 실행되는 VB.NET 프로젝트뿐만 아니라 .NET 9, .NET 8, .NET Core, .NET Standard, .NET Framework 4.6.2+와 같은 이전 버전도 지원합니다. 이를 통해 최신 플랫폼을 사용하여 VB.NET PDF 뷰어 응용 프로그램을 빌드할 수 있습니다.

커티스 차우
기술 문서 작성자

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

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해