IRONSOFTWAREHOME
FILMY

Jak ustawić orientację i obrót strony w .NET C# | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 lipca 2026

Migracja zSelectPdfdo IronPDF przenosi twój przepływ pracy generowania PDF z biblioteki dostępnej tylko dla Windows - której domyślny silnik renderujący to wewnętrzny WebKit, a której opcjonalny silnik Blink został dostarczony z Chromium 124 (kwiecień 2024) - na obecną bibliotekę Chromium, wieloplatformową z pełnym wsparciem CSS3 i JavaScript. Niniejszy przewodnik oferuje kompletną, krok po kroku ścieżkę migracji, która umożliwia wdrożenie do Linux, Docker,Azure Functionsi innych platform chmurowych, którychSelectPdfnie obsługuje.

Dlaczego warto przejść zSelectPdfna IronPDF

Zrozumienie SelectPdf

SelectPdf to komercyjna biblioteka przeznaczona do konwersji treści HTML do formatu PDF przy użyciu języka C#. Biblioteka jest dostosowana do potrzeb programistów, którzy potrzebują płynnej integracji funkcji generowania plików PDF w swoich aplikacjach. SiłaSelectPdfleży w prostym API, co czyni go atrakcyjną opcją dla osób, które dopiero zaczynają przygodę z generowaniem plików PDF.

Potencjalni użytkownicy muszą jednak być świadomi jego istotnych ograniczeń. Zgodnie z dokumentacją dostawcy,SelectPdfdziała tylko na Windows - nie na Linux, macOS czy Xamarin. To stanowi znaczną barierę przy rozważaniu chmurowych rozwiązań wdrożeniowych, takich jak LinuxAzure Functionslub Docker. Edycja Community Edition jest ograniczona do 5 stron na PDF i nakłada znak wodny na każdą stronę, dopóki nie zostanie zakupiony klucz licencyjny. Domyślny silnik renderującySelectPdfto wewnętrzny WebKit; opcjonalny silnik Blink jest dostarczany z Chromium 124 (kwiecień 2024), który jest opóźniony w stosunku do aktualnej wersji Chrome i może powodować problemy z nowszymi funkcjami CSS, takimi jakCSS Gridi właściwość Flexbox gap.

Istotne ograniczenia SelectPdf

ProblemWpływRozwiązanie IronPDF
Tylko dla systemu WindowsNie można wdrożyć na systemie Linux, w Dockerze ani wAzure FunctionsPełna obsługa wielu platform
Domyślny silnik WebKit; opcjonalny Blink dostarcza Chromium 124 (kwiecień 2024)Nowsze funkcje CSS mogą nie działać na domyślnym silnikuAktualna wersja Chromium
Limit 5 stron w wersji bezpłatnejZnak wodny na każdej stronie do momentu uzyskania licencjiBogata wersja próbna
.NET 10 tylko na WindowsBrak wdrożenia na Linux/macOS/kontenerPełna obsługa .NET 10 na wszystkich platformach
Blokowane wdrażanie w chmurze (poza Windows)Nie można użyćAWS Lambdaani Linux Azure FunctionsNatywne dla chmury

PorównanieSelectPdfi IronPDF

FunkcjaSelectPdfIronPDF
Obsługa platformTylko WindowsW pełni wielopłatformowe, ponad 10 dystrybucji
Obsługa nowoczesnych standardów internetowychWebKit domyślnie; Opcja Blink dostarcza Chromium 124 (kwiecień 2024)Pełne CSS3, aktualny Chromium
Maksymalny limit stron w wersji darmowej5 stron + znak wodny na każdej stronieElastyczne, bez sztywnych ograniczeń
Ceny$499 dla Pojedynczego Dewelopera do $1 599 Enterprise OEMPrzejrzyste i elastyczne ceny
Obsługa .NET 10Tak, ale tylko WindowsTak, wszystkie platformy
Wdrażanie w środowiskach chmurowychTylko cele WindowsPełna obsługa (Windows + Linux)
CSS GridWebKit: ograniczone; Blink (Chromium 124): obsługiwaneObsługiwane
Flexbox (właściwość gap)WebKit: nieobsługiwane; Blink: obsługiwaneObsługiwane
Zmienne CSSWebKit: nieobsługiwane; Blink: obsługiwaneObsługiwane
Docker (Linux)NieobsługiwaneOficjalne zdjęcia
Azure Functions (Linux)NieobsługiwaneObsługiwane
AWS LambdaNieobsługiwaneObsługiwane

PaczkaSelectPdfNetCore jest skierowana na .NET Standard 2.0 i jest udokumentowana jako kompatybilna z .NET 5 do .NET 10 — ale tylko na Windows, co neutralizuje tę kompatybilność dla każdego zespołu wdrażającego do kontenerów Linux,AWS Lambdalub Azure App Service bazującej na Linux.IronPDF obsługuje te same wersje .NET i działa na Windows, Linux, macOS i Docker.


Zanim zaczniesz

Wymagania wstępne

  1. .NET Environment: .NET Framework 4.6.1+ or .NET Core 3.1+ / .NET 5/6/7/8/9/10+
  2. Dostęp do NuGet: Możliwość instalowania pakietów NuGet
  3. Licencja IronPDF: Uzyskaj klucz licencyjny na stronie ironpdf.com

Zmiany w pakiecie NuGet

# RemoveSelectPdf(use Select.HtmlToPdf.NetCore on .NET Core / .NET 5+)
dotnet remove package Select.HtmlToPdf
# or: dotnet remove package Select.HtmlToPdf.NetCore

# Install IronPDF
dotnet add package IronPdf
SHELL

Konfiguracja licencji

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Kompletna dokumentacija API

Zmiany w przestrzeni nazw

// Before: SelectPdf
using SelectPdf;

// After: IronPDF
using IronPdf;
using IronPdf.Engines.Chrome;

Mapowania podstawowych interfejsów API

SelectPdfIronPDFUwagi
HtmlToPdfChromePdfRendererPodstawowa klasa konwertera
converter.ConvertHtmlString(html)renderer.RenderHtmlAsPdf(html)Konwersja ciągów znaków HTML
converter.ConvertUrl(url)renderer.RenderUrlAsPdf(url)Konwersja adresów URL
doc.Save(path)pdf.SaveAs(path)Zapisz do pliku
doc.Close()Nie jest potrzebneIronPDF zajmuje się czyszczeniem
converter.Options.PdfPageSizerenderer.RenderingOptions.PaperSizeRozmiar papieru
converter.Options.PdfPageOrientationrenderer.RenderingOptions.PaperOrientationOrientacja
converter.Options.MarginToprenderer.RenderingOptions.MarginTopGórny margines
converter.Options.MarginBottomrenderer.RenderingOptions.MarginBottomMargines dolny
converter.Options.MarginLeftrenderer.RenderingOptions.MarginLeftLewy margines
converter.Options.MarginRightrenderer.RenderingOptions.MarginRightPrawy margines
PdfPageSize.A4PdfPaperSize.A4Wymiennik rozmiaru A4
PdfPageOrientation.PortraitPdfPaperOrientation.PortraitWyliczenie Portrait
PdfPageOrientation.LandscapePdfPaperOrientation.LandscapeLandscape enum
{page_number}{page}Zastępczy symbol numeru strony
{total_pages}{total-pages}Liczba stron (miejsce na liczbę)

Przykłady migracji kodu

Przykład 1: Konwersja ciągu znaków HTML do formatu PDF

Przed (SelectPdf):

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        
        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertHtmlString(htmlContent);
        doc.Save("document.pdf");
        doc.Close();
        
        Console.WriteLine("PDF generated from HTML string");
    }
}

Po (IronPDF):

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

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");
        
        Console.WriteLine("PDF generated from HTML string");
    }
}

Ten przykład ilustruje podstawowe różnice w API.SelectPdfużywa HtmlToPdf jako klasy konwertera, wywołując ConvertHtmlString() do utworzenia PdfDocument, następnie Save() i Close() do zapisu i czyszczenia.

IronPDF używa ChromePdfRenderer z RenderHtmlAsPdf(), zwracając PdfDocument, który jest zapisany za pomocą SaveAs(). Wywołanie Close() jest wyeliminowane -IronPDF automatycznie zarządza zasobami. Kompleksowe przykłady można znaleźć w dokumentacji dotyczącej konwersji HTML do PDF.

Przykład 2: Konwersja adresów URL do formatu PDF

Przed (SelectPdf):

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();
        PdfDocument doc = converter.ConvertUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Close();
        
        Console.WriteLine("PDF created successfully");
    }
}

Po (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF created successfully");
    }
}

Metoda ConvertUrl()SelectPdfbezpośrednio odwzorowuje się na RenderUrlAsPdf() w IronPDF. Podstawowa różnica tkwi w silniku renderującym:SelectPdfdomyślnie używa wewnętrznego WebKit i oferuje opcjonalny silnik Blink dostarczany z Chromium 124 (kwiecień 2024), podczas gdy IronPDF używa aktualnego stabilnego Chromium dla pełnego wsparcia CSS3 i JavaScript. Dowiedz się więcej z naszych samouczków.

Przykład 3: Niestandardowe ustawienia strony i marginesy

Przed (SelectPdf):

// NuGet: Install-Package Select.HtmlToPdf
using SelectPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf converter = new HtmlToPdf();
        
        converter.Options.PdfPageSize = PdfPageSize.A4;
        converter.Options.PdfPageOrientation = PdfPageOrientation.Portrait;
        converter.Options.MarginTop = 20;
        converter.Options.MarginBottom = 20;
        converter.Options.MarginLeft = 20;
        converter.Options.MarginRight = 20;
        
        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        PdfDocument doc = converter.ConvertHtmlString(html);
        doc.Save("custom-settings.pdf");
        doc.Close();
        
        Console.WriteLine("PDF with custom settings created");
    }
}

Po (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        renderer.RenderingOptions.MarginLeft = 20;
        renderer.RenderingOptions.MarginRight = 20;
        
        string html = "<html><body><h1>Custom Page Settings</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("custom-settings.pdf");
        
        Console.WriteLine("PDF with custom settings created");
    }
}

Schemat ustawień strony jest niemal identyczny, z prostymi zmianami nazw właściwości:

  • converter.Options.PdfPageSizerenderer.RenderingOptions.PaperSize
  • converter.Options.PdfPageOrientationrenderer.RenderingOptions.PaperOrientation
  • PdfPageSize.A4PdfPaperSize.A4
  • PdfPageOrientation.PortraitPdfPaperOrientation.Portrait

Właściwości marginesów zachowują te same nazwy i jednostki.


Problem związany wyłącznie z systemem Windows

Ograniczenia platformy SelectPdf

Pomimo wszelkich zapewnień marketingowych,SelectPdfwyraźnie nie obsługuje:

  • Linux (dowolna dystrybucja)
  • macOS
  • Kontenery Docker
  • Azure Functions
  • AWS Lambda
  • Funkcje Google Cloud
  • Wszelkie systemy oparte na architekturze ARM

Jest to fundamentalne ograniczenie architektoniczne —SelectPdfopiera się na bibliotekach specyficznych dla systemu Windows i nie można go przenieść na inne platformy.

Porównanie obsługi platform

PlatformaSelectPdfIronPDF
Windows Server 2019+
Windows 10/11
Ubuntu 20.04+
Debian 10+
CentOS 7+
Alpine Linux
Amazon Linux 2
macOS 10.15+
Azure App Service (Linux)
Azure Functions
AWS Lambda
Docker (Linux)
Kubernetes

Przestarzały silnik renderujący

Porównanie obsługi funkcji CSS

SelectPdf dostarcza trzy silniki (wg dokumentacji dostawcy): wewnętrzny WebKit (domyślnie), Blink (przedstawiony w v19.1, dostarczany z Chromium 124.0.6367.201 - wydany w kwietniu 2024), i Chromium/CEF. Domyślny silnik WebKit nie nadąża za nowoczesnymi standardami webowymi:

Funkcja CSSSelectPdf (domyślnie WebKit)SelectPdf(Blink, Chromium 124)IronPDF
CSS Grid⚠ Częściowe/uszkodzone✅Pełne
Flexbox (podstawy)
Flexbox (właściwość gap)
Zmienne CSS
CSS calc()⚠ Ograniczone
@media print⚠ Ograniczone
@font-face⚠ Ograniczone
Czcionki internetowe⚠ Ograniczone
SVG⚠ Podstawowe✅Pełne
Transformacje CSS⚠ Ograniczone
Animacje CSS⚠ Częściowe

Nowe możliwości po migracji

Po migracji do IronPDF zyskujesz możliwości, którychSelectPdfnie jest w stanie zapewnić:

Wdrażanie wielopłatformowe

// ✅IronPDF- Works everywhere
using IronPdf;

//Azure App Service (Linux)- WORKS
// Docker container - WORKS
//AWS Lambda- WORKS
// GitHub Actions on ubuntu-latest - WORKS
// macOS development - WORKS

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello</h1>");
pdf.SaveAs("output.pdf");

Obsługa nowoczesnego CSS

// ✅IronPDF- Uses latest stable Chromium
var renderer = new ChromePdfRenderer();

var html = @"
<style>
    :root { --primary: #007bff; --gap: 20px; }
    .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--gap); }
</style>
<div class='grid'>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 1</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 2</div>
    <div style='background: var(--primary); color: white; padding: 1rem;'>Item 3</div>
</div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// All modern CSS features render correctly!

Nie jest wymagane Close()

IronPDF automatycznie zarządza zasobami:

// Option 1: Let garbage collection handle it
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// No Close() needed

// Option 2: Explicit disposal
using (var pdf = renderer.RenderHtmlAsPdf(html))
{
    pdf.SaveAs("output.pdf");
}

Lista kontrolna migracji

Przed migracją

  • Sprawdź wszystkie użyciaSelectPdfw kodzie źródłowym
  • Udokumentuj aktualne opcje konwertera dotyczące mapowania
  • Zidentyfikuj implementacje nagłówków/stopek
  • Sprawdź składnię symbolu zastępczego numeru strony ({page_number}{page})
  • Zwróć uwagę na wzorce obsługi adresów URL bazowych
  • Sprawdź docelowe platformy wdrożeniowe
  • Uzyskaj klucz licencyjny IronPDF ze strony ironpdf.com

Aktualizacje kodu

  • Usuń pakiet NuGet Select.HtmlToPdf
  • Zainstaluj pakiet NuGet IronPdf
  • Zaktualizuj importy przestrzeni nazw (using SelectPdf;using IronPdf;)
  • Zamień HtmlToPdf na ChromePdfRenderer
  • Zamień ConvertHtmlString() na RenderHtmlAsPdf()
  • Zamień ConvertUrl() na RenderUrlAsPdf()
  • Zaktualizuj nazwy właściwości opcji (Options.PdfPageSizeRenderingOptions.PaperSize)
  • Przekształć PdfPageSize na PdfPaperSize
  • Przekształć PdfPageOrientation na PdfPaperOrientation
  • Zamień doc.Save() na pdf.SaveAs()
  • Usuń wszystkie wywołania doc.Close()
  • Napraw symbole zastępcze numerów stron ({page_number}{page}, {total_pages}{total-pages})
  • Dodaj inicjalizację licencji podczas uruchamiania aplikacji

Po migracji

  • Uruchom wszystkie testy jednostkowe
  • Sprawdź renderowanie CSS (zwłaszcza Grid/Flexbox)
  • Testowanie działania kodu JavaScript
  • Sprawdź numery stron w nagłówku/stopce
  • Przetestuj na docelowych platformach (Linux, Docker itp.)
  • Test wydajności
  • Porównaj jakość wydruków PDF
  • Aktualizacja potoków CI/CD
  • Testowe wdrożenia w chmurze (jeśli dotyczy)

Zwróć uwagę: SelectPDF to zarejestrowany znak towarowy jego właściciela. Ta strona nie jest powiązana, sponsorowana ani autoryzowana przez Outside Software SRL ani SelectPdf. 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.
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ęczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta