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

IronPDF vs PDFShift: C# HTML do PDF API Porównanie

IronPDF oferuje niezawodną lokalną bibliotekę C# z Licencją wieczystą w cenie od 749 USD, natomiast PDFShift zapewnia interfejs API w chmurze z rozliczeniem opartym na liczbie konwersji. Dla start-upów przetwarzających ponad 500 plików PDF miesięcznie, IronPDF staje się bardziej opłacalny, oferując lepszą ochronę danych i możliwość pracy w trybie offline.

Format PDF jest standardem służącym do przedstawiania tekstu, linków, grafiki i innych elementów w jednym dokumencie. Manipulowanie plikami PDF w języku C# wymaga specjalistycznych bibliotek PDF dla aplikacji .NET. W tym artykule porównano dwa różne interfejsy API do generowania plików PDF, analizując ich wydajność, funkcje i licencjonowanie. Podczas tworzenia aplikacji .NET programiści potrzebują funkcji generowania plików PDF, które obsługują złożone układy HTML, stylizację CSS i renderowanie JavaScript.

Omówione interfejsy API PDF to:

  • IronPDF
  • PDFShift

Czym jest IronPDF?

IronPDF to kompletny interfejs API do konwersji HTML na PDF, zaprojektowany z myślą o programowaniu w środowiskach .NET i .NET Core. Biblioteka konwertuje strony HTML i zapewnia rozbudowane funkcje edycji plików PDF. IronPDF umożliwia programistom tworzenie, modyfikowanie i wyodrębnianie treści z dokumentów PDF w środowiskach .NET. Biblioteka ułatwia generowanie plików PDF ze stron HTML i obsługuje konwersję CSHTML do PDF dla aplikacji MVC oraz Razor Pages.

Pliki PDF można edytować, opatrzyć pieczęcią oraz ulepszyć za pomocą nagłówków i stopek. Biblioteka ułatwia odczytywanie tekstu z plików PDF i wyodrębnianie obrazów. IronPDF wykorzystuje silnik .NET Chromium do renderowania HTML do formatu PDF. Ten silnik zapewnia renderowanie z dokładnością co do piksela i obsługuje nowoczesne technologie internetowe, w tym konwersję JavaScript do formatu PDF. Kamień milowy w rozwoju silnika renderującego Chrome stanowił znaczący postęp w zakresie dokładności renderowania i optymalizacji wydajności.

Jakie funkcje oferuje IronPDF?

Jakie opcje konwersji plików PDF są dostępne?

Twórz pliki PDF z HTML, ciągów HTML, widoków MVC, formularzy internetowych i adresów URL. Obsługuje również konwersje do formatów Markdown, XML i RTF. Funkcje konwersji obejmują przekształcanie plików DOCX na PDF oraz obrazów na PDF. W przypadku aplikacji internetowych IronPDF obsługuje konwersję stron ASPX i wspiera renderowanie CSHTML w trybie headless.

Jak działa przetwarzanie obrazów PDF?

Tworzenie obrazów z plików PDF oraz plików PDF z obrazów. Obejmuje wyodrębnianie obrazów, obsługę wielu formatów oraz drukowanie do plików PDF. Obsługuje grafikę SVG i obrazy z usługi Azure Blob Storage. Biblioteka obsługuje konwersję plików TIFF zawierających wiele klatek i zapewnia wysokiej jakości konwersję plików PDF na obrazy. Aby zapewnić przetwarzanie oszczędzające pamięć, należy użyć rasteryzacji z MemoryStream.

Jakie funkcje obsługi plików są dostępne?

IronPDF zapewnia 128-bitowe szyfrowanie, ochronę hasłem oraz podpisy cyfrowe. Zawiera podpisywanie HSM i zgodność z PDF/A. Kamień milowy PDF/A rozszerzył wsparcie dla formatów archiwalnych, w tym PDF/A-3 i ZUGFeRD. Dodatkowe funkcje zabezpieczeń obejmują oczyszczanie PDF i zarządzanie historią zmian.

Jak mogę edytować pliki PDF?

IronPDF oferuje znaki wodne, zarządzanie stronami, tła, pierwsze plany i kompletną manipulację PDF. Zawiera rysowanie, adnotacje i zarządzanie formularzami. Zaawansowana edycja obejmuje zamianę tekstu, redakcję i przekształcanie stron PDF. Kamień milowy PDFium DOM poprawia obsługę złożonych struktur PDF.

Jak wyodrębnić zawartość z plików PDF?

Wyodrębnij osadzony tekst bezpośrednio z plików PDF. Dla tekstu osadzonego w obrazach użyj IronOCR. Obiekt PDF DOM zapewnia dostęp programistyczny do struktury PDF. Zaawansowane wyodrębnianie obejmuje czytanie tekstu PDF i zarządzanie czcionkami. Do analizy tekstów użyj integracji OpenAI do inteligentnego przetwarzania dokumentów.

Jak działają nagłówki i stopki?

Nagłówki i stopki mogą być dodawane podczas tworzenia lub do istniejących plików PDF. Obsługuje teksty i nagłówki HTML z dynamicznymi numerami stron. Zaawansowane opcje obejmują dodawanie nagłówków na określonych stronach i zarządzanie podziałami stron. Opcje renderingu zapewniają precyzyjną kontrolę nad układem i rozmiarami papieru.

Jakie platformy są kompatybilne?

IronPDF wspiera systemy operacyjne i frameworki zgodne z C#:

Kamień milowy kompatybilności rozszerzył wsparcie dla platform. Do wskazówek dotyczących wdrożenia, patrz IronPDF i IIS i rozwiązywanie problemów z wdrożeniem.

Czym jest PDFShift?

PDFShift to API do konwersji HTML na PDF, oferujące szybkie konwersje przez usługi w chmurze. API oferuje konwersje równoległe, zapytania asynchroniczne, wsparcie dla surowego HTML i inne. PDFShift wspiera Ruby, Python, JavaScript, Node i PHP. Dla programistów VB.NET lub F#, IronPDF zapewnia natywne wsparcie, podczas gdy PDFShift wymaga integracji HTTP. Dla porównania z innymi usługami chmurowymi, zobacz Aspose vs IronPDF oraz Syncfusion vs IronPDF.

PDFShift umożliwia niestandardowe nagłówki/stopki, zastosowanie CSS i szyfrowanie plików. Jednak usługa nie ma zaawansowanych funkcji manipulacji, takich jak kompresja PDF, linearizacja czy zgodność z PDF/UA. Dla wymagań przedsiębiorstw, przeglądaj ujawnienia CVE dotyczące bezpieczeństwa i uwierzytelnianie Kerberos.

Jakie funkcje oferuje PDFShift?

Jak działają konwersje równoległe?

PDFShift obsługuje konwersje równoległe dla jednoczesnego przetwarzania dokumentów. Dla podobnej funkcjonalności, zobacz przewodnik po asynchroniczności i wielowątkowości w IronPDF. IronPDF zapewnia przykłady generacji PDF równoległych i generację wielowątkową z punktami odniesienia wydajności. Przykłady asynchroniczne demonstrują optymalizację przetwarzania wsadowego.

Jakie są dostępne opcje nagłówków i stopek?

Twórz niestandardowe nagłówki/stopki z numerami stron i CSS/JavaScript. IronPDF oferuje zaawansowane opcje, w tym powtarzające się nagłówki tabel i nagłówki HTML. Klasyczne tekstowe nagłówki oferują prostą implementację, podczas gdy nagłówki HTML umożliwiają złożone układy. Dla dynamicznych treści, użyj nasłuchiwaczy wiadomości JavaScript.

Czy mogę konwertować surowy HTML bez udostępniania stron publicznie?

PDFShift konwertuje surowy HTML bez publicznych stron. IronPDF oferuje podobne możliwości z konfiguracją URL bazowej i osadzaniem DataURI. Przykład osadzenia obrazu base64 pokazuje samodzielną konwersję HTML. Dla bezpiecznych konwersji, użyj niestandardowego logowania i nagłówków żądań HTTP.

Jaka jest jakość PDF?

PDFShift tworzy PDF o wysokiej wierności szybko. Silnik renderujący Chrome IronPDF produkuje pikselowo-doskonałe PDF, odpowiadające wyjściu przeglądarki. Przykład pikselowo-doskonałego renderowania wyjaśnia optymalizację jakości. Dla specyficznych wymagań, skonfiguruj ustawienia widoku i opóźnienia renderowania.

Jak działają żądania asynchroniczne?

Powiadomienia w czasie rzeczywistym o zakończeniu konwersji z prostą integracją. IronPDF zapewnia pełne wsparcie asynchroniczne z przykładami przetwarzania wsadowego. Przykład asynchronicznej generacji PDF pokazuje poprawę wydajności. Dla przetwarzania na dużą skalę, zobacz zarządzanie pamięcią i wsparcie wydajności.

Jak utworzyć nowy projekt w Visual Studio?

Otwórz Visual Studio i wybierz Plik > Nowy projekt > Aplikacja konsolowa. Ten przykład korzysta z aplikacji konsolowej. Dla instrukcji instalacji, zobacz przegląd instalacji oraz przewodnik szybkiego startu. Dodatkowe szablony projektów obejmują samouczki Blazor i wyświetlanie PDF w MAUI. Dla rozwiązywania problemów z konfiguracją, sprawdź szybki przewodnik rozwiązywania problemów.

Wprowadź nazwę projektu i ścieżkę. Kliknij utwórz. Wybierz wymagany framework .NET:

Okno dialogowe konfiguracji projektu Visual Studio pokazujące opcje ustawień dla nowego projektu Konsolowego (Framework .NET) z polami dla nazwy projektu, lokalizacji i wersji frameworka

Visual Studio generuje strukturę aplikacji i otwiera program.cs do wprowadzania kodu:

Edytor Visual Studio Code pokazuje szablon aplikacji konsolowej C# z podświetleniem składni, pokazujący instrukcje 'using' i punkt wejścia metody Main

Jak zainstalować bibliotekę IronPDF?

Zainstaluj IronPDF na cztery sposoby:

  • Menedżer pakietów NuGet Visual Studio
  • Wiersz poleceń Visual Studio
  • Bezpośrednie pobranie z NuGet
  • Bezpośrednie pobranie z IronPDF

Dla alternatywnych metod, zobacz przewodnik instalatora Windows lub zaawansowaną instalację NuGet. Platformowe przewodniki obejmują konfigurację Linux, instalację macOS i wdrożenie Docker. Dla ograniczonych środowisk, użyj IronPDF Slim.

Jak używać Menedżera pakietów NuGet Visual Studio?

Visual Studio zapewnia Menedżer pakietów NuGet do bezpośredniej instalacji:

Interfejs Menedżera pakietów NuGet w IDE Visual Studio Code z wynikami wyszukiwania i opcjami instalacji pakietów dla programowania .NET

Wyszukaj 'IronPDF' w menedżerze pakietów:

Menedżer pakietów NuGet Visual Studio pokazuje wyniki wyszukiwania dla pakietów IronPDF, wyświetlając numery wersji, liczbę pobrań i opisy różnych bibliotek IronPDF

Wybierz IronPDF i zainstaluj pakiet. Dla mniejszych wdrożeń, rozważ IronPDF Slim. W przypadku problemów, zobacz nie udało się wdrożyć pakietu NuGet i wyjątki podczas wdrożenia.

Jak używać Wiersza poleceń Visual Studio?

Przejdź do Narzędzia > Menedżer pakietów NuGet > Konsola menedżera pakietów:

Menu Narzędzi Visual Studio rozwinięte z wyróżnioną Konsolą menedżera pakietów, pokazujące różnorodne narzędzia do rozwoju i opcje połączenia z bazami danych

Wprowadź w konsoli:

Install-Package IronPdf

Pakiet pobiera się i instaluje. Dla instalacji specyficznych dla platformy, zobacz Linux, macOS lub wdrożenie Docker. W przypadku błędów zależności, sprawdź zależności Chrome i zależności Pdfium.

Okno Konsoli menedżera pakietów Visual Studio wyświetlające pusty wiersz poleceń z ciemnym motywem interfejsu

Czy mogę pobrać bezpośrednio ze strony NuGet?

Pobierz pakiet NuGet bezpośrednio:

  • Przejdź do strony NuGet IronPDF
  • Wybierz pakiet do pobrania
  • Kliknij dwukrotnie, aby zainstalować automatycznie
  • Załaduj ponownie rozwiązanie

Dla zarządzania pakietami, zobacz przewodnik po folderze środowisk uruchomieniowych IronPDF. W przypadku konfliktów wersji, przeglądaj rozbieżność wersji zestawu i kompatybilność ClickOnce.

Czy mogę pobrać bezpośrednio ze strony internetowej IronPDF?

Pobierz ze strony IronPDF Download Page. Po pobraniu:

  • Kliknij prawym przyciskiem myszy na projekt w oknie rozwiązania
  • Wybierz odwołania i przeglądaj do pliku
  • Kliknij OK

Dla konfiguracji licencjonowania, zobacz użycie kluczy licencyjnych oraz zastosowanie licencji. Dodatkowe opcje konfiguracji obejmują ustawienie licencji w Web.config i zarządzanie rozszerzeniami licencji.

Jak działa PDFShift?

PDFShift działa zdalnie przez API. Prześlij żądania POST korzystając z C# RestClient z uwierzytelnianiem klucza API. Serwer przetwarza żądania i zwraca PDFy przez HTTP. Dla przetwarzania lokalnego, natywny silnik IronPDF zapewnia lepszą wydajność i bezpieczeństwo. Porównaj z opcjami silnik natywny vs zdalny. Dla alternatyw API, przeglądaj Apryse vs IronPDF i iText vs IronPDF.

Jak tworzyć PDFy z HTML?

Oba narzędzia zapewniają konwersję HTML różnymi podejściami. IronPDF oferuje rozbudowane opcje, w tym pliki ZIP HTML i niestandardowe renderowanie. Przewodnik tworzenia PDF obejmuje kompletne metody generacji. Dla zaawansowanych scenariuszy, odkrywaj renderowanie JavaScript i obsługę responsywnego CSS.

Jak tworzyć PDFy z URLi przy użyciu IronPDF?

Tworzenie PDFów z URLi wymaga trzech linii. Ten przykład kodu pokazuje, jak IronPDF pozwala programistom zastosować konwersję URL do PDF:

using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();

// Configure render options for better results
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
Renderer.RenderingOptions.MarginTop = 25;
Renderer.RenderingOptions.MarginBottom = 25;

// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_68___");

// Export to a file or Stream
pdf.SaveAs("url.pdf");
using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();

// Configure render options for better results
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
Renderer.RenderingOptions.MarginTop = 25;
Renderer.RenderingOptions.MarginBottom = 25;

// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_68___");

// Export to a file or Stream
pdf.SaveAs("url.pdf");
Imports IronPdf

Dim Renderer = New IronPdf.ChromePdfRenderer()

' Configure render options for better results
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
Renderer.RenderingOptions.MarginTop = 25
Renderer.RenderingOptions.MarginBottom = 25

' Create a PDF from a URL or local file path
Using pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_68___")
    ' Export to a file or Stream
    pdf.SaveAs("url.pdf")
End Using
$vbLabelText   $csharpLabel

Dla uwierzytelnionych stron, zobacz loginy do witryny TLS. Dla stron JavaScript, użyj opóźnień WaitFor i niestandardowego JavaScript. Zaawansowane opcje obejmują opóźnienia renderowania i konwersję JavaScript na PDF. Dla optymalizacji wydajności, zobacz rozwiązania dla wolnego wstępnego renderowania.

Wynik:

Strona internetowa Amazon Pakistan pokazująca wyskakujące okienko zmiany adresu dostawy nad stroną zakupów z zabawkami i grami z widocznymi kategoriami akcesoriów gamingowych i elektroniki

Jak konwertować HTML na PDF przy użyciu IronPDF?

Konwertuj HTML na PDF łatwo:

using IronPdf;

var pdf = new ChromePdfRenderer();

// Add custom CSS for better formatting
pdf.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
pdf.RenderingOptions.EnableJavaScript = true;

// Include web fonts and icons
pdf.RenderingOptions.WaitFor.FontsLoaded();

PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
doc.SaveAs("FirstPDFDocument.pdf");
using IronPdf;

var pdf = new ChromePdfRenderer();

// Add custom CSS for better formatting
pdf.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
pdf.RenderingOptions.EnableJavaScript = true;

// Include web fonts and icons
pdf.RenderingOptions.WaitFor.FontsLoaded();

PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
doc.SaveAs("FirstPDFDocument.pdf");
Imports IronPdf

Dim pdf = New ChromePdfRenderer()

' Add custom CSS for better formatting
pdf.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
pdf.RenderingOptions.EnableJavaScript = True

' Include web fonts and icons
pdf.RenderingOptions.WaitFor.FontsLoaded()

Dim doc As PdfDocument = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>")
doc.SaveAs("FirstPDFDocument.pdf")
$vbLabelText   $csharpLabel

Dla złożonego HTML użyj URL bazowych dla ścieżek względnych. Dodaj czcionki i ikony webowe dla typografii. Dodatkowe opcje formatowania obejmują niestandardowe czcionki i języki międzynarodowe. Dla problemów z czcionkami, zobacz zarządzanie czcionkami i problemy z kerningiem czcionek.

Interfejs przeglądarki PDF pokazujący prosty dokument z tekstem 'To jest nagłówek', demonstrujący podstawowe możliwości renderowania PDF

Jak tworzyć PDFy z URLi przy użyciu PDFShift?

Konwertowanie URLi przy użyciu PDFShift wymaga żądań POST:

using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_69___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            var json = new
            {
                source = "___PROTECTED_URL_70___",
                // Additional options
                landscape = false,
                use_print = false
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
                Console.WriteLine($"Error: {response.StatusCode} - {response.ErrorMessage}");
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_69___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            var json = new
            {
                source = "___PROTECTED_URL_70___",
                // Additional options
                landscape = false,
                use_print = false
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
                Console.WriteLine($"Error: {response.StatusCode} - {response.ErrorMessage}");
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
Imports System
Imports RestSharp
Imports RestSharp.Authenticators
Imports System.IO

Namespace PDFShiftExample
    Module Program
        Sub Main(args As String())
            Dim client = New RestClient("___PROTECTED_URL_69___")
            client.Authenticator = New HttpBasicAuthenticator("api", "your_api_key")

            Dim request = New RestRequest(Method.POST)

            Dim json = New With {
                .source = "___PROTECTED_URL_70___",
                .landscape = False,
                .use_print = False
            }
            request.AddJsonBody(json)

            Dim response = client.Execute(request)
            If Not response.IsSuccessful Then
                ' Handle the unsuccessful response
                Console.WriteLine($"Error: {response.StatusCode} - {response.ErrorMessage}")
            Else
                File.WriteAllBytes("result.pdf", response.RawBytes)
            End If
        End Sub
    End Module
End Namespace
$vbLabelText   $csharpLabel

Jak konwertować HTML na PDF przy użyciu PDFShift?

PDFShift zapewnia konwersję HTML na PDF:

using System;
using System.IO;
using RestSharp;
using RestSharp.Authenticators;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_71___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            string documentContent = File.ReadAllText("document.html");
            var json = new
            {
                source = documentContent,
                // Additional formatting options
                margin = "20px",
                format = "A4"
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
                Console.WriteLine($"Error: {response.StatusCode}");
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
using System;
using System.IO;
using RestSharp;
using RestSharp.Authenticators;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_71___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            string documentContent = File.ReadAllText("document.html");
            var json = new
            {
                source = documentContent,
                // Additional formatting options
                margin = "20px",
                format = "A4"
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
                Console.WriteLine($"Error: {response.StatusCode}");
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
Imports System
Imports System.IO
Imports RestSharp
Imports RestSharp.Authenticators

Module PDFShiftExample
    Sub Main()
        Dim client = New RestClient("___PROTECTED_URL_71___")
        client.Authenticator = New HttpBasicAuthenticator("api", "your_api_key")

        Dim request = New RestRequest(Method.POST)

        Dim documentContent As String = File.ReadAllText("document.html")
        Dim json = New With {
            .source = documentContent,
            .margin = "20px",
            .format = "A4"
        }
        request.AddJsonBody(json)

        Dim response = client.Execute(request)
        If Not response.IsSuccessful Then
            ' Handle the unsuccessful response
            Console.WriteLine($"Error: {response.StatusCode}")
        Else
            File.WriteAllBytes("result.pdf", response.RawBytes)
        End If
    End Sub
End Module
$vbLabelText   $csharpLabel

Jak dodać niestandardowe nagłówki i stopki?

Nagłówki i stopki poprawiają dokumenty PDF poprzez zapewnienie spójnych informacji na wszystkich stronach. Zarówno IronPDF, jak i PDFShift wspierają tę funkcjonalność. Dla zaawansowanych scenariuszy, odwołaj się do dodawania nagłówków na stronach i kontroli podziału stron. Przykład numerów stron i podziału stron pokazuje kompletną implementację. Dla kontroli układu, odkrywaj niestandardowe marginesy i orientację strony PDF.

Jak dodać nagłówki i stopki przy użyciu IronPDF?

IronPDF oferuje dwie metody implementacji nagłówków i stopek:

TextHeaderFooter: Ta metoda używa nagłówków tekstowych z dynamicznymi danymi.

HtmlHeaderFooter: To podejście pozwala na renderowane HTML nagłówki i stopki przy użyciu szablonów.

using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();

// Configure text header with merge fields
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;

// Add HTML footer with page numbers
Renderer.RenderingOptions.HtmlFooter = new IronPdf.HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
    Height = 25,
    DrawDividerLine = true
};

// Apply custom margins
Renderer.RenderingOptions.MarginTop = 40;
Renderer.RenderingOptions.MarginBottom = 40;

var pdf = Renderer.RenderHtmlAsPdf("<h1>Document with Headers</h1>");
pdf.SaveAs("headers-footers.pdf");
using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();

// Configure text header with merge fields
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;

// Add HTML footer with page numbers
Renderer.RenderingOptions.HtmlFooter = new IronPdf.HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
    Height = 25,
    DrawDividerLine = true
};

// Apply custom margins
Renderer.RenderingOptions.MarginTop = 40;
Renderer.RenderingOptions.MarginBottom = 40;

var pdf = Renderer.RenderHtmlAsPdf("<h1>Document with Headers</h1>");
pdf.SaveAs("headers-footers.pdf");
Imports IronPdf

Dim Renderer = New IronPdf.ChromePdfRenderer()

' Configure text header with merge fields
Renderer.RenderingOptions.FirstPageNumber = 1 ' use 2 if a cover page will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = True
Renderer.RenderingOptions.TextHeader.CenterText = "{url}"
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica
Renderer.RenderingOptions.TextHeader.FontSize = 12

' Add HTML footer with page numbers
Renderer.RenderingOptions.HtmlFooter = New IronPdf.HtmlHeaderFooter() With {
    .HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
    .Height = 25,
    .DrawDividerLine = True
}

' Apply custom margins
Renderer.RenderingOptions.MarginTop = 40
Renderer.RenderingOptions.MarginBottom = 40

Dim pdf = Renderer.RenderHtmlAsPdf("<h1>Document with Headers</h1>")
pdf.SaveAs("headers-footers.pdf")
$vbLabelText   $csharpLabel

Dla złożonych układów, rozważ użycie spisu treści i zakładek. Przykład konturów i zakładek zapewnia strukturę nawigacyjną. Dla precyzyjnego pozycjonowania, użyj przykładu niestandardowych marginesów i przekształcania stron PDF.

Jak dodać nagłówki i stopki przy użyciu PDFShift?

PDFShift umożliwia dostosowywanie dokumentów z nagłówkami i stopkami dla identyfikacji lub oznakowania:

using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_72___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            var json = new
            {
                source = "___PROTECTED_URL_73___",
                footer = new { 
                    source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>", 
                    spacing = "50px" 
                },
                header = new {
                    source = "<div>Company Name</div>",
                    spacing = "30px"
                }
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_72___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            var json = new
            {
                source = "___PROTECTED_URL_73___",
                footer = new { 
                    source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>", 
                    spacing = "50px" 
                },
                header = new {
                    source = "<div>Company Name</div>",
                    spacing = "30px"
                }
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
Imports System
Imports RestSharp
Imports RestSharp.Authenticators
Imports System.IO

Namespace PDFShiftExample
    Class Program
        Shared Sub Main(ByVal args As String())
            Dim client = New RestClient("___PROTECTED_URL_72___")
            client.Authenticator = New HttpBasicAuthenticator("api", "your_api_key")

            Dim request = New RestRequest(Method.POST)

            Dim json = New With {
                .source = "___PROTECTED_URL_73___",
                .footer = New With {
                    .source = "<div style=""font-size: 12px"">Page {{page}} of {{total}}</div>",
                    .spacing = "50px"
                },
                .header = New With {
                    .source = "<div>Company Name</div>",
                    .spacing = "30px"
                }
            }
            request.AddJsonBody(json)

            Dim response = client.Execute(request)
            If Not response.IsSuccessful Then
                ' Handle the unsuccessful response
            Else
                File.WriteAllBytes("result.pdf", response.RawBytes)
            End If
        End Sub
    End Class
End Namespace
$vbLabelText   $csharpLabel

Jak dodać znaki wodne do plików PDF?

Znakowanie wodne PDF dodaje oznakowanie i bezpieczeństwo dokumentom. Zarówno IronPDF, jak i PDFShift wspierają znakowanie wodne. Dla dodatkowych opcji, zobacz stemplowanie tekstu i obrazów oraz stemplowanie nowych treści. Przykład znakowania wodnego PDF pokazuje zaawansowane techniki. Dla przetwarzania wsadowego, użyj wydajnego stemplowania HTML.

Jak dodawać znaki wodne przy użyciu IronPDF?

IronPDF umożliwia znakowanie wodne PDF przy użyciu HTML. Znaki wodne mogą zawierać przezroczystość, rotację i hiperłącza. Dla przykładów, zobacz przykłady znakowania wodnego PDF. Dla wielokrotnych stempli, rozważ wydajne stemplowanie HTML. Dodatkowe opcje obejmują przykład tła i pierwszego planu oraz rysuj tekst i bitmapę.

using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_74___");

// Add text watermark with opacity and rotation
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", 
    IronPdf.Editing.WaterMarkLocation.MiddleCenter, 
    50, // opacity
    -45, // rotation
    "___PROTECTED_URL_75___");

// Add image watermark
Pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>", 
    30, // opacity
    IronPdf.Editing.VerticalAlignment.Top,
    IronPdf.Editing.HorizontalAlignment.Right);

Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_74___");

// Add text watermark with opacity and rotation
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", 
    IronPdf.Editing.WaterMarkLocation.MiddleCenter, 
    50, // opacity
    -45, // rotation
    "___PROTECTED_URL_75___");

// Add image watermark
Pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>", 
    30, // opacity
    IronPdf.Editing.VerticalAlignment.Top,
    IronPdf.Editing.HorizontalAlignment.Right);

Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf

Dim Renderer As New IronPdf.ChromePdfRenderer()
Using Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_74___")
    
    ' Add text watermark with opacity and rotation
    Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", 
        IronPdf.Editing.WaterMarkLocation.MiddleCenter, 
        50, ' opacity
        -45, ' rotation
        "___PROTECTED_URL_75___")
    
    ' Add image watermark
    Pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>", 
        30, ' opacity
        IronPdf.Editing.VerticalAlignment.Top,
        IronPdf.Editing.HorizontalAlignment.Right)
    
    Pdf.SaveAs("C:\Path\To\Watermarked.pdf")
End Using
$vbLabelText   $csharpLabel

Dla zaawansowanego znakowania wodnego, połącz z tłami i pierwszymi planami lub niestandardowym stemplowaniem. Przykład dołączania strony tytułowej pokazuje oznakowanie dokumentu. Dla precyzyjnej kontroli, użyj rotacji tekstu i skalowania obiektów PDF.

Strona pakietu IronPDF NuGet pokazująca wersję 2022.6.6115 z poleceniem instalacji, 3,7 mln pobrań i funkcjami do tworzenia i manipulacji PDF w C#

Jak dodawać znaki wodne przy użyciu PDFShift?

PDFShift pozwala na dodawanie znaków wodnych do dokumentów w celach identyfikacyjnych:

using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_76___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            var json = new
            {
                source = "___PROTECTED_URL_77___",
                watermark = new { 
                    image = "___PROTECTED_URL_78___", 
                    offset_x = 50, 
                    offset_y = "100px", 
                    rotate = 45,
                    opacity = 0.5
                }
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_76___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            var json = new
            {
                source = "___PROTECTED_URL_77___",
                watermark = new { 
                    image = "___PROTECTED_URL_78___", 
                    offset_x = 50, 
                    offset_y = "100px", 
                    rotate = 45,
                    opacity = 0.5
                }
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
Imports System
Imports RestSharp
Imports RestSharp.Authenticators
Imports System.IO

Namespace PDFShiftExample
    Module Program
        Sub Main(args As String())
            Dim client = New RestClient("___PROTECTED_URL_76___")
            client.Authenticator = New HttpBasicAuthenticator("api", "your_api_key")

            Dim request = New RestRequest(Method.POST)

            Dim json = New With {
                .source = "___PROTECTED_URL_77___",
                .watermark = New With {
                    .image = "___PROTECTED_URL_78___",
                    .offset_x = 50,
                    .offset_y = "100px",
                    .rotate = 45,
                    .opacity = 0.5
                }
            }
            request.AddJsonBody(json)

            Dim response = client.Execute(request)
            If Not response.IsSuccessful Then
                ' Handle the unsuccessful response
            Else
                File.WriteAllBytes("result.pdf", response.RawBytes)
            End If
        End Sub
    End Module
End Namespace
$vbLabelText   $csharpLabel

Jak dobrze te narzędzia wspierają Bootstrap i nowoczesne CSS?

Współczesne tworzenie stron opiera się na frameworkach CSS do projektowania responsywnego, a biblioteki PDF muszą dokładnie konwertować te frameworki. Zobacz przewodnik po Bootstrap & Flex CSS. Dla projektowania responsywnego, sprawdź ustawienia viewport i zoom oraz niestandardowe rozmiary papieru. Przykład niestandardowego rozmiaru papieru PDF pokazuje precyzyjne skalowanie. Dla kontroli układu, odkrywaj dopasowanie do papieru i zoom i responsywny HTML na PDF.

Czy IronPDF wspiera Bootstrap i nowoczesne frameworki CSS?

Silnik renderujący Chrome IronPDF zapewnia rozległe wsparcie dla frameworków CSS:

  • Bootstrap 5: Pełna obsługa flexbox i siatki CSS z responsywnymi narzędziami
  • Bootstrap 4: Kompletne systemy kart, nawigacja, komponenty formularzy
  • Tailwind CSS: Wszystkie klasy narzędziowe i modyfikatory responsywne
  • Foundation: Kompletny system siatek i komponentów
  • Nowoczesne CSS3: Flexbox, Grid, niestandardowe właściwości, animacje, transformacje

Walidacja: Strona główna Bootstrap i szablony konwertują się dokładnie. Zobacz przewodnik po opcjach renderowania. IronPDF wspiera Angular do PDF i inne frameworki. Dodatkowe wsparcie dla frameworków obejmuje wykresy JavaScript i renderowanie WebGL. Dla optymalizacji, użyj ustawień renderowania HTML i pikselowo-doskonałego formatowania.

Przykład kodu: Formularz kontaktowy z Bootstrap

using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure for improve Bootstrap rendering
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute
renderer.RenderingOptions.ViewPortWidth = 1200; // Desktop viewport

string bootstrapContact = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_79___ rel='stylesheet'>
    <style>
        @media print {
            .no-print { display: none; }
        }
    </style>
</head>
<body>
    <div class='container my-5'>
        <div class='row justify-content-center'>
            <div class='col-lg-8'>
                <div class='card shadow'>
                    <div class='card-header bg-primary text-white'>
                        <h2 class='mb-0'>Contact Us</h2>
                    </div>
                    <div class='card-body'>
                        <form>
                            <div class='row g-3'>
                                <div class='col-md-6'>
                                    <label class='form-label'>First Name</label>
                                    <input type='text' class='form-control' placeholder='John'>
                                </div>
                                <div class='col-md-6'>
                                    <label class='form-label'>Last Name</label>
                                    <input type='text' class='form-control' placeholder='Doe'>
                                </div>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Email Address</label>
                                <div class='input-group'>
                                    <span class='input-group-text'>@</span>
                                    <input type='email' class='form-control' placeholder='john.doe@example.com'>
                                </div>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Subject</label>
                                <select class='form-select'>
                                    <option>General Inquiry</option>
                                    <option>Technical Support</option>
                                    <option>Sales Question</option>
                                    <option>Partnership Opportunity</option>
                                </select>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Message</label>
                                <textarea class='form-control' rows='5' placeholder='Your message here...'></textarea>
                            </div>

                            <div class='d-flex justify-content-between align-items-center mt-4'>
                                <div class='form-check'>
                                    <input class='form-check-input' type='checkbox' id='newsletter'>
                                    <label class='form-check-label' for='newsletter'>
                                        Subscribe to newsletter
                                    </label>
                                </div>
                                <button type='submit' class='btn btn-primary px-4'>Submit</button>
                            </div>
                        </form>
                    </div>
                </div>

                <div class='alert alert-info mt-4 d-flex align-items-center' role='alert'>
                    <svg class='bi flex-shrink-0 me-2' width='24' height='24'></svg>
                    <div>We typically respond within 24 hours during business days.</div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapContact);
pdf.SaveAs("contact-form.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure for improve Bootstrap rendering
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute
renderer.RenderingOptions.ViewPortWidth = 1200; // Desktop viewport

string bootstrapContact = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_79___ rel='stylesheet'>
    <style>
        @media print {
            .no-print { display: none; }
        }
    </style>
</head>
<body>
    <div class='container my-5'>
        <div class='row justify-content-center'>
            <div class='col-lg-8'>
                <div class='card shadow'>
                    <div class='card-header bg-primary text-white'>
                        <h2 class='mb-0'>Contact Us</h2>
                    </div>
                    <div class='card-body'>
                        <form>
                            <div class='row g-3'>
                                <div class='col-md-6'>
                                    <label class='form-label'>First Name</label>
                                    <input type='text' class='form-control' placeholder='John'>
                                </div>
                                <div class='col-md-6'>
                                    <label class='form-label'>Last Name</label>
                                    <input type='text' class='form-control' placeholder='Doe'>
                                </div>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Email Address</label>
                                <div class='input-group'>
                                    <span class='input-group-text'>@</span>
                                    <input type='email' class='form-control' placeholder='john.doe@example.com'>
                                </div>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Subject</label>
                                <select class='form-select'>
                                    <option>General Inquiry</option>
                                    <option>Technical Support</option>
                                    <option>Sales Question</option>
                                    <option>Partnership Opportunity</option>
                                </select>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Message</label>
                                <textarea class='form-control' rows='5' placeholder='Your message here...'></textarea>
                            </div>

                            <div class='d-flex justify-content-between align-items-center mt-4'>
                                <div class='form-check'>
                                    <input class='form-check-input' type='checkbox' id='newsletter'>
                                    <label class='form-check-label' for='newsletter'>
                                        Subscribe to newsletter
                                    </label>
                                </div>
                                <button type='submit' class='btn btn-primary px-4'>Submit</button>
                            </div>
                        </form>
                    </div>
                </div>

                <div class='alert alert-info mt-4 d-flex align-items-center' role='alert'>
                    <svg class='bi flex-shrink-0 me-2' width='24' height='24'></svg>
                    <div>We typically respond within 24 hours during business days.</div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapContact);
pdf.SaveAs("contact-form.pdf");
Imports IronPdf

Dim renderer = New ChromePdfRenderer()

' Configure for improve Bootstrap rendering
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.RenderDelay = 500 ' Allow JS to execute
renderer.RenderingOptions.ViewPortWidth = 1200 ' Desktop viewport

Dim bootstrapContact As String = "
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_79___ rel='stylesheet'>
    <style>
        @media print {
            .no-print { display: none; }
        }
    </style>
</head>
<body>
    <div class='container my-5'>
        <div class='row justify-content-center'>
            <div class='col-lg-8'>
                <div class='card shadow'>
                    <div class='card-header bg-primary text-white'>
                        <h2 class='mb-0'>Contact Us</h2>
                    </div>
                    <div class='card-body'>
                        <form>
                            <div class='row g-3'>
                                <div class='col-md-6'>
                                    <label class='form-label'>First Name</label>
                                    <input type='text' class='form-control' placeholder='John'>
                                </div>
                                <div class='col-md-6'>
                                    <label class='form-label'>Last Name</label>
                                    <input type='text' class='form-control' placeholder='Doe'>
                                </div>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Email Address</label>
                                <div class='input-group'>
                                    <span class='input-group-text'>@</span>
                                    <input type='email' class='form-control' placeholder='john.doe@example.com'>
                                </div>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Subject</label>
                                <select class='form-select'>
                                    <option>General Inquiry</option>
                                    <option>Technical Support</option>
                                    <option>Sales Question</option>
                                    <option>Partnership Opportunity</option>
                                </select>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Message</label>
                                <textarea class='form-control' rows='5' placeholder='Your message here...'></textarea>
                            </div>

                            <div class='d-flex justify-content-between align-items-center mt-4'>
                                <div class='form-check'>
                                    <input class='form-check-input' type='checkbox' id='newsletter'>
                                    <label class='form-check-label' for='newsletter'>
                                        Subscribe to newsletter
                                    </label>
                                </div>
                                <button type='submit' class='btn btn-primary px-4'>Submit</button>
                            </div>
                        </form>
                    </div>
                </div>

                <div class='alert alert-info mt-4 d-flex align-items-center' role='alert'>
                    <svg class='bi flex-shrink-0 me-2' width='24' height='24'></svg>
                    <div>We typically respond within 24 hours during business days.</div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>"

Dim pdf = renderer.RenderHtmlAsPdf(bootstrapContact)
pdf.SaveAs("contact-form.pdf")
$vbLabelText   $csharpLabel

Wyjście: Profesjonalny formularz kontaktowy z kontrolkami formularza Bootstrap, układem siatki, stylizacją karty i grupami wejściowymi - wszystkie dokładnie renderowane w PDF.

Dla większej liczby przykładów, zobacz renderowanie wykresów i strony WebGL. Przykład dodawania kodów kreskowych w HTML pokazuje dodatkowe elementy HTML. Dla optymalizacji wydajności, użyj przewodnika po zasobach PDF i wydajności i zarządzania rozmiarem pakietu.

Czy PDFShift wspiera Bootstrap i nowoczesne CSS?

  • API Chmurowe: Wszystkie konwersje przez wywołania HTTP API do serwerów PDFShift
  • Wsparcie Bootstrap: Ogólnie obsługuje układy Bootstrap 4/5 dobrze
  • Wsparcie CSS3: Dobre renderowanie flexbox i nowoczesnego CSS
  • Wymagany Internet: Nie można generować PDF-ów offline
  • Ceny na dokument: Opłaty za konwersję, a nie za licencję programisty

Kluczowe kwestie dotyczące PDFShift:

  • Zewnętrzna zależność: Wszystkie generacje PDF-ów wymagają internetu i dostępności zewnętrznego API
  • Prywatność danych: Treści HTML wysyłane na zewnętrzne serwery do przetworzenia
  • Koszty woluminu: Ceny na dokument mogą stać się drogie przy dużej ilości
  • Opóźnienia: Podróże sieciowe powodują opóźnienia przy każdej konwersji
  • Brak możliwości offline: Nie działa w odizolowanych lub offline środowiskach

Wpływ na rozwój: PDFShift dobrze obsługuje Bootstrap, ale architektura chmurowa wprowadza kompromisy operacyjne:

  1. Bieżące koszty na dokument vs jednorazowa licencja programisty IronPDF
  2. Zależność od usług zewnętrznych vs lokalne przetwarzanie na miejscu
  3. Rozważania dotyczące przetwarzania danych dla treści wrażliwych
  4. Wymóg łączności z Internetem vs zdolność offline

Wpływ na rozwój: Architektura chmurowa wprowadza względy operacyjne:

  1. Bieżące koszty na dokument w porównaniu do jednorazowego licencjonowania
  2. Zewnętrzna zależność w porównaniu do kontroli lokalnego przetwarzania
  3. Wymagania dotyczące zarządzania danymi dla treści wrażliwych
  4. Wymogi dotyczące łączności internetowej

Dla aplikacji o dużej skali lub wrażliwych danych, lokalne przetwarzanie IronPDF zapewnia lepszą kontrolę i wartość. Rozważ generację równoległą i wielowątkowość dla lepszej wydajności. Przykład wielowątkowy pokazuje przetwarzanie równoczesne. Dla rozwiązań chmurowych zobacz wdrażanie na Azure i integracja AWS Lambda.

Zobacz Przewodnik po Bootstrap i Flexbox CSS oraz ustawienia renderowania HTML. Dla obsługi nowoczesnego CSS, zobacz języki międzynarodowe i CMYK oraz widoczność metadanych.

Jakie są opcje licencyjne?

IronPDF oferuje bezpłatną licencję programisty. Lekki pakiet zaczyna się od $799, bez ukrytych kosztów. Pakiet zawiera redystrybucję SaaS i OEM. Wszystkie licencje posiadają 30-dniową gwarancję zwrotu pieniędzy, jeden rok wsparcia i aktualizacji, i są ważne dla rozwoju, testów, etapów przygotowawczych i produkcji z licencją wieczystą. Zobacz Ceny i licencjonowanie IronPDF. Dla zarządzania licencjami, zobacz stosowanie kluczy licencyjnych oraz konfiguracja klucza licencyjnego. Przewodnik po kluczach licencyjnych obejmuje wszystkie metody konfiguracji. Dla rozwiązywania problemów z licencją zobacz niemożność połączenia się z serwerem licencjonowania oraz używanie deklaracji.

Strona licencji IronPDF pokazująca trzy poziomy: Lite ($499), Professional ($999) i Unlimited ($2,999) z ograniczeniami dla programistów i projektów dla każdego poziomu

PDFShift oferuje pięć pakietów dostępnych miesięcznie lub rocznie na podstawie kredytów:

  1. Free: 50 kredytów miesięcznie
  2. Startup: 500 kredytów miesięcznie ($9) lub 6 000 rocznie ($99)
  3. Boost: 2 500 kredytów miesięcznie ($24) lub 30 000 rocznie ($240)
  4. Growth: 5 000 kredytów miesięcznie ($39) lub 60 000 rocznie ($390)
  5. Business: 25 000 kredytów miesięcznie ($99)

Ograniczenia rozmiaru plików: 1MB (darmowy), 5MB (płatne pakiety).

Porównanie cen PDFShift pokazujące trzy roczne plany: Startup ($90), Boost ($240), i Growth ($390) z różnymi miesięcznymi limitami kredytowymi i stawką dodatkową

Odwiedź Stronę Cenową PDFShift.

Które API PDF powinienem wybrać?

IronPDF jest darmowy dla niezależnych deweloperów i oferuje szerokie możliwości modyfikacji i konwersji PDF. IronPDF oferuje zaawansowane narzędzia edycyjne i formatowanie. Biblioteka konwertuje HTML do wektorowych PDF-ów do druku komercyjnego z wyraźnym, wysokiej jakości obrazem. Zobacz Informacje Licencyjne Iron Software. Dla dodatkowych możliwości, sprawdź organizację PDF, podpis i zabezpieczanie PDF, oraz opcje konwersji PDF. Pełna lista funkcji obejmuje wszystkie możliwości. Dla możliwości dla enterprise, sprawdź przykład podpisu cyfrowego i szyfrowanie i deszyfrowanie.

PDFShift to chmurowe API HTML-do-PDF z prostymi punktami końcowymi i wsparciem dla wielu języków. PDFShift obsługuje równoległe konwersje poprzez żądania serwera. Jednak usługa nie oferuje zaawansowanych funkcji jak tworzenie formularzy PDF, łączenie PDF, zamiana tekstu, czy edycja metadanych. Dla porównania obsługi formularzy, zobacz przykład danych formularza i wypełnianie i edytowanie formularzy. Dla organizacji dokumentów, sprawdź przykład łączenia PDF-ów i dzielenie stron PDF.

Licencje IronPDF są oparte na deweloperach i kupowane jednorazowo. PDFShift używa miesięcznego lub rocznego licencjonowania opartego na kredytach, wymagającego bieżących subskrypcji. IronPDF obsługuje dystrybucję OEM i SaaS; PDFShift nie. Dla zarządzania licencjami, zobacz rozszerzenia IronPDF i opcje aktualizacji. Dziennik zmian śledzi wszystkie aktualizacje produktów. Dla opcji wsparcia zobacz przewodnik dotyczący wniosków o wsparcie inżynieryjne i najlepsze praktyki wsparcia.

Porównując oba narzędzia: IronPDF oferuje znacznie więcej funkcji. PDFShift oferuje ograniczone możliwości manipulacji PDF. IronPDF konwertuje URL na PDF w trzech liniach, podczas gdy PDFShift wymaga dodatkowej złożoności kodu. IronPDF szybko i łatwo integruje się z projektami .NET. System chmurowy PDFShift opiera się na RestSharp i zewnętrznych API, co dodaje złożoność integracji. Dla zasobów dotyczących rozwiązywania problemów, zobacz szybki przewodnik rozwiązywania problemów i wsparcie inżynieryjne. Dodatkowe zasoby obejmują pliki logów Azure oraz pliki logów AWS. Dla wskazówek dotyczących wdrażania sprawdź rozwiązywanie problemów z wdrażaniem Azure oraz debugowanie funkcji Azure.

Iron Software oferuje pięć narzędzi w cenie dwóch. Iron Suite obejmuje:

  • IronBarcode - Generowanie i odczytywanie kodów kreskowych
  • IronXL - Manipulacja plikami Excel bez Office
  • IronOCR - Zaawansowane OCR do ekstrakcji tekstu
  • IronPDF - Kompleksowa biblioteka do manipulacji PDF
  • IronWebScraper - Zbieranie danych i ekstrakcja

Odwiedź Stronę Iron Suite, by odkryć IRONSUITE. Dla dodatkowych produktów Iron Software, odkryj Dokumentację IronSecureDoc dla potrzeb bezpieczeństwa dokumentów. Demonstracje produktu pokazują rzeczywiste zastosowania. Dla analizy konkurencyjnej zobacz porównanie QuestPDF vs IronPDF. Strona kamieni milowych podkreśla kluczowe osiągnięcia od 2015 roku.

Zwróć uwagęPDFShift jest zarejestrowanym znakiem towarowym swojego właściciela. Ta strona nie jest powiązana z, aprobowana przez lub sponsorowana przez PDFShift. 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

Jak mogę przekonwertować HTML na PDF w języku C#?

Możesz użyć metody RenderHtmlAsPdf biblioteki IronPDF do konwersji ciągów HTML na pliki PDF. Możesz również konwertować pliki HTML na pliki PDF za pomocą metody RenderHtmlFileAsPdf.

Jakie są zalety korzystania z IronPDF do obróbki plików PDF?

IronPDF oferuje rozbudowany zestaw funkcji do obsługi plików PDF, w tym tworzenie plików PDF z różnych formatów, wyodrębnianie obrazów, szyfrowanie, możliwości edycji oraz kompatybilność z wieloma platformami, takimi jak Windows, Linux oraz usługi w chmurze, takie jak Azure i AWS.

Jakie są kluczowe funkcje PDFShift?

PDFShift to oparte na chmurze API, które umożliwia szybką konwersję plików HTML do formatu PDF dzięki takim funkcjom, jak konwersje równoległe, niestandardowe nagłówki, żądania asynchroniczne oraz kompatybilność z wieloma językami programowania.

Czym różnią się IronPDF i PDFShift pod względem licencji?

IronPDF oferuje licencję dla programistów z opcją jednorazowego zakupu i 30-dniową gwarancją zwrotu pieniędzy. Natomiast PDFShift korzysta z systemu licencji opartego na kredytach z planami miesięcznymi i rocznymi.

Czy IronPDF może być używany w środowiskach chmurowych?

Tak, IronPDF obsługuje środowiska chmurowe, takie jak Microsoft Azure i AWS, dzięki czemu jest wszechstronnym rozwiązaniem dla różnych scenariuszy wdrożeniowych.

Jak dodać nagłówki i stopki do pliku PDF za pomocą IronPDF?

IronPDF pozwala na dodawanie naglowkow i stopki do plikow PDF przy uzyciu wbudowanych metod, ktore moga byc dostosowane do zawierania tekstu, obrazow lub numerow stron.

Jakie platformy wspiera IronPDF?

IronPDF wspiera prawie wszystkie systemy operacyjne i frameworki kompatybilne z C#, w tym Windows, Linux, .NET Core, a takze moze byc uzywany w srodowiskach chmurowych.

Jak moge zainstalowac IronPDF w moim projekcie w Visual Studio?

IronPDF moze byc zainstalowany przy uzyciu menedzera pakietow NuGet w Visual Studio, wiersza polecen Visual Studio lub przez bezposrednie pobranie ze stron NuGet lub IronPDF.

Czy mozliwe jest wyodrebnianie obrazow z plikow PDF przy uzyciu IronPDF?

Tak, IronPDF oferuje mozliwosci wyodrebniania obrazow z plikow PDF, co pozwala programistom na manipulowanie i ponowne wykorzystanie obrazow poza oryginalnym dokumentem.

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

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie