Altbilgi içeriğine atla
GEçIş KıLAVUZLARı

PdfiumViewer'dan IronPDF'e C# ile Nasıl Geçilir

PdfiumViewer'dan IronPDF'ye geçiş, .NET PDF iş akışınızı Google'ın PDFium'u etrafında inşa edilmiş - yerel ikili bağımlılıklara ve sadece sayfa düzeyinde metin çıkartmalarına sahip - bir Windows Forms görüntüleyici ve render sarmalayıcıdan, oluşturma, manipülasyon, tam metin çıkarımı ve rendering'i tüm .NET uygulama türlerinde yöneten kapsamlı bir PDF çözümüne taşır. Bu kılavuz, PdfiumViewer'ın asla sağlamak için tasarlanmadığı yetenekleri eklerken platform kısıtlamalarını ortadan kaldıran tam bir adım adım geçiş yolunu sağlar.

Neden PdfiumViewer'dan IronPDF'e Geçmelisiniz?

PdfiumViewer'ı Anlamak

PdfiumViewer (NuGet paketi PdfiumViewer, depo pvginkel/PdfiumViewer, Apache 2.0) .NET için Google'ın PDFium render motorunu kullanan bir sarmalayıcıdır — Chrome içinde kullanılan aynı motor — PDF görüntüleme ve rasterize etme işlevlerini Windows Forms uygulamaları için sunar.

PdfiumViewer bir izleyici ve render sunucusudur, jeneratör değildir. PDF oluşturma, düzenleme veya manipülasyonunu desteklemez ve metin API'si (PdfDocument.GetPdfText(int page)) düzen veya kelime başına koordinatlar olmadan ham sayfa metni döndürür. Üst düzey depo, 2 Ağustos 2019'da sahibi tarafından arşivlendi ve son NuGet sürümü (2.13.0) 6 Kasım 2017'de yayımlandı - mevcut kod çalışmaya devam eder, ancak bundan sonra düzeltmeler, .NET 6+ güncellemeleri veya CVE yamaları gelmeyecek.

KritikPdfiumViewerSınırlamaları

  1. Sadece Görüntüleyici / rendercı: HTML, resimler veya programmatik olarak PDF oluşturamaz. PdfiumViewer'ın yetenekleri, görüntüleme ve rasterizasyonla sınırlıdır - PDF oluşturmayı, düzenlemeyi, birleştirmeyi veya diğer manipülatif işlevleri desteklemez.

  2. Windows Forms / Sadece Windows: System.Drawing ve WinForms kontrol elemanları etrafında oluşturulmuştur; diğer UI frameworkleri için tasarlanmamıştır ve System.Drawing.Common .NET 6+ üzerinde yalnızca Windows için mevcuttur.

  3. PDF manipülasyonu yok: PDF içeriğini birleştirme, bölme veya değiştirme mümkün değil.

  4. Yerel ikili bağımlılıklar: Platforma özgü PDFium ikili dosyaları PdfiumViewer.Native.x86.v8-xfa ve PdfiumViewer.Native.x86_64.v8-xfa (veya no-V8 / no-XFA varyantları) aracılığıyla gerektirir.

  5. Yukarı akışta arşivlendi: Repo 2019-08-02 tarihinde arşivlendi; son NuGet sürümü 2.13.0 (2017-11-06); daha fazla güncelleme yok.

  6. Sadece sayfa düzeyinde metin çıkarma: PdfDocument.GetPdfText(int page) ham sayfa metni döndürür — kelime başına koordinatlar yok, düzen yeniden yapılandırma yok ve yalnızca görüntü içeren PDF'ler için OCR yoktur.

  7. HTML'den PDF'ye yok: PDFium HTML'i parse etmez. HTML'den bir PDF üretmek için ayrı bir oluşturucuya ihtiyacınız var (wkhtmltopdf, IronPDF, PuppeteerSharp, vb.) ve ardındanPdfiumViewerile sonucu görüntüleme veya rasterleştirme için yükleyebilirsiniz.

  8. Başlıklar/Altbilgiler yok: Sayfa numaraları veya tekrarlayan içerik eklenemez.

  9. Filigran yok: Belgeleri üst baskılarla damgalamak mümkün değil.

  10. Güvenlik özellikleri yok: PDF'leri şifrelemek veya parolayla korumak mümkün değil.

PdfiumViewerve IronPDF Karşılaştırması

Aspekt PdfiumViewer IronPDF
Temel Odak WinForms PDF görüntüleyici Tam PDF çözümü
Lisans Apache 2.0 Ticari
PDF Oluşturma ✓(HTML, URL, görüntüler)
PDF Manipülasyonu ✓(birleştirme, bölme, düzenleme)
HTML'den PDF'ye ✓(Chromium motoru)
Metin Çıkarımı Sadece sayfa düzeyinde (GetPdfText) Tam (yerleşim ile, sayfa başına)
Filigranlar
Başlıklar/Altbilgiler
Güvenlik
Yerleşik Görüntüleyici ✗ (arka plan odaklı)
Platform Desteği Yalnızca Windows / WinForms Konsol, Web, Masaüstü, platformlar arası
Örüntü Desteği .NET Framework 2.0+ .NET Framework, Core, 5+
Bakım 2019-08-02 tarihinde arşivlendi (son sürüm 2017-11-06) Aktif

Modern .NET'i hedefleyen ekipler için,IronPDF tüm .NET uygulama türleri üzerinde çalışan ve Windows Forms sınırlamasını ve yerel ikili karmaşıklığı ortadan kaldıran kapsamlı, aktif olarak sürdürülen bir temel sunar.


Başlamadan Önce

Ön Koşullar

  1. .NET Ortamı: .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet Erişimi: NuGet paketlerini yükleyebilme
  3. IronPDF Lisansı: Lisans anahtarınızı ironpdf.com adresinden edinin

NuGet Paket Değişiklikleri

# RemovePdfiumViewerpackages
dotnet remove package PdfiumViewer
dotnet remove package PdfiumViewer.Native.x86.v8-xfa
dotnet remove package PdfiumViewer.Native.x86_64.v8-xfa

# Install IronPDF
dotnet add package IronPdf
# RemovePdfiumViewerpackages
dotnet remove package PdfiumViewer
dotnet remove package PdfiumViewer.Native.x86.v8-xfa
dotnet remove package PdfiumViewer.Native.x86_64.v8-xfa

# Install IronPDF
dotnet add package IronPdf
SHELL

Lisans Yapılandırması

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

PdfiumViewerKullanımını Belirlemek

# FindPdfiumViewerusage
grep -r "PdfiumViewer\|PdfViewer\|PdfDocument\.Load" --include="*.cs" .

# Find native binary references
grep -r "pdfium\.dll\|Native\.x86\|Native\.x64" --include="*.csproj" .

# Find viewer control usage
grep -r "PdfViewer" --include="*.cs" --include="*.Designer.cs" .
# FindPdfiumViewerusage
grep -r "PdfiumViewer\|PdfViewer\|PdfDocument\.Load" --include="*.cs" .

# Find native binary references
grep -r "pdfium\.dll\|Native\.x86\|Native\.x64" --include="*.csproj" .

# Find viewer control usage
grep -r "PdfViewer" --include="*.cs" --include="*.Designer.cs" .
SHELL

Tam API Referansı

Ad Alanı Değişiklikleri

// PdfiumViewer
using PdfiumViewer;

// IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Editing;
// PdfiumViewer
using PdfiumViewer;

// IronPDF
using IronPdf;
using IronPdf.Rendering;
using IronPdf.Editing;
Imports PdfiumViewer

Imports IronPdf
Imports IronPdf.Rendering
Imports IronPdf.Editing
$vbLabelText   $csharpLabel

Çekirdek Sınıf Eşlemeleri

PdfiumViewer IronPDF
PdfDocument PdfDocument
PdfViewer (eşdeğeri yoktur)
PdfRenderer ChromePdfRenderer
(mevcut değil) HtmlHeaderFooter

Belge Yükleme Eşlemeleri

PdfiumViewer IronPDF
PdfDocument.Load(path) PdfDocument.FromFile(path)
PdfDocument.Load(stream) PdfDocument.FromStream(stream)
PdfDocument.Load(path, password) PdfDocument.FromFile(path, password)
(bayt aşırı yüklememesi yok — MemoryStream içinde sarın) PdfDocument.FromBinaryData(bytes)

Belge Özellikleri Eşleşmeleri

PdfiumViewer IronPDF
document.PageCount document.PageCount
document.PageSizes[i] document.Pages[i].Width/Height
document.GetPdfText(pageIndex) pdf.Pages[pageIndex].Text

Sayfa Render Eşleşmeleri

PdfiumViewer IronPDF
document.Render(pageIndex, dpiX, dpiY, forPrinting) pdf.ToBitmap(pageIndex)
document.Render(pageIndex, width, height, dpiX, dpiY, flags) pdf.RasterizeToImageFiles(path, dpi)

Belgeleri Kaydetme Eşleşmeleri

PdfiumViewer IronPDF
document.Save(path) pdf.SaveAs(path)
document.Save(stream) new MemoryStream(pdf.BinaryData)
(mevcut değil) pdf.BinaryData (byte[] döndürür)

Yeni veya Önemli Genişletilmiş Özellikler vs PdfiumViewer

IronPDF Özelliği Açıklama
pdf.ExtractAllText() Tüm belge metni çıkarma (PdfiumViewer yalnızca sayfa düzeyinde GetPdfText sunar)
pdf.ExtractTextFromPage(index) Belirli bir sayfadan metin çıkart
ChromePdfRenderer.RenderHtmlAsPdf() HTML'den Oluştur
ChromePdfRenderer.RenderUrlAsPdf() URL'den Oluştur
PdfDocument.Merge() PDF'leri birleştir
pdf.CopyPages() Sayfaları çıkar
pdf.RemovePages() Sayfaları sil
pdf.ApplyWatermark() Filigran ekleme
pdf.AddHtmlHeaders() Başlık ekle
pdf.AddHtmlFooters() Alt başlık ekle
pdf.SecuritySettings Parola koruması
pdf.Form Form doldurma

Kod Göç Örnekleri

Örnek 1: PDF'ten Metin Çıkarma

Önce (PdfiumViewer):

// NuGet: Install-Package PdfiumViewer
//        Install-Package PdfiumViewer.Native.x86.v8-xfa
//        Install-Package PdfiumViewer.Native.x86_64.v8-xfa
using PdfiumViewer;
using System;
using System.Text;

string pdfPath = "document.pdf";

//PdfiumViewerexposes page-level text extraction via
// PdfDocument.GetPdfText(int page). It returns raw page text only —
// no layout, no per-word coordinates, no OCR for image-only pages.
using (var document = PdfDocument.Load(pdfPath))
{
    int pageCount = document.PageCount;
    Console.WriteLine($"Total pages: {pageCount}");

    var sb = new StringBuilder();
    for (int i = 0; i < pageCount; i++)
    {
        string pageText = document.GetPdfText(i);
        sb.AppendLine($"--- Page {i + 1} ---");
        sb.AppendLine(pageText);
    }

    Console.WriteLine(sb.ToString());
}
// NuGet: Install-Package PdfiumViewer
//        Install-Package PdfiumViewer.Native.x86.v8-xfa
//        Install-Package PdfiumViewer.Native.x86_64.v8-xfa
using PdfiumViewer;
using System;
using System.Text;

string pdfPath = "document.pdf";

//PdfiumViewerexposes page-level text extraction via
// PdfDocument.GetPdfText(int page). It returns raw page text only —
// no layout, no per-word coordinates, no OCR for image-only pages.
using (var document = PdfDocument.Load(pdfPath))
{
    int pageCount = document.PageCount;
    Console.WriteLine($"Total pages: {pageCount}");

    var sb = new StringBuilder();
    for (int i = 0; i < pageCount; i++)
    {
        string pageText = document.GetPdfText(i);
        sb.AppendLine($"--- Page {i + 1} ---");
        sb.AppendLine(pageText);
    }

    Console.WriteLine(sb.ToString());
}
Imports PdfiumViewer
Imports System
Imports System.Text

Dim pdfPath As String = "document.pdf"

' PdfiumViewer exposes page-level text extraction via
' PdfDocument.GetPdfText(Integer page). It returns raw page text only —
' no layout, no per-word coordinates, no OCR for image-only pages.
Using document As PdfDocument = PdfDocument.Load(pdfPath)
    Dim pageCount As Integer = document.PageCount
    Console.WriteLine($"Total pages: {pageCount}")

    Dim sb As New StringBuilder()
    For i As Integer = 0 To pageCount - 1
        Dim pageText As String = document.GetPdfText(i)
        sb.AppendLine($"--- Page {i + 1} ---")
        sb.AppendLine(pageText)
    Next

    Console.WriteLine(sb.ToString())
End Using
$vbLabelText   $csharpLabel

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

string pdfPath = "document.pdf";

// Open and extract text from PDF
PdfDocument pdf = PdfDocument.FromFile(pdfPath);

// Extract text from all pages
string allText = pdf.ExtractAllText();
Console.WriteLine("Extracted Text:");
Console.WriteLine(allText);

// Extract text from specific page
string pageText = pdf.ExtractTextFromPage(0);
Console.WriteLine($"\nFirst page text: {pageText}");

Console.WriteLine($"\nTotal pages: {pdf.PageCount}");
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

string pdfPath = "document.pdf";

// Open and extract text from PDF
PdfDocument pdf = PdfDocument.FromFile(pdfPath);

// Extract text from all pages
string allText = pdf.ExtractAllText();
Console.WriteLine("Extracted Text:");
Console.WriteLine(allText);

// Extract text from specific page
string pageText = pdf.ExtractTextFromPage(0);
Console.WriteLine($"\nFirst page text: {pageText}");

Console.WriteLine($"\nTotal pages: {pdf.PageCount}");
Imports IronPdf
Imports System

Module Program
    Sub Main()
        Dim pdfPath As String = "document.pdf"

        ' Open and extract text from PDF
        Dim pdf As PdfDocument = PdfDocument.FromFile(pdfPath)

        ' Extract text from all pages
        Dim allText As String = pdf.ExtractAllText()
        Console.WriteLine("Extracted Text:")
        Console.WriteLine(allText)

        ' Extract text from specific page
        Dim pageText As String = pdf.ExtractTextFromPage(0)
        Console.WriteLine(vbCrLf & "First page text: " & pageText)

        Console.WriteLine(vbCrLf & "Total pages: " & pdf.PageCount)
    End Sub
End Module
$vbLabelText   $csharpLabel

PdfiumViewer'ın metin API'si PdfDocument.GetPdfText(int page) — yalnızca sayfa düzeyinde ham metin, düzen yeniden yapılandırma yok, kelime başına koordinatlar yok ve yalnızca görüntü içeren PDF'ler için OCR geri dönüşü yoktur. Düz metin dökümü ötesinde bir şey, ya özel yerleşim sezgisel bilgileri ya da farklı bir kütüphane gerektirir.

IronPDF, ExtractAllText() aracılığıyla tüm belge çıkarımı ve ExtractTextFromPage(index) (veya pdf.Pages[index].Text) aracılığıyla sayfa başına çıkarım sağlar. Diğer seçenekler için metin çıkarma belgelerine bakın.

Örnek 2: HTML'den PDF'e Dönüştürme

Önce (PdfiumViewer):

// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;

//PdfiumViewerwraps Google's PDFium — a renderer, not a generator.
// PDFium does not parse HTML, soPdfiumViewerhas no HTML-to-PDF path.
// To produce a PDF from HTML you need a separate generator (wkhtmltopdf,
// IronPDF, PuppeteerSharp, etc.), then load the result with PdfiumViewer
// for display or rasterization.

string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";

// Pretend "output.pdf" was produced by another tool — load and render it.
string existingPdfPath = "output.pdf";
using (var document = PdfDocument.Load(existingPdfPath))
{
    Console.WriteLine($"Loaded PDF with {document.PageCount} page(s).");

    // PdfDocument.Render(int page, float dpiX, float dpiY, bool forPrinting)
    var image = document.Render(0, 300, 300, true);
    Console.WriteLine("Rendered page 1 at 300 DPI.");
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;

//PdfiumViewerwraps Google's PDFium — a renderer, not a generator.
// PDFium does not parse HTML, soPdfiumViewerhas no HTML-to-PDF path.
// To produce a PDF from HTML you need a separate generator (wkhtmltopdf,
// IronPDF, PuppeteerSharp, etc.), then load the result with PdfiumViewer
// for display or rasterization.

string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";

// Pretend "output.pdf" was produced by another tool — load and render it.
string existingPdfPath = "output.pdf";
using (var document = PdfDocument.Load(existingPdfPath))
{
    Console.WriteLine($"Loaded PDF with {document.PageCount} page(s).");

    // PdfDocument.Render(int page, float dpiX, float dpiY, bool forPrinting)
    var image = document.Render(0, 300, 300, true);
    Console.WriteLine("Rendered page 1 at 300 DPI.");
}
Imports PdfiumViewer
Imports System

' PdfiumViewer wraps Google's PDFium — a renderer, not a generator.
' PDFium does not parse HTML, so PdfiumViewer has no HTML-to-PDF path.
' To produce a PDF from HTML you need a separate generator (wkhtmltopdf,
' IronPDF, PuppeteerSharp, etc.), then load the result with PdfiumViewer
' for display or rasterization.

Dim htmlContent As String = "<h1>Hello World</h1><p>This is a test document.</p>"

' Pretend "output.pdf" was produced by another tool — load and render it.
Dim existingPdfPath As String = "output.pdf"
Using document As PdfDocument = PdfDocument.Load(existingPdfPath)
    Console.WriteLine($"Loaded PDF with {document.PageCount} page(s).")

    ' PdfDocument.Render(int page, float dpiX, float dpiY, bool forPrinting)
    Dim image = document.Render(0, 300, 300, True)
    Console.WriteLine("Rendered page 1 at 300 DPI.")
End Using
$vbLabelText   $csharpLabel

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";

// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Save the PDF
pdf.SaveAs("output.pdf");

Console.WriteLine("PDF created successfully!");
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

string htmlContent = "<h1>Hello World</h1><p>This is a test document.</p>";

// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Save the PDF
pdf.SaveAs("output.pdf");

Console.WriteLine("PDF created successfully!");
Imports IronPdf
Imports System

Module Program
    Sub Main()
        Dim htmlContent As String = "<h1>Hello World</h1><p>This is a test document.</p>"

        ' Create a PDF from HTML string
        Dim renderer As New ChromePdfRenderer()
        Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)

        ' Save the PDF
        pdf.SaveAs("output.pdf")

        Console.WriteLine("PDF created successfully!")
    End Sub
End Module
$vbLabelText   $csharpLabel

Bu, en büyük kapasite boşluğudur. PDFium HTML'i parse etmez, bu nedenlePdfiumViewerHTML'den PDF'ye bir yol sunmaz — önce başka bir araçla PDF'yi üretmeniz ve ardından PdfiumViewer'ı görüntülemek veya rasterleştirmek için kullanmanız gereklidir.

IronPDF, HTML, CSS ve JavaScript render için dahili olarak bir Chromium motoru kullanan ChromePdfRenderer aracılığıyla yerel HTML'den PDF'e dönüştürme sağlar. RenderHtmlAsPdf() HTML dizgilerini dönüştürür, RenderUrlAsPdf() URL'leri yakalar ve RenderHtmlFileAsPdf() HTML dosyalarını okur. Kapsamlı örnekler için HTML'den PDF'e dönüşüm belgelerine bakın.

Örnek 3: PDF'den Görüntüye Dönüştürme

Önce (PdfiumViewer):

// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Drawing;
using System.Drawing.Imaging;

string pdfPath = "document.pdf";
string outputImage = "page1.png";

// PDFiumViewer excels at rendering PDFs to images
using (var document = PdfDocument.Load(pdfPath))
{
    // Render first page at 300 DPI
    int dpi = 300;
    using (var image = document.Render(0, dpi, dpi, true))
    {
        // Save as PNG
        image.Save(outputImage, ImageFormat.Png);
        Console.WriteLine($"Page rendered to {outputImage}");
    }

    // Render all pages
    for (int i = 0; i < document.PageCount; i++)
    {
        using (var pageImage = document.Render(i, 150, 150, true))
        {
            pageImage.Save($"page_{i + 1}.png", ImageFormat.Png);
        }
    }
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.Drawing;
using System.Drawing.Imaging;

string pdfPath = "document.pdf";
string outputImage = "page1.png";

// PDFiumViewer excels at rendering PDFs to images
using (var document = PdfDocument.Load(pdfPath))
{
    // Render first page at 300 DPI
    int dpi = 300;
    using (var image = document.Render(0, dpi, dpi, true))
    {
        // Save as PNG
        image.Save(outputImage, ImageFormat.Png);
        Console.WriteLine($"Page rendered to {outputImage}");
    }

    // Render all pages
    for (int i = 0; i < document.PageCount; i++)
    {
        using (var pageImage = document.Render(i, 150, 150, true))
        {
            pageImage.Save($"page_{i + 1}.png", ImageFormat.Png);
        }
    }
}
Imports PdfiumViewer
Imports System
Imports System.Drawing
Imports System.Drawing.Imaging

Module Module1
    Sub Main()
        Dim pdfPath As String = "document.pdf"
        Dim outputImage As String = "page1.png"

        ' PDFiumViewer excels at rendering PDFs to images
        Using document = PdfDocument.Load(pdfPath)
            ' Render first page at 300 DPI
            Dim dpi As Integer = 300
            Using image = document.Render(0, dpi, dpi, True)
                ' Save as PNG
                image.Save(outputImage, ImageFormat.Png)
                Console.WriteLine($"Page rendered to {outputImage}")
            End Using

            ' Render all pages
            For i As Integer = 0 To document.PageCount - 1
                Using pageImage = document.Render(i, 150, 150, True)
                    pageImage.Save($"page_{i + 1}.png", ImageFormat.Png)
                End Using
            Next
        End Using
    End Sub
End Module
$vbLabelText   $csharpLabel

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Linq;

string pdfPath = "document.pdf";
string outputImage = "page1.png";

// Open PDF and convert to images
PdfDocument pdf = PdfDocument.FromFile(pdfPath);

// Convert first page to image
var firstPageImage = pdf.ToBitmap(0);
firstPageImage[0].Save(outputImage);
Console.WriteLine($"Page rendered to {outputImage}");

// Convert all pages to images
var allPageImages = pdf.ToBitmap();
for (int i = 0; i < allPageImages.Length; i++)
{
    allPageImages[i].Save($"page_{i + 1}.png");
    Console.WriteLine($"Saved page {i + 1}");
}

Console.WriteLine($"Total pages converted: {pdf.PageCount}");
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Linq;

string pdfPath = "document.pdf";
string outputImage = "page1.png";

// Open PDF and convert to images
PdfDocument pdf = PdfDocument.FromFile(pdfPath);

// Convert first page to image
var firstPageImage = pdf.ToBitmap(0);
firstPageImage[0].Save(outputImage);
Console.WriteLine($"Page rendered to {outputImage}");

// Convert all pages to images
var allPageImages = pdf.ToBitmap();
for (int i = 0; i < allPageImages.Length; i++)
{
    allPageImages[i].Save($"page_{i + 1}.png");
    Console.WriteLine($"Saved page {i + 1}");
}

Console.WriteLine($"Total pages converted: {pdf.PageCount}");
Imports IronPdf
Imports System
Imports System.Linq

Module Module1
    Sub Main()
        Dim pdfPath As String = "document.pdf"
        Dim outputImage As String = "page1.png"

        ' Open PDF and convert to images
        Dim pdf As PdfDocument = PdfDocument.FromFile(pdfPath)

        ' Convert first page to image
        Dim firstPageImage = pdf.ToBitmap(0)
        firstPageImage(0).Save(outputImage)
        Console.WriteLine($"Page rendered to {outputImage}")

        ' Convert all pages to images
        Dim allPageImages = pdf.ToBitmap()
        For i As Integer = 0 To allPageImages.Length - 1
            allPageImages(i).Save($"page_{i + 1}.png")
            Console.WriteLine($"Saved page {i + 1}")
        Next

        Console.WriteLine($"Total pages converted: {pdf.PageCount}")
    End Sub
End Module
$vbLabelText   $csharpLabel

Bu, PdfiumViewer'ın mükemmel olduğu bir alandır—PDF görüntülerine dönüştürme onun temel gücüdür. Her iki kütüphane de bu görevi etkili bir şekilde yerine getirir, ancak farklı desenlerle.

PdfiumViewer, uygun bertaraf için iç içe geçmiş using ifadeleriyle document.Render(pageIndex, dpiX, dpiY, forPrinting) kullanır. ImageFormat numaralandırması için System.Drawing ve System.Drawing.Imaging aktarmanız gerekiyor.

IronPDF, bir bitmap dizisini döndüren pdf.ToBitmap(pageIndex) kullanır. Desen, iç içe atılma gereksinimleri olmadan daha basittir. Toplu işlemler için, parametresiz ToBitmap() tüm sayfaları döndürür. Doğrudan dosya çıktısı için RasterizeToImageFiles() da kullanabilirsiniz. Ek render seçenekleri için PDF'den görüntülere dönüştürme belgelerine bakın.


Yerel Bağımlılıkların Kaldırılması

PdfiumViewer'dan IronPDF'e geçmenin en önemli faydalarından biri, yerel ikili yönetimini ortadan kaldırmaktır.

Önce (PdfiumViewer) - Karmaşık Dağıtım

MyApp/
├── bin/
│ ├── MyApp.dll
│   ├── PdfiumViewer.dll
│ ├── x86/
│   │   └── pdfium.dll
│ └── x64/
│       └── pdfium.dll

Sonra (IronPDF) - Temiz Dağıtım

MyApp/
├── bin/
│ ├── MyApp.dll
│   └── IronPdf.dll  # Her şey dâhil

Yerel İkili Referansların Kaldırılması

# Delete native PDFium binaries
rm -rf x86/x64/runtimes/

# Remove from .csproj native package references
# <PackageReference Include="PdfiumViewer.Native.x86.v8-xfa" />
# <PackageReference Include="PdfiumViewer.Native.x64.v8-xfa" />
# Delete native PDFium binaries
rm -rf x86/x64/runtimes/

# Remove from .csproj native package references
# <PackageReference Include="PdfiumViewer.Native.x86.v8-xfa" />
# <PackageReference Include="PdfiumViewer.Native.x64.v8-xfa" />
SHELL

Kritik Taşıma Notları

Yerleşik Görüntüleyici Kontrolü Yok

IronPDF arka plan odaklıdır ve görsel bir PDF görüntüleyici kontrolü içermez:

// PdfiumViewer: Built-in viewer control
pdfViewer.Document = document;

// IronPDF: Use external viewer or web-based approach
pdf.SaveAs(tempPath);
Process.Start(new ProcessStartInfo(tempPath) { UseShellExecute = true });
// PdfiumViewer: Built-in viewer control
pdfViewer.Document = document;

// IronPDF: Use external viewer or web-based approach
pdf.SaveAs(tempPath);
Process.Start(new ProcessStartInfo(tempPath) { UseShellExecute = true });
' PdfiumViewer: Built-in viewer control
pdfViewer.Document = document

' IronPDF: Use external viewer or web-based approach
pdf.SaveAs(tempPath)
Process.Start(New ProcessStartInfo(tempPath) With {.UseShellExecute = True})
$vbLabelText   $csharpLabel

Görüntüleme ihtiyaçlarınız için varsayılan PDF görüntüleyicisinde açmak üzere Process.Start() kullanmayı, PDF yolu ile bir WebBrowser kontrolünü veya Syncfusion, DevExpress veya Telerik gibi üçüncü taraf görüntüleyici kontrollerini düşünün.

Belge Yükleme Yöntemi Değişikliği

// PdfiumViewer
PdfDocument.Load(path)

// IronPDF
PdfDocument.FromFile(path)
// PdfiumViewer
PdfDocument.Load(path)

// IronPDF
PdfDocument.FromFile(path)
' PdfiumViewer
PdfDocument.Load(path)

' IronPDF
PdfDocument.FromFile(path)
$vbLabelText   $csharpLabel

Kaydetme Yöntemi Değişikliği

// PdfiumViewer
document.Save(path)

// IronPDF
pdf.SaveAs(path)
// PdfiumViewer
document.Save(path)

// IronPDF
pdf.SaveAs(path)
$vbLabelText   $csharpLabel

Render Yöntemi Değişikliği

// PdfiumViewer: Returns image with nested using
using (var image = document.Render(0, 150, 150, true))
{
    image.Save("page.png", ImageFormat.Png);
}

// IronPDF: Returns bitmap array
var images = pdf.ToBitmap(0);
images[0].Save("page.png");
// PdfiumViewer: Returns image with nested using
using (var image = document.Render(0, 150, 150, true))
{
    image.Save("page.png", ImageFormat.Png);
}

// IronPDF: Returns bitmap array
var images = pdf.ToBitmap(0);
images[0].Save("page.png");
Imports System.Drawing.Imaging

' PdfiumViewer: Returns image with nested using
Using image = document.Render(0, 150, 150, True)
    image.Save("page.png", ImageFormat.Png)
End Using

' IronPDF: Returns bitmap array
Dim images = pdf.ToBitmap(0)
images(0).Save("page.png")
$vbLabelText   $csharpLabel

Sayfa Boyutu Erişim Değişikliği

// PdfiumViewer
var size = document.PageSizes[index];
Console.WriteLine($"{size.Width} x {size.Height}");

// IronPDF
var page = pdf.Pages[index];
Console.WriteLine($"{page.Width} x {page.Height}");
// PdfiumViewer
var size = document.PageSizes[index];
Console.WriteLine($"{size.Width} x {size.Height}");

// IronPDF
var page = pdf.Pages[index];
Console.WriteLine($"{page.Width} x {page.Height}");
' PdfiumViewer
Dim size = document.PageSizes(index)
Console.WriteLine($"{size.Width} x {size.Height}")

' IronPDF
Dim page = pdf.Pages(index)
Console.WriteLine($"{page.Width} x {page.Height}")
$vbLabelText   $csharpLabel

Özellik Karşılaştırması Özeti

Özellik PdfiumViewer IronPDF
PDF yükle
Resim olarak İşleme
Yerleşik Görüntüleyici
PDF Yazdır
Metin Çıkarma Sayfa düzeyinde (GetPdfText) Tam (ExtractAllText, sayfa başına)
HTML'den Oluştur
URL'den Oluştur
PDF'leri birleştir
PDF Ayırma
Filigran Ekle
Başlıklar/Altbilgiler
Form Doldurma
Şifre Koruması
WinForms Desteği
ASP.NET Desteği
.NET Core Desteği Sınırlı (System.Drawing Windows'a bağlı)
Aktif Bakım 2019-08-02 tarihinde arşivlendi

Geçiş Kontrol Listesi

Öncesi-Geçiş

  • Kod tabanındaki tümPdfiumViewerkullanımını belirle
  • PdfViewer kontrolünü kullanan WinForms'ları listele
  • Mevcut render DPI ayarlarını belgeleyin
  • Yerel ikili referansları kontrol edin
  • Baskı işlevselliği kullanımını belirle
  • Görüntüleyici kontrolü değiştirme stratejisini planla -IronPDF lisans anahtarını edinin

Paket Değişiklikleri

  • PdfiumViewer NuGet paketini kaldır
  • PdfiumViewer.Native.x86.v8-xfa paketini kaldır
  • PdfiumViewer.Native.x86_64.v8-xfa paketini kaldır
  • x86/ve x64/klasörlerindeki yerel pdfium.dll dosyalarını silin
  • IronPdf NuGet paketini yükle: dotnet add package IronPdf

Kod Değişiklikleri

Başlangıçta lisans anahtarı yapılandırmasını ekleyin

  • PdfDocument.Load() PdfDocument.FromFile() ile değiştir
  • document.Save() pdf.SaveAs() ile değiştir
  • document.Render() pdf.ToBitmap() veya RasterizeToImageFiles() ile değiştir
  • document.PageSizes[i] pdf.Pages[i].Width/Height ile değiştir
  • PdfViewer kontrolünü harici görüntüleyici veya Process.Start() ile değiştirin
  • Yeni yetenekler ekleyin (metin çıkarma, HTML'den PDF'e, vb.)

Geçiş Sonrası

  • Render çıkış kalitesini test edin
  • Baskı işlevselliğini test edin
  • Hedef platformlarda test edin
  • Yeni özellikler ekleyin (HTML'den PDF'e, birleştirme, filigranlar, güvenlik)
  • Belgeleri güncelleyin

Lütfen dikkate alınPdfiumViewer, PDFium, Chromium, DevExpress, Syncfusion, Telerik ve wkhtmltopdf, kendi sahiplerinin ticari markalarıdır. Bu site, Pieter van Ginkel, Chromium Projesi, Google, DevExpress, Syncfusion, Progress Software veya wkhtmltopdf projesi ile ilişkilendirilmemiştir, onaylanmamıştır ve sponsor olunmamıştır. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara