Przejdź do treści stopki
PORóWNANIA PRODUKTóW

Porównanie IronPDF i PdfPig

Full Comparison

Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Apryse PDF on pricing, HTML support, and licensing.

View Full Comparison

Dlaczego warto porównać IronPDF i Apryse C# PDF Libraries?

IronPDF i Apryse C# to znane biblioteki PDF dla platformy .NET, z których każda ma swoje unikalne zalety. IronPDF wyróżnia się w konwersji HTML do PDF dzięki pełnej obsłudze Bootstrap i rozbudowanym funkcjom edycji. Tymczasem firma Apryse specjalizuje się w adnotacjach i redagowaniu dokumentów, zaspokajając potrzeby Enterprise w zakresie zgodności z przepisami.

Jako programiści C# często stajecie przed zadaniami związanymi z plikami PDF podczas tworzenia aplikacji, które generują, edytują lub wyświetlają dokumenty. Niezawodna biblioteka PDF ma kluczowe znaczenie dla wydajności. Biblioteki te oferują wbudowane funkcje do wykonywania złożonych operacji, takich jak konwersja dokumentów, edycja tekstu i obsługa obrazów w plikach PDF. Bez nich trzeba by było pisać całą funkcjonalność od podstaw, co jest zarówno czasochłonne, jak i podatne na błędy.

W niniejszym porównaniu przeanalizowano dwie popularne biblioteki PDF: IronPDF i Apryse C#. IronPDF zapewnia niezawodne funkcje, które upraszczają operacje związane z plikami PDF w środowiskach .NET, od konwersji HTML do PDF po zaawansowaną edycję dokumentów. Apryse C# oferuje proste podejście do manipulacji plikami PDF, kładąc nacisk na wydajność i łatwość użytkowania. W niniejszej analizie omówiono konkretne możliwości każdej biblioteki, aby pomóc Ci wybrać tę, która najlepiej pasuje do Twojego projektu.

Co to jest biblioteka Apryse C# PDF?

Strona główna Apryse prezentuje zestaw SDK do przetwarzania dokumentów wraz z interfejsami edytora kodu i przeglądarki dokumentów wyświetlanymi na monitorach komputerowych

Apryse C# to kompletna biblioteka PDF dla aplikacji .NET, zaprojektowana w celu uproszczenia operacji na plikach PDF w środowiskach C#. Wcześniej znany jako PDFTron SDK, oferuje szeroki zakres funkcji i narzędzi dla programistów poszukujących precyzyjnych możliwości obsługi plików PDF.

Jakie kluczowe funkcje oferuje Apryse C#?

  • Łatwa integracja z projektami .NET: Płynna integracja z platformą .NET, w tym z aplikacjami ASP.NET Core i tradycyjnymi aplikacjami .NET Framework.
  • Tworzenie i edycja dokumentów: Twórz pliki PDF od podstaw lub edytuj istniejące, w tym tekst, obrazy, formularze oraz manipuluj stronami — zmieniaj kolejność, scałaj lub dziel.
  • Konwersja HTML do PDF: Bezpośrednia konwersja treści HTML do formatu PDF w przypadku faktur, raportów i dokumentacji stron internetowych.
  • Obsługa wielu pól formularzy: Niezawodne tworzenie, edycja i programowe wypełnianie pól formularzy PDF w celu zautomatyzowania przepływu pracy.
  • Wyodrębnianie tekstu i treści: Wyodrębnianie tekstu i treści z plików PDF do celów analizy, narzędzi wyszukiwania i zarządzania treścią.
  • Bezpieczeństwo i szyfrowanie: Kompleksowe zabezpieczenia, w tym szyfrowanie dokumentów, zarządzanie uprawnieniami i podpisy cyfrowe.
  • Zaawansowane funkcje PDF: Obsługa adnotacji, zakładek i hiperłączy w interaktywnych plikach PDF.

Co to jest biblioteka IronPDF C#?

Strona główna IronPDF przedstawiająca przykład kodu w języku C# do konwersji HTML na PDF z poleceniem instalacji NuGet

IronPDF to wszechstronna biblioteka PDF dostosowana do potrzeb programistów .NET. Upraszcza to złożoną obsługę plików PDF, umożliwiając tworzenie, edycję i konwersję dokumentów PDF bezpośrednio w aplikacjach C#. Dostępny dla wielu języków programowania, w tym Java, Python i C#, IronPDF zaspokaja różnorodne potrzeby związane z przetwarzaniem plików PDF, zapewniając wydajność i niezawodność.

Jakie kluczowe funkcje oferuje IronPDF?

Jak stworzyć aplikację konsolową C#?

Utworzenie aplikacji konsolowej w Visual Studio stanowi podstawę dla projektów programistycznych w środowisku .NET, w tym tych wykorzystujących biblioteki PDF, takie jak IronPDF lub Apryse C#. Aby rozpocząć, wykonaj następujące kroki:

Jak uruchomić program Visual Studio?

Otwórz program Visual Studio na swoim komputerze. Jeśli nie masz jeszcze zainstalowanego programu Visual Studio, pobierz go i zainstaluj z oficjalnej strony Microsoftu, wybierając wersję odpowiednią do swoich potrzeb.

Jak utworzyć nowy projekt?

Po uruchomieniu programu Visual Studio wybierz opcję "Utwórz nowy projekt" na początkowym pulpicie nawigacyjnym.

Ekran startowy programu Visual Studio 2022 przedstawiający menu

Jaki typ projektu powinienem wybrać?

W oknie "Utwórz nowy projekt" zobaczysz różne szablony projektów. Wpisz "Console" w polu wyszukiwania lub znajdź "Console Application" na liście. Wybierz szablon przeznaczony dla języka C#.

Okno dialogowe

Jak skonfigurować mój projekt?

Po wybraniu opcji "Aplikacja konsolowa" kliknij "Dalej". Skonfiguruj nowy projekt:

  • Nazwa projektu: Wprowadź opisową nazwę swojego projektu.
  • Lokalizacja: Wybierz preferowaną lokalizację zapisu.
  • Nazwa rozwiązania: Domyślnie jest to nazwa projektu, ale można ją dostosować.

Ekran konfiguracji projektu Visual Studio przedstawiający tworzenie nowego projektu aplikacji konsolowej C# o nazwie

  • Framework: Wybierz wersję .NET. Zazwyczaj zaleca się korzystanie z najnowszej wersji, chyba że konkretne wymagania stanowią inaczej.

Ekran konfiguracji aplikacji konsolowej pokazujący wybór .NET Framework 8.0 z opcjami dla instrukcji najwyższego poziomu i natywnej publikacji AOT

Jak zakończyć tworzenie projektu?

Po skonfigurowaniu ustawień projektu kliknij "Utwórz". Visual Studio utworzy nowy projekt aplikacji konsolowej z domyślnym plikiem Program.cs.

Jaka jest struktura projektu?

Zapoznaj się z wygenerowaną strukturą projektu w okienku Solution Explorer. Będziesz pracować głównie z plikiem Program.cs dla aplikacji konsolowych, w którym będziesz pisać kod w języku C#.

Jak zainstalować bibliotekę IronPDF?

Włączenie IronPDF do projektu .NET umożliwia korzystanie z pełnego zakresu funkcji manipulacji plikami PDF. Kilka metod instalacji zapewnia elastyczność w zależności od preferencji dotyczących przepływu pracy.

Jak zainstalować za pomocą menedżera pakietów NuGet?

Menedżer pakietów NuGet w Visual Studio zapewnia graficzny interfejs do zarządzania bibliotekami.

  1. Otwórz swój projekt w Visual Studio.
  2. Kliknij prawym przyciskiem myszy swój projekt w Eksploratorze rozwiązań i wybierz opcję "Zarządzaj pakietami NuGet".
  3. Kliknij kartę "Przeglądaj" i wyszukaj "IronPDF."
  4. Wybierz IronPDF z wyników i kliknij "Zainstaluj".

Menedżer pakietów NuGet pokazujący wyniki wyszukiwania biblioteki IronPDF w wersji 2024.2.2 oraz powiązane pakiety, w tym zależności Chrome specyficzne dla platformy i IronPdf.Slim.

Jak zainstalować za pomocą wiersza poleceń?

Konsola menedżera pakietów umożliwia bezpośrednią instalację z wiersza poleceń.

  1. Otwórz projekt w programie Visual Studio.
  2. Przejdź do Narzędzia > Menedżer pakietów NuGet > Konsola menedżera pakietów.
  3. Wpisz następujące polecenie:
Install-Package IronPdf

To polecenie instaluje najnowszą wersję IronPDF w Twoim projekcie.

Jak pobrać bezpośrednio z NuGet?

Pakiet można ręcznie pobrać przed integracją.

  1. Odwiedź stronę NuGet i wyszukaj "IronPDF."
  2. Na stronie pakietu IronPDF kliknij "Pobierz Pakiet" aby uzyskać plik .nupkg.

Strona pakietu NuGet dla IronPDF wersja 2024.2.2 pokazująca polecenie instalacji, statystyki pobrań łączna liczba 8,2M pobrań i obsługiwane frameworki, w tym .NET 5.0, .NET Core 2.0 i .NET Framework 4.6.2

  1. Dodaj pobrany pakiet ręcznie przez Eksploratora Rozwiązań > kliknij prawym przyciskiem myszy projekt > "Dodaj > Odwołanie."

Każda metoda z powodzeniem integruje IronPDF, umożliwiając korzystanie z efektywnych funkcji przetwarzania PDF.

Jak zainstalować Apryse C#?

Integracja Apryse C# w projekt zależy od Twojego środowiska .NET Framework lub .NET Core. Poniższe kroki przedstawiają ogólny proces instalacji:

Jak zainstalować Apryse dla .NET Framework?

  1. Pobierz SDK Apryse dla Windows: Trzeba będzie odwiedzić stronę SDK Apryse dla Windows, aby pobrać SDK odpowiednie dla aplikacji .NET Framework.

Strona pobierania Apryse C# .NET PDF Library pokazująca przycisk pobierania SDK i wymagania licencyjne komercyjne

  1. Rozpakuj SDK: Po pobraniu rozpakuj SDK w znanym miejscu w swoim systemie.
  2. Uzyskaj klucz próbny Apryse: Zarejestruj się na platformie Apryse, aby uzyskać klucz próbny, którego użyjesz do aktywacji funkcji próbnych SDK.
  3. Skonfiguruj projekt: W Visual Studio stwórz nową aplikację konsolową .NET Framework. Następnie dodaj folder Lib z rozpakowanego SDK do katalogu swojego projektu.
  4. Dodaj referencje: Kliknij prawym przyciskiem myszy na Referencje w projekcie, wybierz "Dodaj odniesienie," i przejdź do folderu Lib gdzie skopiowałeś PDFNetLoader.dll i odpowiedni PDFNet.dll dla swojej architektury (x86 lub x64). Upewnij się, że ustawiono "Copy Local" dla PDFNet.dll na false.
  5. Skonfiguruj App.config: Upewnij się, że plik App.config ma ustawienie loadFromRemoteSources włączone na true.

SDK zawiera foldery z przykładami, które można otworzyć i uruchomić bezpośrednio jako rozwiązania.## Zaawansowane funkcje IronPDF

Konwersja HTML do PDF

IronPDF jest bardzo skuteczny w konwertowaniu HTML na dokumenty PDF, co jest kluczowe dla aplikacji webowych, które generują raporty, faktury lub migawki stron internetowych. Biblioteka dokładnie renderuje HTML, CSS i JavaScript, zachowując układ i style treści webowej w wygenerowanych PDF.

Konwersja ciągu HTML na PDF

Konwersja ciągów HTML bezpośrednio na PDF umożliwia dynamiczne tworzenie dokumentów z treści generowanej przez aplikację lub przechowywanych zmiennych. Ta metoda jest korzystna przy tworzeniu raportów, paragonów czy dokumentów dostosowanych na podstawie danych wejściowych użytkownika.

using IronPdf;

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Define a simple HTML string to convert to PDF
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>My PDF</title>
    <style>
        body {
            font-family: Arial, sans-serif;
        }
        h1 {
            color: #333;
            text-align: center;
        }
        p {
            color: #666;
            text-align: justify;
        }
    </style>
</head>
<body>
    <h1>Welcome to My PDF</h1>
    <p>This is a sample paragraph demonstrating how to create a PDF from HTML using IronPdf in C#.</p>
    <p>You can add more content here as needed.</p>
</body>
</html>";

// Render the HTML string as a PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Save the resulting PDF to a file
pdf.SaveAs("output.pdf");
using IronPdf;

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Define a simple HTML string to convert to PDF
string htmlContent = @"
<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>My PDF</title>
    <style>
        body {
            font-family: Arial, sans-serif;
        }
        h1 {
            color: #333;
            text-align: center;
        }
        p {
            color: #666;
            text-align: justify;
        }
    </style>
</head>
<body>
    <h1>Welcome to My PDF</h1>
    <p>This is a sample paragraph demonstrating how to create a PDF from HTML using IronPdf in C#.</p>
    <p>You can add more content here as needed.</p>
</body>
</html>";

// Render the HTML string as a PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Save the resulting PDF to a file
pdf.SaveAs("output.pdf");
Imports IronPdf

' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"

' Instantiate a PDF renderer
Dim renderer = New ChromePdfRenderer()

' Define a simple HTML string to convert to PDF
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='UTF-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0'>
    <title>My PDF</title>
    <style>
        body {
            font-family: Arial, sans-serif;
        }
        h1 {
            color: #333;
            text-align: center;
        }
        p {
            color: #666;
            text-align: justify;
        }
    </style>
</head>
<body>
    <h1>Welcome to My PDF</h1>
    <p>This is a sample paragraph demonstrating how to create a PDF from HTML using IronPdf in C#.</p>
    <p>You can add more content here as needed.</p>
</body>
</html>"

' Render the HTML string as a PDF
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)

' Save the resulting PDF to a file
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Konwersja pliku HTML na PDF

Jeśli masz pliki HTML zapisane na dysku, IronPDF może przekształcić te pliki w dokumenty PDF. Ta metoda jest idealna dla istniejących dokumentów HTML, szablonów lub raportów zapisanych w Twoim projekcie lub serwerze.

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render the HTML file as a PDF
var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");

// Save the resulting PDF to a file
pdf.SaveAs("file.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render the HTML file as a PDF
var pdf = renderer.RenderHtmlFileAsPdf("invoice.html");

// Save the resulting PDF to a file
pdf.SaveAs("file.pdf");
Imports IronPdf

' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"

' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Instantiate a PDF renderer
Dim renderer = New ChromePdfRenderer()

' Render the HTML file as a PDF
Dim pdf = renderer.RenderHtmlFileAsPdf("invoice.html")

' Save the resulting PDF to a file
pdf.SaveAs("file.pdf")
$vbLabelText   $csharpLabel

Konwersja URL do PDF

IronPDF może przekonwertować aktywne strony internetowe na dokumenty PDF podając URL. Ta funkcja przechwytuje aktualny stan strony, w tym złożone układy, CSS i treści generowane przez JavaScript.

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render the URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_100___");

// Save the resulting PDF to a file
pdf.SaveAs("url.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render the URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_100___");

// Save the resulting PDF to a file
pdf.SaveAs("url.pdf");
Imports IronPdf

' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"

' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Instantiate a PDF renderer
Dim renderer As New ChromePdfRenderer()

' Render the URL as a PDF
Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_100___")

' Save the resulting PDF to a file
pdf.SaveAs("url.pdf")
$vbLabelText   $csharpLabel

Obsługa Bootstrapa i nowoczesnych frameworków CSS

Pełna obsługa Bootstrapa i frameworków CSS jest kluczowa przy generowaniu PDF z nowoczesnych aplikacji webowych. Organizacje polegają na Bootstrap do interfejsów webowych, dlatego dokładna konwersja do PDF jest kluczowa dla raportów, faktur i dokumentacji.

Funkcje Bootstrapa obsługiwane przez IronPDF

IronPDF: Kompleksowe wsparcie dla Bootstrap

  • Bootstrap 5: Pełna obsługa układów flexbox, CSS Grid, klas użytkowych i responsywnych komponentów
  • Bootstrap 4: Kompleksowe systemy kart, komponenty nawigacyjne i narzędzia flex
  • Tailwind CSS: Wszystkie klasy użytkowe renderują się dokładnie
  • Foundation: Kompletny system siatki i wsparcie dla komponentów
  • Nowoczesne CSS3: Pełne flexbox, CSS Grid, właściwości niestandardowe, animacje i przejścia

IronPDF renderuje stronę główną Bootstrapa i wszystkie oficjalne przykłady z perfekcyjną dokładnością pikselową.

Przykład kodu: Pulpit nawigacyjny wskaźników biznesowych

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

var renderer = new ChromePdfRenderer();
string bootstrapDashboard = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_101___ rel='stylesheet'>
    <style>
        .metric-card { transition: transform 0.2s; }
        .metric-card:hover { transform: translateY(-5px); }
        .trend-up { color: #28a745; }
        .trend-down { color: #dc3545; }
    </style>
</head>
<body>
    <div class='container-fluid py-4'>
        <div class='d-flex justify-content-between align-items-center mb-4'>
            <h1 class='display-5'>Business Performance Dashboard</h1>
            <div class='text-muted'>Last updated: March 2025</div>
        </div>

        <div class='row g-4 mb-4'>
            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-primary border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Total Revenue</h6>
                            <span class='badge bg-primary'>Q1 2025</span>
                        </div>
                        <h2 class='mb-1'>$2.4M</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+18.5%</strong> from last quarter
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-success border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>New Customers</h6>
                            <span class='badge bg-success'>Active</span>
                        </div>
                        <h2 class='mb-1'>1,284</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+24.3%</strong> growth rate
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-warning border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Avg Order Value</h6>
                            <span class='badge bg-warning text-dark'>Updated</span>
                        </div>
                        <h2 class='mb-1'>$1,847</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+5.2%</strong> increase
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-info border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Satisfaction Rate</h6>
                            <span class='badge bg-info'>Excellent</span>
                        </div>
                        <h2 class='mb-1'>94.7%</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+2.1pts</strong> improvement
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='row g-4'>
            <div class='col-md-8'>
                <div class='card shadow-sm'>
                    <div class='card-header bg-white d-flex justify-content-between align-items-center'>
                        <h5 class='mb-0'>Revenue Breakdown by Category</h5>
                        <div class='btn-group btn-group-sm' role='group'>
                            <button type='button' class='btn btn-outline-primary active'>Monthly</button>
                            <button type='button' class='btn btn-outline-primary'>Quarterly</button>
                            <button type='button' class='btn btn-outline-primary'>Annual</button>
                        </div>
                    </div>
                    <div class='card-body'>
                        <div class='table-responsive'>
                            <table class='table table-hover mb-0'>
                                <thead class='table-light'>
                                    <tr>
                                        <th>Category</th>
                                        <th>Revenue</th>
                                        <th>Orders</th>
                                        <th>Avg Value</th>
                                        <th class='text-end'>Trend</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr>
                                        <td><span class='badge bg-primary me-2'>A</span>Enterprise Solutions</td>
                                        <td><strong>$1,245,000</strong></td>
                                        <td>142</td>
                                        <td>$8,768</td>
                                        <td class='text-end'><span class='badge bg-success'>+12%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-success me-2'>B</span>Professional Services</td>
                                        <td><strong>$687,500</strong></td>
                                        <td>458</td>
                                        <td>$1,501</td>
                                        <td class='text-end'><span class='badge bg-success'>+18%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-info me-2'>C</span>Standard Packages</td>
                                        <td><strong>$412,300</strong></td>
                                        <td>891</td>
                                        <td>$463</td>
                                        <td class='text-end'><span class='badge bg-success'>+8%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-warning me-2'>D</span>Custom Development</td>
                                        <td><strong>$55,200</strong></td>
                                        <td>12</td>
                                        <td>$4,600</td>
                                        <td class='text-end'><span class='badge bg-danger'>-3%</span></td>
                                    </tr>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-4'>
                <div class='card shadow-sm'>
                    <div class='card-header bg-white'>
                        <h5 class='mb-0'>Quick Actions</h5>
                    </div>
                    <div class='card-body'>
                        <div class='d-grid gap-2'>
                            <button class='btn btn-primary'>Generate Full Report</button>
                            <button class='btn btn-outline-primary'>Export to Excel</button>
                            <button class='btn btn-outline-secondary'>Schedule Email</button>
                            <button class='btn btn-outline-info'>Share Dashboard</button>
                        </div>
                    </div>
                </div>

                <div class='card shadow-sm mt-3'>
                    <div class='card-header bg-white'>
                        <h5 class='mb-0'>Key Insights</h5>
                    </div>
                    <div class='card-body'>
                        <div class='alert alert-success mb-2'>
                            <small><strong>Top Performer:</strong> Enterprise Solutions leading revenue growth</small>
                        </div>
                        <div class='alert alert-info mb-2'>
                            <small><strong>Growth Driver:</strong> Professional Services showing strongest customer acquisition</small>
                        </div>
                        <div class='alert alert-warning mb-0'>
                            <small><strong>Attention Needed:</strong> Custom Development segment requires review</small>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapDashboard);
pdf.SaveAs("business-dashboard.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

var renderer = new ChromePdfRenderer();
string bootstrapDashboard = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_101___ rel='stylesheet'>
    <style>
        .metric-card { transition: transform 0.2s; }
        .metric-card:hover { transform: translateY(-5px); }
        .trend-up { color: #28a745; }
        .trend-down { color: #dc3545; }
    </style>
</head>
<body>
    <div class='container-fluid py-4'>
        <div class='d-flex justify-content-between align-items-center mb-4'>
            <h1 class='display-5'>Business Performance Dashboard</h1>
            <div class='text-muted'>Last updated: March 2025</div>
        </div>

        <div class='row g-4 mb-4'>
            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-primary border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Total Revenue</h6>
                            <span class='badge bg-primary'>Q1 2025</span>
                        </div>
                        <h2 class='mb-1'>$2.4M</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+18.5%</strong> from last quarter
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-success border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>New Customers</h6>
                            <span class='badge bg-success'>Active</span>
                        </div>
                        <h2 class='mb-1'>1,284</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+24.3%</strong> growth rate
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-warning border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Avg Order Value</h6>
                            <span class='badge bg-warning text-dark'>Updated</span>
                        </div>
                        <h2 class='mb-1'>$1,847</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+5.2%</strong> increase
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-info border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Satisfaction Rate</h6>
                            <span class='badge bg-info'>Excellent</span>
                        </div>
                        <h2 class='mb-1'>94.7%</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+2.1pts</strong> improvement
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='row g-4'>
            <div class='col-md-8'>
                <div class='card shadow-sm'>
                    <div class='card-header bg-white d-flex justify-content-between align-items-center'>
                        <h5 class='mb-0'>Revenue Breakdown by Category</h5>
                        <div class='btn-group btn-group-sm' role='group'>
                            <button type='button' class='btn btn-outline-primary active'>Monthly</button>
                            <button type='button' class='btn btn-outline-primary'>Quarterly</button>
                            <button type='button' class='btn btn-outline-primary'>Annual</button>
                        </div>
                    </div>
                    <div class='card-body'>
                        <div class='table-responsive'>
                            <table class='table table-hover mb-0'>
                                <thead class='table-light'>
                                    <tr>
                                        <th>Category</th>
                                        <th>Revenue</th>
                                        <th>Orders</th>
                                        <th>Avg Value</th>
                                        <th class='text-end'>Trend</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr>
                                        <td><span class='badge bg-primary me-2'>A</span>Enterprise Solutions</td>
                                        <td><strong>$1,245,000</strong></td>
                                        <td>142</td>
                                        <td>$8,768</td>
                                        <td class='text-end'><span class='badge bg-success'>+12%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-success me-2'>B</span>Professional Services</td>
                                        <td><strong>$687,500</strong></td>
                                        <td>458</td>
                                        <td>$1,501</td>
                                        <td class='text-end'><span class='badge bg-success'>+18%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-info me-2'>C</span>Standard Packages</td>
                                        <td><strong>$412,300</strong></td>
                                        <td>891</td>
                                        <td>$463</td>
                                        <td class='text-end'><span class='badge bg-success'>+8%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-warning me-2'>D</span>Custom Development</td>
                                        <td><strong>$55,200</strong></td>
                                        <td>12</td>
                                        <td>$4,600</td>
                                        <td class='text-end'><span class='badge bg-danger'>-3%</span></td>
                                    </tr>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-4'>
                <div class='card shadow-sm'>
                    <div class='card-header bg-white'>
                        <h5 class='mb-0'>Quick Actions</h5>
                    </div>
                    <div class='card-body'>
                        <div class='d-grid gap-2'>
                            <button class='btn btn-primary'>Generate Full Report</button>
                            <button class='btn btn-outline-primary'>Export to Excel</button>
                            <button class='btn btn-outline-secondary'>Schedule Email</button>
                            <button class='btn btn-outline-info'>Share Dashboard</button>
                        </div>
                    </div>
                </div>

                <div class='card shadow-sm mt-3'>
                    <div class='card-header bg-white'>
                        <h5 class='mb-0'>Key Insights</h5>
                    </div>
                    <div class='card-body'>
                        <div class='alert alert-success mb-2'>
                            <small><strong>Top Performer:</strong> Enterprise Solutions leading revenue growth</small>
                        </div>
                        <div class='alert alert-info mb-2'>
                            <small><strong>Growth Driver:</strong> Professional Services showing strongest customer acquisition</small>
                        </div>
                        <div class='alert alert-warning mb-0'>
                            <small><strong>Attention Needed:</strong> Custom Development segment requires review</small>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapDashboard);
pdf.SaveAs("business-dashboard.pdf");
Imports IronPdf

' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"

Dim renderer As New ChromePdfRenderer()
Dim bootstrapDashboard As String = "
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_101___ rel='stylesheet'>
    <style>
        .metric-card { transition: transform 0.2s; }
        .metric-card:hover { transform: translateY(-5px); }
        .trend-up { color: #28a745; }
        .trend-down { color: #dc3545; }
    </style>
</head>
<body>
    <div class='container-fluid py-4'>
        <div class='d-flex justify-content-between align-items-center mb-4'>
            <h1 class='display-5'>Business Performance Dashboard</h1>
            <div class='text-muted'>Last updated: March 2025</div>
        </div>

        <div class='row g-4 mb-4'>
            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-primary border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Total Revenue</h6>
                            <span class='badge bg-primary'>Q1 2025</span>
                        </div>
                        <h2 class='mb-1'>$2.4M</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+18.5%</strong> from last quarter
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-success border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>New Customers</h6>
                            <span class='badge bg-success'>Active</span>
                        </div>
                        <h2 class='mb-1'>1,284</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+24.3%</strong> growth rate
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-warning border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Avg Order Value</h6>
                            <span class='badge bg-warning text-dark'>Updated</span>
                        </div>
                        <h2 class='mb-1'>$1,847</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+5.2%</strong> increase
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-3'>
                <div class='card metric-card shadow-sm border-start border-info border-4'>
                    <div class='card-body'>
                        <div class='d-flex justify-content-between align-items-center mb-2'>
                            <h6 class='text-muted text-uppercase mb-0'>Satisfaction Rate</h6>
                            <span class='badge bg-info'>Excellent</span>
                        </div>
                        <h2 class='mb-1'>94.7%</h2>
                        <div class='trend-up'>
                            <i>↑</i> <strong>+2.1pts</strong> improvement
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='row g-4'>
            <div class='col-md-8'>
                <div class='card shadow-sm'>
                    <div class='card-header bg-white d-flex justify-content-between align-items-center'>
                        <h5 class='mb-0'>Revenue Breakdown by Category</h5>
                        <div class='btn-group btn-group-sm' role='group'>
                            <button type='button' class='btn btn-outline-primary active'>Monthly</button>
                            <button type='button' class='btn btn-outline-primary'>Quarterly</button>
                            <button type='button' class='btn btn-outline-primary'>Annual</button>
                        </div>
                    </div>
                    <div class='card-body'>
                        <div class='table-responsive'>
                            <table class='table table-hover mb-0'>
                                <thead class='table-light'>
                                    <tr>
                                        <th>Category</th>
                                        <th>Revenue</th>
                                        <th>Orders</th>
                                        <th>Avg Value</th>
                                        <th class='text-end'>Trend</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <tr>
                                        <td><span class='badge bg-primary me-2'>A</span>Enterprise Solutions</td>
                                        <td><strong>$1,245,000</strong></td>
                                        <td>142</td>
                                        <td>$8,768</td>
                                        <td class='text-end'><span class='badge bg-success'>+12%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-success me-2'>B</span>Professional Services</td>
                                        <td><strong>$687,500</strong></td>
                                        <td>458</td>
                                        <td>$1,501</td>
                                        <td class='text-end'><span class='badge bg-success'>+18%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-info me-2'>C</span>Standard Packages</td>
                                        <td><strong>$412,300</strong></td>
                                        <td>891</td>
                                        <td>$463</td>
                                        <td class='text-end'><span class='badge bg-success'>+8%</span></td>
                                    </tr>
                                    <tr>
                                        <td><span class='badge bg-warning me-2'>D</span>Custom Development</td>
                                        <td><strong>$55,200</strong></td>
                                        <td>12</td>
                                        <td>$4,600</td>
                                        <td class='text-end'><span class='badge bg-danger'>-3%</span></td>
                                    </tr>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col-md-4'>
                <div class='card shadow-sm'>
                    <div class='card-header bg-white'>
                        <h5 class='mb-0'>Quick Actions</h5>
                    </div>
                    <div class='card-body'>
                        <div class='d-grid gap-2'>
                            <button class='btn btn-primary'>Generate Full Report</button>
                            <button class='btn btn-outline-primary'>Export to Excel</button>
                            <button class='btn btn-outline-secondary'>Schedule Email</button>
                            <button class='btn btn-outline-info'>Share Dashboard</button>
                        </div>
                    </div>
                </div>

                <div class='card shadow-sm mt-3'>
                    <div class='card-header bg-white'>
                        <h5 class='mb-0'>Key Insights</h5>
                    </div>
                    <div class='card-body'>
                        <div class='alert alert-success mb-2'>
                            <small><strong>Top Performer:</strong> Enterprise Solutions leading revenue growth</small>
                        </div>
                        <div class='alert alert-info mb-2'>
                            <small><strong>Growth Driver:</strong> Professional Services showing strongest customer acquisition</small>
                        </div>
                        <div class='alert alert-warning mb-0'>
                            <small><strong>Attention Needed:</strong> Custom Development segment requires review</small>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>"

Dim pdf = renderer.RenderHtmlAsPdf(bootstrapDashboard)
pdf.SaveAs("business-dashboard.pdf")
$vbLabelText   $csharpLabel

Wynik: Profesjonalny PDF z pulpitna nawigacyjnym biznesowym z systemem siatki opartym na flexbox Bootstrap 5, komponentami kart z narzędziami do obramowania, elementami odznak, responsywnymi tabelami i metrykami o kolorystyce—wszystko renderowane z idealnym zachowaniem układu i typografii.

Ograniczenia frameworku CSS Apryse

Moduł HTML2PDF Apryse używa silnika renderującego niestandardowego (nie Chromium) z udokumentowanymi ograniczeniami:

  • Częściowe wsparcie dla flexbox: Układy Bootstrap 4/5 mogą nie renderować się poprawnie
  • Ograniczony CSS Grid: Nowoczesne projekty oparte na siatce często zawodzą
  • Ograniczenia JavaScript: Minimalne wykonanie w porównaniu do środowisk przeglądarkowych
  • Zgodność z frameworkiem: Wymaga intensywnych testów dla komponentów Bootstrap

Dokumentacja HTML2PDF wyraźnie ostrzega, że złożone CSS mogą nie renderować się zgodnie z oczekiwaniami. Programiści zgłaszają problemy z paskami nawigacyjnymi, układami kart opartymi na flex i narzędziami responsywnymi.

Wpływ na rozwój: Zespoły używające Apryse muszą tworzyć równoległe CSS "bezpieczne dla PDF" lub znacząco uproszczać układy Bootstrap, dodając nakład pracy w zakresie rozwoju i ograniczając konsekwencję projektu pomiędzy wynikami webowymi i PDF.

Aby uzyskać pełne wsparcie frameworku Bootstrap z pełnym renderowaniem CSS3, zobacz Przewodnik Bootstrap & Flexbox CSS.

Scalanie i dzielenie plików PDF

IronPDF ułatwia łączenie wielu dokumentów PDF lub dzielenie PDF na mniejsze pliki. Ta funkcjonalność jest niezbędna dla systemów zarządzania dokumentami wymagających zorganizowanej struktury treści PDF.

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Define HTML content for two PDFs to merge
var htmlA = @"
    <h1>PDF A</h1>
    <p>This is the content of PDF A.</p>
    <p>This is the first page of PDF A.</p>
    <div style='page-break-after: always;'></div>
    <p>This is the second page of PDF A.</p>";

var htmlB = @"
    <h1>PDF B</h1>
    <p>This is the content of PDF B.</p>
    <p>This is the first page of PDF B.</p>
    <div style='page-break-after: always;'></div>
    <p>This is the second page of PDF B.</p>";

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render the HTML content as separate PDF documents
var pdfDocA = renderer.RenderHtmlAsPdf(htmlA);
var pdfDocB = renderer.RenderHtmlAsPdf(htmlB);

// Merge the two PDFs into one
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);

// Save the merged PDF to a file
mergedPdf.SaveAs("Merged.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Define HTML content for two PDFs to merge
var htmlA = @"
    <h1>PDF A</h1>
    <p>This is the content of PDF A.</p>
    <p>This is the first page of PDF A.</p>
    <div style='page-break-after: always;'></div>
    <p>This is the second page of PDF A.</p>";

var htmlB = @"
    <h1>PDF B</h1>
    <p>This is the content of PDF B.</p>
    <p>This is the first page of PDF B.</p>
    <div style='page-break-after: always;'></div>
    <p>This is the second page of PDF B.</p>";

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render the HTML content as separate PDF documents
var pdfDocA = renderer.RenderHtmlAsPdf(htmlA);
var pdfDocB = renderer.RenderHtmlAsPdf(htmlB);

// Merge the two PDFs into one
var mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB);

// Save the merged PDF to a file
mergedPdf.SaveAs("Merged.pdf");
Imports IronPdf

' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"

' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Define HTML content for two PDFs to merge
Dim htmlA = "
    <h1>PDF A</h1>
    <p>This is the content of PDF A.</p>
    <p>This is the first page of PDF A.</p>
    <div style='page-break-after: always;'></div>
    <p>This is the second page of PDF A.</p>"

Dim htmlB = "
    <h1>PDF B</h1>
    <p>This is the content of PDF B.</p>
    <p>This is the first page of PDF B.</p>
    <div style='page-break-after: always;'></div>
    <p>This is the second page of PDF B.</p>"

' Instantiate a PDF renderer
Dim renderer = New ChromePdfRenderer()

' Render the HTML content as separate PDF documents
Dim pdfDocA = renderer.RenderHtmlAsPdf(htmlA)
Dim pdfDocB = renderer.RenderHtmlAsPdf(htmlB)

' Merge the two PDFs into one
Dim mergedPdf = PdfDocument.Merge(pdfDocA, pdfDocB)

' Save the merged PDF to a file
mergedPdf.SaveAs("Merged.pdf")
$vbLabelText   $csharpLabel

Dodawanie znaków wodnych do PDF

IronPDF umożliwia dodawanie znaków wodnych do stron PDF w celach brandingowych lub oznaczania dokumentów jako poufne. Biblioteka zarządza złożonością zarówno znaków wodnych tekstowych, jak i obrazowych, zapewniając elastyczność w zastosowaniu i wyświetlaniu.

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render a URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_102___");

// Apply a watermark to the PDF
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);

// Save the watermarked PDF to a file
pdf.SaveAs("Watermarked.pdf");
```### How Do I Work with PDF Forms?

IronPDF supports complete [interactive PDF form handling](https://ironpdf.com/how-to/create-forms/). You can create, fill, and submit PDF forms programmatically, which is particularly useful for automating form processing or integrating form data collection into your workflows.

```csharp
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Define HTML content with form elements
const string formHtml = @"
    <html>
        <body>
            <h2>Employee Information Form</h2>
            <form>
                First name: <br> 
                Last name: <br> 
                <br>
                <p>Please select your department:</p>
                <select name='department'>
                    <option value='HR'>HR</option>
                    <option value='Finance'>Finance</option>
                    <option value='IT'>IT</option>
                    <option value='Marketing'>Marketing</option>
                </select>
                <br>
                <br>
                <p>Please select your employment status:</p>
                <label for='fulltime'>Full-time</label> <br>
                <label for='parttime'>Part-time</label> <br>
                <br>
                <p>Please select your skills:</p>
                <label for='skill1'> Programming</label><br>
                <label for='skill2'> Design</label><br>
                <label for='skill3'> Marketing</label><br>
            </form>
        </body>
    </html>";

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

// Render the HTML form content as a PDF
renderer.RenderHtmlAsPdf(formHtml).SaveAs("EmployeeInfoForm.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();

// Render a URL as a PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_102___");

// Apply a watermark to the PDF
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);

// Save the watermarked PDF to a file
pdf.SaveAs("Watermarked.pdf");
```### How Do I Work with PDF Forms?

IronPDF supports complete [interactive PDF form handling](https://ironpdf.com/how-to/create-forms/). You can create, fill, and submit PDF forms programmatically, which is particularly useful for automating form processing or integrating form data collection into your workflows.

```csharp
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Define HTML content with form elements
const string formHtml = @"
    <html>
        <body>
            <h2>Employee Information Form</h2>
            <form>
                First name: <br> 
                Last name: <br> 
                <br>
                <p>Please select your department:</p>
                <select name='department'>
                    <option value='HR'>HR</option>
                    <option value='Finance'>Finance</option>
                    <option value='IT'>IT</option>
                    <option value='Marketing'>Marketing</option>
                </select>
                <br>
                <br>
                <p>Please select your employment status:</p>
                <label for='fulltime'>Full-time</label> <br>
                <label for='parttime'>Part-time</label> <br>
                <br>
                <p>Please select your skills:</p>
                <label for='skill1'> Programming</label><br>
                <label for='skill2'> Design</label><br>
                <label for='skill3'> Marketing</label><br>
            </form>
        </body>
    </html>";

// Instantiate a PDF renderer
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

// Render the HTML form content as a PDF
renderer.RenderHtmlAsPdf(formHtml).SaveAs("EmployeeInfoForm.pdf");
Imports IronPdf

' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"

' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Instantiate a PDF renderer
Dim renderer As New ChromePdfRenderer()

' Render a URL as a PDF
Dim pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_102___")

' Apply a watermark to the PDF
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)

' Save the watermarked PDF to a file
pdf.SaveAs("Watermarked.pdf")

Imports IronPdf

' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"

' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Define HTML content with form elements
Const formHtml As String = "
    <html>
        <body>
            <h2>Employee Information Form</h2>
            <form>
                First name: <br> 
                Last name: <br> 
                <br>
                <p>Please select your department:</p>
                <select name='department'>
                    <option value='HR'>HR</option>
                    <option value='Finance'>Finance</option>
                    <option value='IT'>IT</option>
                    <option value='Marketing'>Marketing</option>
                </select>
                <br>
                <br>
                <p>Please select your employment status:</p>
                <label for='fulltime'>Full-time</label> <br>
                <label for='parttime'>Part-time</label> <br>
                <br>
                <p>Please select your skills:</p>
                <label for='skill1'> Programming</label><br>
                <label for='skill2'> Design</label><br>
                <label for='skill3'> Marketing</label><br>
            </form>
        </body>
    </html>"

' Instantiate a PDF renderer
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.CreatePdfFormsFromHtml = True

' Render the HTML form content as a PDF
renderer.RenderHtmlAsPdf(formHtml).SaveAs("EmployeeInfoForm.pdf")
$vbLabelText   $csharpLabel

Interaktywny formularz PDF generowany pokazujący różne elementy formularza, w tym pola tekstowe, menu rozwijane, przyciski radiowe i pola wyboru - co demonstruje możliwości tworzenia formularzy.

Jak zabezpieczyć i zaszyfrować PDF?

IronPDF zapewnia niezawodne funkcje do zabezpieczania dokumentów PDF, w tym szyfrowanie, ustawienia uprawnień i podpisy cyfrowe. Te funkcje zapewniają ochronę poufnych informacji i utrzymanie integralności dokumentu.

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Load an existing PDF file
var pdf = PdfDocument.FromFile("invoice.pdf");

// Set document security settings
pdf.SecuritySettings.OwnerPassword = "top-secret"; // Password to edit the PDF
pdf.SecuritySettings.UserPassword = "sharable";   // Password to open the PDF

// Save the secured PDF to a file
pdf.SaveAs("secured.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Load an existing PDF file
var pdf = PdfDocument.FromFile("invoice.pdf");

// Set document security settings
pdf.SecuritySettings.OwnerPassword = "top-secret"; // Password to edit the PDF
pdf.SecuritySettings.UserPassword = "sharable";   // Password to open the PDF

// Save the secured PDF to a file
pdf.SaveAs("secured.pdf");
Imports IronPdf

' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"

' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Load an existing PDF file
Dim pdf = PdfDocument.FromFile("invoice.pdf")

' Set document security settings
pdf.SecuritySettings.OwnerPassword = "top-secret" ' Password to edit the PDF
pdf.SecuritySettings.UserPassword = "sharable" ' Password to open the PDF

' Save the secured PDF to a file
pdf.SaveAs("secured.pdf")
$vbLabelText   $csharpLabel

Okno dialogowe wprowadzania hasła z polem tekstowym i dwoma przyciskami o nazwach

Jakie zaawansowane opcje edycji są dostępne?

IronPDF oferuje zaawansowane możliwości edycji wykraczające poza podstawowe modyfikacje. Te obejmują dodawanie nagłówków i stopek, dostosowywanie układu strony, i osadzanie obrazów i czcionek. Te funkcje umożliwiają dynamiczne generowanie i dostosowywanie PDFów do specyficznych wymagań aplikacji.

using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new IronPdf.ChromePdfRenderer();

// Define multi-page HTML content with page breaks
var multiPageHtml = @"
    <p> This is 1st Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 2nd Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 3rd Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 4th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 5th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 6th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 7th Page</p>";

// Render the HTML content as a PDF
var pdfDoc = renderer.RenderHtmlAsPdf(multiPageHtml);

// Create a header for the first page only
var firstPageHeader = new HtmlHeaderFooter();
firstPageHeader.HtmlFragment = "This is the First Page Header";
pdfDoc.AddHtmlHeaders(firstPageHeader, 1);

// Save the resulting PDF with headers to a file
pdfDoc.SaveAs("PagesWithHeaders.pdf");
using IronPdf;

// Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here";

// Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate a PDF renderer
var renderer = new IronPdf.ChromePdfRenderer();

// Define multi-page HTML content with page breaks
var multiPageHtml = @"
    <p> This is 1st Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 2nd Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 3rd Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 4th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 5th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 6th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 7th Page</p>";

// Render the HTML content as a PDF
var pdfDoc = renderer.RenderHtmlAsPdf(multiPageHtml);

// Create a header for the first page only
var firstPageHeader = new HtmlHeaderFooter();
firstPageHeader.HtmlFragment = "This is the First Page Header";
pdfDoc.AddHtmlHeaders(firstPageHeader, 1);

// Save the resulting PDF with headers to a file
pdfDoc.SaveAs("PagesWithHeaders.pdf");
Imports IronPdf

' Set your IronPDF license key
IronPdf.License.LicenseKey = "License-Key goes here"

' Secure the server environment to disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Instantiate a PDF renderer
Dim renderer = New IronPdf.ChromePdfRenderer()

' Define multi-page HTML content with page breaks
Dim multiPageHtml = "
    <p> This is 1st Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 2nd Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 3rd Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 4th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 5th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 6th Page</p>
    <div style = 'page-break-after: always;' ></div>
    <p> This is 7th Page</p>"

' Render the HTML content as a PDF
Dim pdfDoc = renderer.RenderHtmlAsPdf(multiPageHtml)

' Create a header for the first page only
Dim firstPageHeader = New HtmlHeaderFooter()
firstPageHeader.HtmlFragment = "This is the First Page Header"
pdfDoc.AddHtmlHeaders(firstPageHeader, 1)

' Save the resulting PDF with headers to a file
pdfDoc.SaveAs("PagesWithHeaders.pdf")
$vbLabelText   $csharpLabel

Przeglądarka PDF pokazująca dwustronicowy dokument z 'To jest pierwsza strona nagłówka' na stronie 1 i 'To jest pierwsza strona' jako zawartość, z widocznymi miniaturkami stron w lewym pasku bocznym.

Jakie zaawansowane funkcje oferuje Apryse C#?

Jak dodać adnotacje i markup?

Apryse C# umożliwia dodawanie adnotacji i markup do dokumentów PDF programowo. To obejmuje adnotacje tekstowe, podkreślenia, linie i kształty — istotne dla procesów przeglądu dokumentów lub dodawania informacji dodatkowych.

using pdftron;
using pdftron.PDF;
using pdftron.SDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library with your license key
        PDFNet.Initialize("License");

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Access the first page of the document
            Page page = doc.GetPage(1);

            // Create a text annotation on the document
            Text txt = Text.Create(doc, new Rect(10, 20, 30, 40));
            txt.SetIcon("UserIcon");
            txt.SetContents("It's an annotation!");
            page.AnnotPushBack(txt);

            // Save the modified document
            doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
        }
    }
}
using pdftron;
using pdftron.PDF;
using pdftron.SDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library with your license key
        PDFNet.Initialize("License");

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Access the first page of the document
            Page page = doc.GetPage(1);

            // Create a text annotation on the document
            Text txt = Text.Create(doc, new Rect(10, 20, 30, 40));
            txt.SetIcon("UserIcon");
            txt.SetContents("It's an annotation!");
            page.AnnotPushBack(txt);

            // Save the modified document
            doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
        }
    }
}
Imports pdftron
Imports pdftron.PDF
Imports pdftron.SDF

Friend Class Program
	Shared Sub Main()
		' Initialize the PDFNet library with your license key
		PDFNet.Initialize("License")

		' Open an existing PDF document
		Using doc As New PDFDoc("input.pdf")
			' Access the first page of the document
			Dim page As Page = doc.GetPage(1)

			' Create a text annotation on the document
			Dim txt As Text = Text.Create(doc, New Rect(10, 20, 30, 40))
			txt.SetIcon("UserIcon")
			txt.SetContents("It's an annotation!")
			page.AnnotPushBack(txt)

			' Save the modified document
			doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Przeglądarka PDF pokazująca dokument z adnotacją tekstową, która brzmi

Jak konwertować dokumenty na PDF?

Apryse C# umożliwia konwersję różnych formatów dokumentów na PDF, w tym dokumentów Office, obrazów i HTML. Ta funkcja zapewnia jednolite formaty dokumentów do archiwizacji, udostępniania lub wyświetlania.

using pdftron;
using pdftron.PDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Create a new PDF document
        PDFDoc pdfdoc = new PDFDoc();

        // Convert a Word document to PDF and add it to the PDF document
        Convert.ToPdf(pdfdoc, "input.docx");

        // Save the newly created PDF document
        pdfdoc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
    }
}
using pdftron;
using pdftron.PDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Create a new PDF document
        PDFDoc pdfdoc = new PDFDoc();

        // Convert a Word document to PDF and add it to the PDF document
        Convert.ToPdf(pdfdoc, "input.docx");

        // Save the newly created PDF document
        pdfdoc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
    }
}
Imports pdftron
Imports pdftron.PDF

Friend Class Program
	Shared Sub Main()
		' Initialize the PDFNet library
		PDFNet.Initialize()

		' Create a new PDF document
		Dim pdfdoc As New PDFDoc()

		' Convert a Word document to PDF and add it to the PDF document
		Convert.ToPdf(pdfdoc, "input.docx")

		' Save the newly created PDF document
		pdfdoc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized)
	End Sub
End Class
$vbLabelText   $csharpLabel

Jak wydobyć treść z PDF?

Apryse C# wyróżnia się w wyciąganiu tekstu, obrazów i innych treści z dokumentów PDF. Ta możliwość wspiera analizę treści, ekstrakcję danych i aplikacje do odzyskiwania informacji, umożliwiając efektywne przetwarzanie treści PDF.

using pdftron;
using pdftron.PDF;
using pdftron.SDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Iterate through each page of the document
            PageIterator itr = doc.GetPageIterator();
            for (; itr.HasNext(); itr.Next())
            {
                Page page = itr.Current();

                // Extract text from the page
                TextExtractor txt = new TextExtractor();
                txt.Begin(page);

                // Print the extracted text to the console
                Console.WriteLine(txt.GetAsText());
            }
        }
    }
}
using pdftron;
using pdftron.PDF;
using pdftron.SDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Iterate through each page of the document
            PageIterator itr = doc.GetPageIterator();
            for (; itr.HasNext(); itr.Next())
            {
                Page page = itr.Current();

                // Extract text from the page
                TextExtractor txt = new TextExtractor();
                txt.Begin(page);

                // Print the extracted text to the console
                Console.WriteLine(txt.GetAsText());
            }
        }
    }
}
Imports pdftron
Imports pdftron.PDF
Imports pdftron.SDF

Friend Class Program
	Shared Sub Main()
		' Initialize the PDFNet library
		PDFNet.Initialize()

		' Open an existing PDF document
		Using doc As New PDFDoc("input.pdf")
			' Iterate through each page of the document
			Dim itr As PageIterator = doc.GetPageIterator()
			Do While itr.HasNext()
				Dim page As Page = itr.Current()

				' Extract text from the page
				Dim txt As New TextExtractor()
				txt.Begin(page)

				' Print the extracted text to the console
				Console.WriteLine(txt.GetAsText())
				itr.Next()
			Loop
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Console output showing extracted invoice text data including invoice number INV-001, date February 14 2024, customer John Doe, and product details with prices totaling $35.00

Jak zabezpieczać pliki PDF z Apryse?

Apryse C# zapewnia kompletne narzędzia do zabezpieczania dokumentów PDF. Możesz zastosować ochronę hasłem, zaszyfrować dokumenty i zarządzać uprawnieniami użytkowników, aby zabezpieczyć poufne informacje.

using pdftron;
using pdftron.SDF;
using pdftron.PDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Initialize the security handler
            doc.InitSecurityHandler();

            // Create a new security handler
            SecurityHandler newHandler = new SecurityHandler();

            // Set the user password for the document
            newHandler.ChangeUserPassword("new_password");

            // Grant permission to print the document
            newHandler.SetPermission(SecurityHandler.Permission.e_print, true);

            // Apply the security handler to the document
            doc.SetSecurityHandler(newHandler);

            // Save the secured document
            doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
        }
    }
}
using pdftron;
using pdftron.SDF;
using pdftron.PDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Initialize the security handler
            doc.InitSecurityHandler();

            // Create a new security handler
            SecurityHandler newHandler = new SecurityHandler();

            // Set the user password for the document
            newHandler.ChangeUserPassword("new_password");

            // Grant permission to print the document
            newHandler.SetPermission(SecurityHandler.Permission.e_print, true);

            // Apply the security handler to the document
            doc.SetSecurityHandler(newHandler);

            // Save the secured document
            doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
        }
    }
}
Imports pdftron
Imports pdftron.SDF
Imports pdftron.PDF

Friend Class Program
	Shared Sub Main()
		' Initialize the PDFNet library
		PDFNet.Initialize()

		' Open an existing PDF document
		Using doc As New PDFDoc("input.pdf")
			' Initialize the security handler
			doc.InitSecurityHandler()

			' Create a new security handler
			Dim newHandler As New SecurityHandler()

			' Set the user password for the document
			newHandler.ChangeUserPassword("new_password")

			' Grant permission to print the document
			newHandler.SetPermission(SecurityHandler.Permission.e_print, True)

			' Apply the security handler to the document
			doc.SetSecurityHandler(newHandler)

			' Save the secured document
			doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Jak redagować poufne informacje?

Apryse C# wspiera redagowanie poufnych informacji z dokumentów PDF - istotne dla wymogów prawnych i prywatności. Ta funkcja pozwala na trwałe usunięcie lub zamaskowanie tekstu i obrazów wewnątrz PDF.

using pdftron;
using pdftron.PDF;
using pdftron.SDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Define redaction areas on specific pages
            Redactor.Redaction[] redactions = {
                new Redactor.Redaction(1, new Rect(100, 100, 200, 200), false, "redacted"),
            };

            // Apply redactions to the document
            Redactor.Redact(doc, redactions);

            // Save the redacted document
            doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
        }
    }
}
using pdftron;
using pdftron.PDF;
using pdftron.SDF;

class Program
{
    static void Main()
    {
        // Initialize the PDFNet library
        PDFNet.Initialize();

        // Open an existing PDF document
        using (PDFDoc doc = new PDFDoc("input.pdf"))
        {
            // Define redaction areas on specific pages
            Redactor.Redaction[] redactions = {
                new Redactor.Redaction(1, new Rect(100, 100, 200, 200), false, "redacted"),
            };

            // Apply redactions to the document
            Redactor.Redact(doc, redactions);

            // Save the redacted document
            doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized);
        }
    }
}
Imports pdftron
Imports pdftron.PDF
Imports pdftron.SDF

Friend Class Program
	Shared Sub Main()
		' Initialize the PDFNet library
		PDFNet.Initialize()

		' Open an existing PDF document
		Using doc As New PDFDoc("input.pdf")
			' Define redaction areas on specific pages
			Dim redactions() As Redactor.Redaction = { New Redactor.Redaction(1, New Rect(100, 100, 200, 200), False, "redacted")}

			' Apply redactions to the document
			Redactor.Redact(doc, redactions)

			' Save the redacted document
			doc.Save("output.pdf", SDFDoc.SaveOptions.e_linearized)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Jaką dokumentację i wsparcie są dostępne?

Jakie wsparcie zapewnia IronPDF?

Dokumentacja: IronPDF oferuje kompletną dokumentację obejmującą tematy od przewodników startowych po zaawansowane funkcje jak konwersja HTML na PDF, edycja PDF, scalanie, dzielenie, i zabezpieczenia. Dokumentacja dostarcza łatwych do śledzenia treści z obszernymi przykładami kodu i wyjaśnieniami, które prowadzą cię przez wdrażanie różnych funkcji PDF.

Wsparcie: IronPDF zapewnia pomoc przez różne kanały, w tym wsparcie e-mail, wsparcie przez zgłoszenia i czat inżynieryjne wsparcie na żywo, gdzie można połączyć się z ich zespołem technicznym w sprawie specyficznych problemów. Twoja aplikacja może natychmiast skorzystać z ich systemu informacji zwrotnej.

Interfejs czatu Iron Support Team pokazujący opcje połączenia z inżynieryjnym wsparciem lub zespołami sprzedaży licencji

Jakie wsparcie zapewnia Apryse C#?

Dokumentacja: Apryse C# (dawniej PDFTron dla .NET) zapewnia szczegółową dokumentację obejmującą pełną dokumentację API, przewodniki dla developerów i przykładowy kod dla różnych zadań manipulacji PDF.

Wsparcie: Apryse oferuje wsparcie dla deweloperów poprzez bezpośrednią komunikację e-mail z ich zespołem technicznym w celu rozwiązywania problemów i pytań dotyczących implementacji. Można również zadawać pytania na Stack Overflow.

Jakie są opcje licencyjne i ceny?

Jakie są opcje licencyjne IronPDF?

IronPDF oferuje kilka opcji licencyjnych dostosowanych do różnych potrzeb projektowych. Ceny zaczynają się od $999 za licencję Lite. Te licencje różnią się w zależności od liczby deweloperów, lokalizacji i projektów objętych licencją. IronPDF zapewnia również opcje redystrybucji bez opłat licencyjnych i rozszerzone wsparcie z konkretnymi cenami dla dodatków.

Opcje licencji wieczystej IronPDF obejmują:

  • Lite Edition: Kosztuje $999, odpowiednia dla 1 dewelopera, 1 lokalizacji i 1 projektu, z uwzględnieniem wsparcia e-mail.
  • Plus Edition: Kosztuje $1,499, obejmuje do 3 deweloperów, 3 lokalizacje i 3 projekty, z 24-godzinnym wsparciem e-mail i czatu oraz wsparciem telefonicznym.
  • Professional Edition: W cenie $2,999, ta edycja obejmuje do 10 deweloperów, 10 lokalizacji i 10 projektów, zapewniając kompleksowe wsparcie, w tym wsparcie e-mail, czatu, telefoniczne i udostępniania ekranu.

Oferują również miesięczną subskrypcję w cenie 500 USD, obejmującą 10 000 wywołań API, a każde dodatkowe wywołanie kosztuje 0,02 USD. W celu zapewnienia nieograniczonego użytkowania IronPDF oferuje rozwiązanie dla przedsiębiorstw z cennikiem opartym na wycenie. To rozwiązanie obejmuje między innymi nieograniczoną Licencję wieczystą oraz wywołania API.

IronPDF pricing page showing three perpetual license tiers: Lite ($999), Plus ($1,499), and Professional ($2,999), with the Plus option selected and showing a total of $2,498 including extended support.

Jakie są opcje licencji Apryse C#?

Apryse C# oferuje elastyczne ceny dostosowane do konkretnych wymagań projektu, w tym funkcji, objętości dokumentów i scenariuszy wdrożenia. Aby uzyskać informacje na temat cen Apryse, należy skontaktować się z zespołem sprzedaży.

Formularz zapytania o wycenę Apryse z polami na dane kontaktowe i szczegóły dotyczące wykorzystania aplikacji

Którą bibliotekę PDF wybrać?

Zarówno IronPDF, jak i Apryse C# zapewniają skuteczne możliwości dla programistów .NET pracujących z plikami PDF. IronPDF zapewnia przewagę dzięki rozbudowanym funkcjom edycji plików PDF. Wyróżnia się pełnym zestawem funkcji, w tym rozbudowaną edycją i scałaniem plików PDF przy użyciu IronPDF. Pakiet Iron Suite zapewnia dostęp do wielu narzędzi w przystępnej cenie, wyposażając Twoje środowisko programistyczne w niezawodne narzędzia dostosowane do różnych potrzeb.

IronPDF wyróżnia się ogólną wszechstronnością i wartością dodaną w większości scenariuszy przetwarzania plików PDF. Ostateczna decyzja powinna być zgodna z wymaganiami projektu i konkretnymi funkcjami potrzebnymi do jego realizacji.

Zwróć uwagęApryse C# jest zastrzeżonym znakiem towarowym odpowiedniego właściciela. Ta strona nie jest powiązana z Apryse C#, nie jest przez nią promowana ani sponsorowana. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i odzwierciedlają informacje dostępne publicznie w momencie pisania.

Często Zadawane Pytania

Jakie są główne różnice między IronPDF a Apryse C# w zakresie obsługi plików PDF?

IronPDF jest znany z płynnej integracji z platformą .NET oraz zaawansowanych możliwości w zakresie konwersji HTML do PDF, obsługi formularzy i funkcji bezpieczeństwa. Apryse C#, wcześniej znany jako PDFTron SDK, koncentruje się na wyodrębnianiu treści i konwersji dokumentów, oferując zaawansowane funkcje, takie jak adnotacje i redagowanie.

Jak mogę przekonwertować HTML na PDF w aplikacji .NET?

Można użyć metody RenderHtmlAsPdf biblioteki IronPDF do bezpośredniej konwersji ciągów HTML na dokumenty PDF. Jest to przydatne do generowania plików PDF z treści internetowych lub szablonów HTML.

Jakie są kroki instalacji IronPDF w projekcie .NET?

IronPDF można łatwo zainstalować za pomocą menedżera pakietów NuGet w Visual Studio. Można również użyć konsoli menedżera pakietów, aby wykonać polecenie Install-Package IronPdf lub pobrać go bezpośrednio ze strony internetowej NuGet.

W jaki sposób IronPDF radzi sobie z zabezpieczeniami i szyfrowaniem plików PDF?

IronPDF zapewnia kompleksowe opcje bezpieczeństwa, w tym możliwość szyfrowania dokumentów, ustawiania uprawnień użytkowników oraz zarządzania podpisami cyfrowymi. Gwarantuje to ochronę plików PDF oraz zgodność z normami bezpieczeństwa.

Jakie zaawansowane funkcje edycji plików PDF oferuje IronPDF?

IronPDF obsługuje szereg zaawansowanych funkcji edycji, w tym możliwość łączenia i dzielenia dokumentów, dodawania znaków wodnych oraz dostosowywania nagłówków i stopek. Oferuje również opcje dostosowywania układu, umożliwiające tworzenie dokumentów bardziej dopasowanych do potrzeb użytkownika.

Jakie wsparcie i zasoby są dostępne dla użytkowników IronPDF?

IronPDF oferuje obszerną dokumentację, wsparcie e-mail, wsparcie oparte na zgłoszeniach oraz czat na żywo z inżynierami, aby pomóc programistom we wdrażaniu i rozwiązywaniu problemów. Dzięki temu użytkownicy mają dostęp do zasobów niezbędnych do efektywnej obróbki plików PDF.

Jakie opcje licencyjne są dostępne dla IronPDF?

IronPDF oferuje kilka opcji licencyjnych, w tym licencje Lite, Plus i Professional, dostosowane do różnych poziomów wsparcia i potrzeb programistów. Dostępny jest również model subskrypcji miesięcznej oraz rozwiązania dla przedsiębiorstw, przeznaczone do szerszego zastosowania.

Jak wyodrębnić tekst z pliku PDF za pomocą Apryse C#?

Apryse C# zapewnia solidne możliwości ekstrakcji tekstu, umożliwiając programistom programowe wyodrębnianie treści z plików PDF. Ta funkcja jest niezbędna w aplikacjach wymagających analizy danych lub manipulacji treścią.

Jakie formaty dokumentów Apryse C# może konwertować do formatu PDF?

Apryse C# obsługuje konwersję różnych formatów dokumentów, w tym dokumentów Office, obrazów i plików HTML, do formatu PDF. Ta funkcja ma kluczowe znaczenie dla zachowania spójności prezentacji dokumentów na różnych platformach.

Jakie są kluczowe funkcje IronPDF for .NET dla programistów .NET?

IronPDF jest znany ze swoich zaawansowanych funkcji, takich jak konwersja HTML do PDF, kompleksowa obsługa formularzy i zabezpieczenia dokumentów. Jest chwalony za wydajność, skalowalność i płynną integrację z platformą .NET, co czyni go idealnym rozwiązaniem dla szerokiego zakresu scenariuszy przetwarzania plików PDF.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Apryse Logo

Zmęczony drogimi odnowieniami i przestarzałymi aktualizacjami produktów?

Dokonaj łatwego przejścia z Apryse z naszym wsparciem inżynierskim na rzecz migracji i lepszego dealu.

IronPDF Logo

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie