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ı
-
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.
-
Windows Forms / Sadece Windows:
System.Drawingve WinForms kontrol elemanları etrafında oluşturulmuştur; diğer UI frameworkleri için tasarlanmamıştır veSystem.Drawing.Common.NET 6+ üzerinde yalnızca Windows için mevcuttur. -
PDF manipülasyonu yok: PDF içeriğini birleştirme, bölme veya değiştirme mümkün değil.
-
Yerel ikili bağımlılıklar: Platforma özgü PDFium ikili dosyaları
PdfiumViewer.Native.x86.v8-xfavePdfiumViewer.Native.x86_64.v8-xfa(veya no-V8 / no-XFA varyantları) aracılığıyla gerektirir. -
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.
-
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. -
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.
-
Başlıklar/Altbilgiler yok: Sayfa numaraları veya tekrarlayan içerik eklenemez.
-
Filigran yok: Belgeleri üst baskılarla damgalamak mümkün değil.
- 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
- .NET Ortamı: .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGet Erişimi: NuGet paketlerini yükleyebilme
- 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
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"
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" .
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
Ç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
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
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
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
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
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
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" />
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})
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)
Kaydetme Yöntemi Değişikliği
// PdfiumViewer
document.Save(path)
// IronPDF
pdf.SaveAs(path)
// PdfiumViewer
document.Save(path)
// IronPDF
pdf.SaveAs(path)
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")
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}")
Ö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
PdfiumViewerNuGet paketini kaldırPdfiumViewer.Native.x86.v8-xfapaketini kaldırPdfiumViewer.Native.x86_64.v8-xfapaketini kaldır- x86/ve x64/klasörlerindeki yerel pdfium.dll dosyalarını silin
IronPdfNuGet 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ştirdocument.Save()pdf.SaveAs()ile değiştirdocument.Render()pdf.ToBitmap()veyaRasterizeToImageFiles()ile değiştirdocument.PageSizes[i]pdf.Pages[i].Width/Heightile 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

