Pdfium vs IronPDF: Przewodnik po porównaniu technicznym
Kiedy programiści .NET potrzebują funkcji związanych z plikami PDF, często natrafiają na Pdfium.NET (lub PdfiumViewer) — nakładkę .NET na silnik renderujący PDFium firmy Google. W niniejszym porównaniu przeanalizowano Pdfium oraz IronPDF, oceniając różnice w ich architekturze, kompletność funkcji oraz przydatność w kontekście współczesnych wymagań aplikacji.
Czym jest Pdfium?
Pdfium.NET to nakładka .NET na bibliotekę PDFium firmy Google, pierwotnie opracowaną dla Chromium. Biblioteka wyróżnia się w renderowaniu plików PDF — wyświetla dokumenty PDF z wysoką wiernością w aplikacjach .NET. Zapewnia możliwości przeglądania plików PDF, wyodrębniania tekstu oraz renderowania stron do obrazów.
Jednak możliwości Pdfium są zasadniczo ograniczone przez jego architekturę skoncentrowaną na renderowaniu. Biblioteka została zaprojektowana do wyświetlania plików PDF, a nie do ich tworzenia lub edycji. Powoduje to znaczne luki w aplikacjach wymagających generowania plików PDF, scałania dokumentów lub modyfikacji treści.
Najważniejsze cechy Pdfium.NET to:
- Skupienie na wyświetlaniu i renderowaniu: Doskonale radzi sobie z wyświetlaniem treści PDF z wysoką wiernością
- Wydajność: Wykorzystuje bibliotekę PDFium firmy Google do wydajnego renderowania
- Natywne zależności binarne: Wymaga plików binarnych PDFium specyficznych dla platformy (x86/x64)
- Złożoność wdrożenia: Konieczne jest pakowanie i zarządzanie natywnymi bibliotekami DLL dla każdej platformy
Czym jest IronPDF?
IronPDF to kompletna biblioteka .NET zapewniająca pełne zarządzanie cyklem życia plików PDF. Klasa ChromePdfRenderer wykorzystuje nowoczesny silnik oparty na Chromium do tworzenia plików PDF z HTML, CSS i JavaScript, podczas gdy klasa PdfDocument zapewnia rozbudowane możliwości manipulacji.
W przeciwieństwie do Pdfium, które skupia się wyłącznie na renderowaniu,IronPDFobsługuje tworzenie, edycję, scałanie, znakowanie wodnym, zabezpieczanie i wyodrębnianie tekstu z plików PDF — wszystko w ramach jednej biblioteki. W pełni zarządzana architektura eliminuje natywne zależności binarne, upraszczając wdrażanie na różnych platformach.
Porównanie architektury
Podstawowa różnica między Pdfium aIronPDFpolega na ich zakresie: rozwiązanie służące wyłącznie do renderowania kontra kompletne rozwiązanie PDF.
| Aspekt | Pdfium.NET | IronPDF |
|---|---|---|
| Główny cel | Renderowanie/wyświetlanie | Kompletne rozwiązanie PDF |
| Tworzenie plików PDF | ✗ | ✓(HTML, URL, obrazy) |
| Manipulacja plikami PDF | ✗ | ✓(scal, podziel, edytuj) |
| HTML do PDF | ✗ | ✓(silnik Chromium) |
| Znaki wodne | ✗ | ✓ |
| Nagłówki/stopki | ✗ | ✓ |
| Wypełnianie formularzy | ✗ | ✓ |
| Bezpieczeństwo | ✗ | ✓ |
| Zależności natywne | Wymagane | Brak (w pełni zarządzane) |
| Wielopłatformowe | Złożona konfiguracja | Automatyczne |
W przypadku aplikacji wymagających jedynie przeglądania plików PDF wystarczające może być oprogramowanie Pdfium. Natomiast dla aplikacji wymagających generowania, edycji lub tworzenia plików PDF kompletnym rozwiązaniem jest IronPDF.
Konwersja HTML do PDF
Konwersja HTML do PDF pokazuje podstawową różnicę w możliwościach tych bibliotek.
Podejście Pdfium do konwersji HTML na PDF:
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;
// Note: PdfiumViewer is primarily for viewing/rendering PDFs, not creating them from HTML
// For HTML to PDF with Pdfium.NET, you would need additional libraries
// This example shows a limitation of Pdfium.NET
class Program
{
static void Main()
{
// Pdfium.NET does not have native HTML to PDF conversion
// You would need to use a separate library to convert HTML to PDF
// then use Pdfium for manipulation
string htmlContent = "<h1>Hello World</h1>";
// This functionality is not directly available in Pdfium.NET
Console.WriteLine("HTML to PDF conversion not natively supported in Pdfium.NET");
}
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System.IO;
using System.Drawing.Printing;
// Note: PdfiumViewer is primarily for viewing/rendering PDFs, not creating them from HTML
// For HTML to PDF with Pdfium.NET, you would need additional libraries
// This example shows a limitation of Pdfium.NET
class Program
{
static void Main()
{
// Pdfium.NET does not have native HTML to PDF conversion
// You would need to use a separate library to convert HTML to PDF
// then use Pdfium for manipulation
string htmlContent = "<h1>Hello World</h1>";
// This functionality is not directly available in Pdfium.NET
Console.WriteLine("HTML to PDF conversion not natively supported in Pdfium.NET");
}
}
Imports PdfiumViewer
Imports System.IO
Imports System.Drawing.Printing
' Note: PdfiumViewer is primarily for viewing/rendering PDFs, not creating them from HTML
' For HTML to PDF with Pdfium.NET, you would need additional libraries
' This example shows a limitation of Pdfium.NET
Class Program
Shared Sub Main()
' Pdfium.NET does not have native HTML to PDF conversion
' You would need to use a separate library to convert HTML to PDF
' then use Pdfium for manipulation
Dim htmlContent As String = "<h1>Hello World</h1>"
' This functionality is not directly available in Pdfium.NET
Console.WriteLine("HTML to PDF conversion not natively supported in Pdfium.NET")
End Sub
End Class
PodejścieIronPDFdo konwersji HTML na PDF:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlContent = "<h1>Hello World</h1>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlContent = "<h1>Hello World</h1>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim htmlContent As String = "<h1>Hello World</h1>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully")
End Sub
End Class
Pdfium nie może tworzyć plików PDF z HTML — po prostu nie obsługuje tej funkcji. Aplikacje wymagające konwersji HTML do PDF musiałyby łączyć Pdfium z dodatkowymi bibliotekami, co powodowałoby złożoność i potencjalne problemy z kompatybilnością.
ChromePdfRendererIronPDFwykorzystuje nowoczesny silnik Chromium do konwersji zawartości HTML z pełnym wsparciem dla CSS3, Flexbox, Grid oraz wykonywania JavaScript, produkując wysokiej jakości wyjście PDF z zawartości sieci.
Łączenie plików PDF
Łączenie dokumentów pokazuje kolejną istotną lukę w możliwościach.
Podejście do scałania plików PDF:
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Collections.Generic;
// Note: PdfiumViewer does not have native PDF merging functionality
// You would need to use additional libraries or implement custom logic
class Program
{
static void Main()
{
List<string> pdfFiles = new List<string>
{
"document1.pdf",
"document2.pdf",
"document3.pdf"
};
// PdfiumViewer is primarily for rendering/viewing
// PDF merging is not natively supported
// You would need to use another library like iTextSharp or PdfSharp
Console.WriteLine("PDF merging not natively supported in PdfiumViewer");
}
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Collections.Generic;
// Note: PdfiumViewer does not have native PDF merging functionality
// You would need to use additional libraries or implement custom logic
class Program
{
static void Main()
{
List<string> pdfFiles = new List<string>
{
"document1.pdf",
"document2.pdf",
"document3.pdf"
};
// PdfiumViewer is primarily for rendering/viewing
// PDF merging is not natively supported
// You would need to use another library like iTextSharp or PdfSharp
Console.WriteLine("PDF merging not natively supported in PdfiumViewer");
}
}
Imports PdfiumViewer
Imports System
Imports System.IO
Imports System.Collections.Generic
' Note: PdfiumViewer does not have native PDF merging functionality
' You would need to use additional libraries or implement custom logic
Class Program
Shared Sub Main()
Dim pdfFiles As New List(Of String) From {
"document1.pdf",
"document2.pdf",
"document3.pdf"
}
' PdfiumViewer is primarily for rendering/viewing
' PDF merging is not natively supported
' You would need to use another library like iTextSharp or PdfSharp
Console.WriteLine("PDF merging not natively supported in PdfiumViewer")
End Sub
End Class
PodejścieIronPDFdo scałania:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<string> pdfFiles = new List<string>
{
"document1.pdf",
"document2.pdf",
"document3.pdf"
};
var pdf = PdfDocument.Merge(pdfFiles);
pdf.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<string> pdfFiles = new List<string>
{
"document1.pdf",
"document2.pdf",
"document3.pdf"
};
var pdf = PdfDocument.Merge(pdfFiles);
pdf.SaveAs("merged.pdf");
Console.WriteLine("PDFs merged successfully");
}
}
Imports IronPdf
Imports System
Imports System.Collections.Generic
Module Program
Sub Main()
Dim pdfFiles As New List(Of String) From {
"document1.pdf",
"document2.pdf",
"document3.pdf"
}
Dim pdf = PdfDocument.Merge(pdfFiles)
pdf.SaveAs("merged.pdf")
Console.WriteLine("PDFs merged successfully")
End Sub
End Module
Pdfium nie może łączyć dokumentów PDF — biblioteka całkowicie nie posiada tej funkcji. Aplikacje wymagające łączenia plików PDF wymagałyby dodatkowych bibliotek, co zwiększyłoby zależności i złożoność.
Metoda PdfDocument.Merge()IronPDFakceptuje listę ścieżek plików lub obiektów PdfDocument, łącząc je w jeden dokument za pomocą pojedynczego wywołania metody.
Wyodrębnianie tekstu
Pobieranie tekstu to obszar, w którym obie biblioteki oferują funkcjonalność, choć mają różne podejścia i możliwości.
Podejście do ekstrakcji tekstu w Pdfium:
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
using (var document = PdfDocument.Load(pdfPath))
{
StringBuilder text = new StringBuilder();
for (int i = 0; i < document.PageCount; i++)
{
// Note: PdfiumViewer has limited text extraction capabilities
// Text extraction requires additional work with Pdfium.NET
string pageText = document.GetPdfText(i);
text.AppendLine(pageText);
}
Console.WriteLine(text.ToString());
}
}
}
// NuGet: Install-Package PdfiumViewer
using PdfiumViewer;
using System;
using System.IO;
using System.Text;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
using (var document = PdfDocument.Load(pdfPath))
{
StringBuilder text = new StringBuilder();
for (int i = 0; i < document.PageCount; i++)
{
// Note: PdfiumViewer has limited text extraction capabilities
// Text extraction requires additional work with Pdfium.NET
string pageText = document.GetPdfText(i);
text.AppendLine(pageText);
}
Console.WriteLine(text.ToString());
}
}
}
Imports PdfiumViewer
Imports System
Imports System.IO
Imports System.Text
Module Program
Sub Main()
Dim pdfPath As String = "document.pdf"
Using document = PdfDocument.Load(pdfPath)
Dim text As New StringBuilder()
For i As Integer = 0 To document.PageCount - 1
' Note: PdfiumViewer has limited text extraction capabilities
' Text extraction requires additional work with Pdfium.NET
Dim pageText As String = document.GetPdfText(i)
text.AppendLine(pageText)
Next
Console.WriteLine(text.ToString())
End Using
End Sub
End Module
PodejścieIronPDFdo ekstrakcji tekstu:
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
var pdf = PdfDocument.FromFile(pdfPath);
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string pdfPath = "document.pdf";
var pdf = PdfDocument.FromFile(pdfPath);
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim pdfPath As String = "document.pdf"
Dim pdf = PdfDocument.FromFile(pdfPath)
Dim text As String = pdf.ExtractAllText()
Console.WriteLine(text)
End Sub
End Class
Pdfium zapewnia ekstrakcję tekstu przez GetPdfText(), wymagając ręcznej iteracji przez strony i konkatenacji za pomocą StringBuilder. W dokumentacji zaznaczono, że PdfiumViewer ma "ograniczone możliwości wyodrębniania tekstu", co może wymagać dodatkowej pracy.
Metoda ExtractAllText()IronPDFwyodrębnia cały tekst ze wszystkich stron w jednym wywołaniu, oferując prostsze API dla typowych przypadków użycia. Do dostępu na poziomie stron,IronPDFrównież oferuje pdf.Pages[index].Text.
Przewodnik po mapowaniu API
Dla zespołów rozważających migrację z Pdfium doIronPDFzrozumieniuiuiuiuie mapowań API pomaga oszacować nakład pracy.
Ładowanie dokumentów
| Pdfium.NET | IronPDF |
|---|---|
PdfDocument.Load(path) |
PdfDocument.FromFile(path) |
PdfDocument.Load(stream) |
PdfDocument.FromStream(stream) |
document.PageCount |
document.PageCount |
document.Pages[index] |
document.Pages[index] |
Wyodrębnianie tekstu
| Pdfium.NET | IronPDF |
|---|---|
document.GetPdfText(pageIndex) |
document.Pages[index].Text |
| (pętla ręczna) | document.ExtractAllText() |
Zapisywanie dokumentów
| Pdfium.NET | IronPDF |
|---|---|
document.Save(path) |
document.SaveAs(path) |
| (niedostępne) | document.BinaryData |
Funkcje niedostępne w Pdfium
| FunkcjaIronPDF | Opis |
|---|---|
ChromePdfRenderer.RenderHtmlAsPdf() |
Utwórz plik PDF z HTML |
ChromePdfRenderer.RenderUrlAsPdf() |
Utwórz plik PDF z adresu URL |
PdfDocument.Merge() |
Łączenie wielu plików PDF |
pdf.CopyPages() |
Wyodrębnij konkretne strony |
pdf.ApplyWatermark() |
Dodaj znaki wodne |
pdf.SecuritySettings |
Ochrona hasłem |
pdf.SignWithDigitalSignature() |
Podpisy cyfrowe |
Natywne zależności binarne
Istotna różnica architektoniczna polega na zarządzaniu zależnościami.
Struktura wdrożenia Pdfium:
MyApp/
├── bin/
│ ├── MyApp.dll
│ ├── Pdfium.NET.dll
│ ├── x86/
│ │ └── pdfium.dll
│ └── x64/
│ └── pdfium.dll
├── runtimes/
│ ├── win-x86/native/
│ │ └── pdfium.dll
│ └── win-x64/native/
│ └── pdfium.dll
Struktura wdrożenia IronPDF:
MyApp/
├── bin/
│ ├── MyApp.dll
│ └── IronPdf.dll # Wszystko w zestawie
Pdfium wymaga pakietowania i zarządzania natywnymi plikami binarnymi specyficznymi dla danej platformy. Powoduje to złożoność wdrożenia, zwłaszcza w przypadku aplikacji wielopłatformowych lub środowisk kontenerowych. Każda platforma docelowa wymaga odpowiedniej natywnej biblioteki DLL, a aplikacja musi poprawnie załadować odpowiednią wersję w czasie wykonywania.
W pełni zarządzana architekturaIronPDFeliminuje te obawy. Biblioteka wewnętrznie zarządza swoimi zależnościami, co upraszcza wdrażanie w systemach Windows, Linux i macOS.
Podsumowanie porównania funkcji
Różnica w zakresie możliwości między Pdfium aIronPDFobejmuje praktycznie każdą operację na plikach PDF wykraczającą poza podstawowe przeglądanie.
| Funkcja | Pdfium.NET | IronPDF |
|---|---|---|
| Pobierz plik PDF | ✓ | ✓ |
| Renderuj do obrazu | ✓ | ✓ |
| Wyodrębnij tekst | ✓(podstawowe) | ✓(zaawansowane) |
| Informacje o stronie | ✓ | ✓ |
| Utwórz z HTML | ✗ | ✓ |
| Utwórz z adresu URL | ✗ | ✓ |
| Łączenie plików PDF | ✗ | ✓ |
| Podział plików PDF | ✗ | ✓ |
| Dodaj znaki wodne | ✗ | ✓ |
| Nagłówki/stopki | ✗ | ✓ |
| Wypełnianie formularzy | ✗ | ✓ |
| Podpisy cyfrowe | ✗ | ✓ |
| Ochrona hasłem | ✗ | ✓ |
| Zależności natywne | Wymagane | None |
| Wielopłatformowe | Złożone | Automatyczne |
Aplikacje wymagające znaków wodnych, nagłówków i stopek lub ustawień zabezpieczeń nie mogą tego osiągnąć przy użyciu samego Pdfium.
Kiedy zespoły rozważają przejście z Pdfium na IronPDF
Kilka czynników skłania zespoły do rozważeniaIronPDFjako alternatywy dla Pdfium:
Wymagania dotyczące tworzenia plików PDF: Pdfium nie może tworzyć plików PDF. Aplikacje wymagające generowania plików PDF na podstawie szablonów HTML, raportów lub treści internetowych wymagają dodatkowych bibliotek.IronPDFzapewnia kompleksowe tworzenie plików PDF dzięki nowoczesnemu silnikowi Chromium.
Wymagania dotyczące manipulacji dokumentami: Pdfium nie może łączyć, dzielić ani modyfikować treści plików PDF. W miarę dojrzewania aplikacji wymagania często wykraczają poza zwykłe przeglądanie i obejmują tworzenie dokumentów, wyodrębnianie stron lub modyfikację treści.
Uproszczenie wdrażania: Zarządzanie natywnymi plikami binarnymi PDFium na różnych platformach zwiększa złożoność procesów kompilacji, wdrażania i konteneryzacji. Architektura zarządzanaIronPDFeliminuje tę złożoność.
Rozszerzenie funkcji: Aplikacje, których podstawową funkcją jest przeglądanie, często wymagają funkcji znaków wodnych, ustawień zabezpieczeń lub wypełniania formularzy. Dodanie tych funkcji do aplikacji opartej na Pdfium wymaga dodatkowych bibliotek, podczas gdyIronPDFzapewnia je natywnie.
Spójność między platformami: Pdfium wymaga zarządzania plikami binarnymi specyficznymi dla platformy dla każdego środowiska docelowego. Kod zarządzanyIronPDFdziała spójnie w systemach Windows, Linux i macOS bez konieczności konfiguracji specyficznej dla danej platformy.
Porównanie instalacji
Instalacja Pdfium:
Install-Package PdfiumViewer
Install-Package PdfiumViewer
Plus ręczne zarządzanie natywnymi plikami binarnymi.
Instalacja IronPDF:
Install-Package IronPdf
Install-Package IronPdf
IronPDF wymaga konfiguracji klucza licencyjnego podczas uruchamiania aplikacji:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Obie biblioteki obsługują .NET Framework oraz nowoczesne wersje .NET, zapewniając kompatybilność z aplikacjami przeznaczonymi dla .NET 10 i C# 14.
Podejmowanie decyzji
Wybór między Pdfium aIronPDFzależy od wymagań aplikacji:
Rozważ Pdfium, jeśli: potrzebujesz jedynie przeglądania i renderowania plików PDF, nie potrzebujesz tworzenia ani edycji plików PDF, nie masz problemów z zarządzaniem natywnymi zależnościami binarnymi i masz proste potrzeby w zakresie wyodrębniania tekstu.
Rozważ IronPDF, jeśli: potrzebujesz tworzyć pliki PDF z HTML lub adresów URL, potrzebujesz edytować pliki PDF (łączyć, dzielić, dodawać znaki wodne), chcesz uproszczonego wdrażania bez zależności natywnych, potrzebujesz zaawansowanych funkcji (formularze, zabezpieczenia, podpisy) lub tworzysz aplikacje z rosnącymi wymaganiami dotyczącymi plików PDF.
W przypadku większości nowoczesnych aplikacji możliwość tworzenia i edycji plików PDF jest niezbędna. Skupienie się Pdfium wyłącznie na renderowaniu sprawia, że bez dodatkowych bibliotek nie nadaje się ono do kompleksowych procesów pracy z plikami PDF. Kompleksowe rozwiązanieIronPDFeliminuje potrzebę łączenia bibliotek, zapewniając jednocześnie ujednolicony interfejs API dla wszystkich operacji związanych z plikami PDF.
Pierwsze kroki z IronPDF
Aby ocenićIronPDFpod kątem swoich potrzeb związanych z plikami PDF:
- Zainstaluj pakietIronPDFNuGet:
Install-Package IronPdf - Zapoznaj się z samouczkiem dotyczącym tworzenia wzorców z HTML do PDF
- Zapoznaj się z możliwościami łączenia plików PDF w celu tworzenia dokumentów
- Zapoznaj się z sekcją samouczków, aby uzyskać wyczerpujące przykłady
Dokumentacja IronPDF zawiera szczegółowe wskazówki dotyczące typowych scenariuszy, a Dokumentacja API opisuje wszystkie dostępne klasy i metody.
Wnioski
Pdfium iIronPDFsłużą zasadniczo różnym celom w ekosystemie PDF dla platformy .NET. Pdfium wyróżnia się w renderowaniu plików PDF — wyświetla dokumenty z wysoką wiernością przy użyciu silnika PDFium firmy Google.IronPDFzapewnia kompletne rozwiązanie do obsługi plików PDF, obejmujące tworzenie, edycję i renderowanie w jednej bibliotece.
W przypadku aplikacji wymagających jedynie przeglądania plików PDF, odpowiednie może być ukierunkowane podejście Pdfium. W przypadku aplikacji wymagających generowania plików PDF, scałania dokumentów, dodawania znaków wodnych lub innych funkcji tworzenia,IronPDFzapewnia te funkcje natywnie, bez konieczności korzystania z dodatkowych bibliotek.
Decyzja wykracza poza obecne wymagania i uwzględnia przewidywane potrzeby. Aplikacje często zaczynają się od przeglądania, ale z czasem rozszerzają się o funkcje tworzenia i edycji. WybórIronPDFod samego początku stanowi podstawę dla tych rozszerzonych wymagań, jednocześnie eliminując złożoność zarządzania natywnymi plikami binarnymi, którą wprowadza Pdfium.
Przy wyborze jednej z tych bibliotek należy ocenić wszystkie swoje obecne i przewidywane wymagania dotyczące plików PDF. Fakt, że Pdfium służy wyłącznie do renderowania, powoduje ograniczenia architektoniczne, które stają się widoczne w miarę dojrzewania aplikacji i rozszerzania się wymagań.