Generowanie PDF w C# z użyciem IronPDF
IronPDF umożliwia programistom C# konwersję HTML do formatu PDF w zaledwie 5 krokach za pomocą prostej aplikacji Windows Forms, wymagającej jedynie instalacji pakietu NuGet i kilku wierszy kodu, aby renderować HTML jako profesjonalne dokumenty PDF.
Programiści C# mogą używać IronPDF do generowania plików PDF z HTML. W tym artykule proces ten zostanie zilustrowany na przykładzie aplikacji C# Windows Forms utworzonej przy użyciu .NET Framework.
Aby utworzyć projekt w programie Visual Studio 2019, wykonaj poniższe czynności.
Jak utworzyć projekt Visual Studio do generowania plików PDF?
Najpierw otwórz program Visual Studio 2019.

Kliknij "Utwórz nowy projekt".
Teraz wybierz "Aplikacja Windows Forms" z listy szablonów i naciśnij "Dalej". Pojawi się następujące okno:

Wpisz nazwę projektu "Tworzenie plików PDF za pomocą IronPDF".

Kliknij przycisk "Utwórz". Projekt zostanie utworzony zgodnie z poniższym opisem.

Dlaczego w tym samouczku warto używać Windows Forms?
Windows Forms zapewnia proste środowisko wizualne dla początkujących, którzy uczą się generowania plików PDF w języku C#. Oferuje kreator typu "przeciągnij i upuść", który ułatwia tworzenie interfejsów użytkownika bez konieczności posiadania rozległej wiedzy z zakresu HTML lub tworzenia stron internetowych. Model programowania sterowanego zdarzeniami w Windows Forms dobrze wpisuje się w sposób, w jaki młodsi programiści postrzegają przebieg aplikacji, co czyni go idealnym do demonstracji podstawowych możliwości IronPDF w zakresie konwersji HTML do PDF.
W przypadku aplikacji produkcyjnych warto rozważyć wykorzystanie .NET Core do generowania plików PDF w sieci WWW lub aplikacji konsolowych do przetwarzania wsadowego. Jednak Windows Forms pozostaje doskonałym wyborem dla narzędzi wewnętrznych, programów użytkowych na komputery stacjonarne oraz środowisk edukacyjnych, w których podczas tworzenia oprogramowania potrzebna jest szybka informacja zwrotna w formie wizualnej.
Która wersja Visual Studio działa najlepiej?
Visual Studio 2019 lub nowsze zapewnia najlepsze wrażenia podczas tworzenia oprogramowania z wykorzystaniem IronPDF. Wersje te zawierają ulepszone zarządzanie pakietami NuGet, lepszą obsługę nowoczesnych funkcji języka C# oraz rozszerzone możliwości debugowania, które pomagają w rozwiązywaniu problemów związanych z generowaniem plików PDF.
Chociaż Visual Studio 2022 oferuje najnowsze funkcje i ulepszenia wydajności, Visual Studio 2019 pozostaje szeroko stosowane i w pełni obsługiwane. Obie wersje działają płynnie z pakietami NuGet firmy IronPDF. Programiści korzystający z Visual Studio Code nadal mogą pracować z IronPDF, choć będą musieli używać interfejsu wiersza poleceń do zarządzania pakietami i zrezygnować z niektórych funkcji projektowania wizualnego przedstawionych w tym samouczku.
Czy mogę używać .NET Core zamiast .NET Framework?
Oczywiście! IronPDF w pełni obsługuje .NET Core, .NET 5, .NET 6 i .NET 7+. W rzeczywistości korzystanie z .NET Core lub nowszych wersji oferuje kilka zalet, w tym kompatybilność międzyplatformową, lepszą wydajność oraz dostęp do najnowszych funkcji języka C#.
Aby korzystać z .NET Core, wystarczy wybrać odpowiednią platformę docelową podczas tworzenia projektu. Przykłady kodu w tym samouczku działają identycznie we wszystkich obsługiwanych frameworkach. Aby zapewnić elastyczność wdrożenia, aplikacje .NET Core mogą działać nie tylko w systemie Windows, ale także w systemach Linux i macOS, co czyni je idealnymi do wdrożeń w chmurze i środowiskach kontenerowych.
Jak zainstalować IronPDF za pomocą menedżera pakietów NuGet?
- Najpierw kliknij przycisk "Narzędzia" na pasku menu.
- Otworzy się menu. Teraz kliknij opcję NuGet Package Manager.
- Otworzy się kolejne podmenu. Teraz kliknij opcję o nazwie Package Manager Console.

Pojawi się nowy ekran pod wierszem poleceń. Wpisz w nim polecenie instalacji pakietu IronPdf.
Install-Package IronPdf

Naciśnij klawisz Enter po wpisaniu polecenia. Upewnij się, że Twój komputer/laptop jest podłączony do Internetu. Pakiet IronPdf zostanie automatycznie dodany do istniejącego projektu.

Powyższy ekran pokazuje pakiet pomyślnie dodany do projektu.
Jakie są alternatywne sposoby instalacji IronPDF?
Oprócz konsoli menedżera pakietów masz kilka opcji instalacji IronPDF:
-
Interfejs użytkownika menedżera pakietów NuGet: Kliknij prawym przyciskiem myszy na swój projekt, wybierz "Zarządzaj pakietami NuGet", wyszukaj "IronPDF" i kliknij "Zainstaluj". Świetne rozwiązanie dla początkujących, którzy preferują interfejsy graficzne.
-
PackageReferencew pliku .csproj: W przypadku nowoczesnych projektów .NET można dodać IronPDF bezpośrednio do pliku projektu:<PackageReference Include="IronPdf" Version="*" /><PackageReference Include="IronPdf" Version="*" />XML -
dotnet CLI: Dla programistów, którzy preferują narzędzia wiersza poleceń lub korzystają z Visual Studio Code:
dotnet add package IronPdfdotnet add package IronPdfSHELL - Pobieranie ręczne: Można pobrać bibliotekę DLL bezpośrednio ze strony internetowej IronPDF i dodać ją jako odwołanie, choć takie podejście utrudnia aktualizacje.
Dlaczego podczas instalacji potrzebne jest połączenie z Internetem?
NuGet wymaga połączenia z Internetem, aby pobrać IronPDF i jego zależności z repozytorium NuGet.org. Pakiet zawiera podstawową bibliotekę IronPDF oraz pliki binarne silnika renderującego Chrome niezbędne do konwersji HTML na PDF.
W przypadku instalacji offline można:
- Utwórz lokalną pamięć podręczną pakietów NuGet
- Użyj instalatora IronPDF dla systemu Windows
- Pobierz pakiety na podłączony komputer i przenieś je ręcznie
Należy pamiętać, że silnik renderujący IronPDF wymaga dodatkowych komponentów uruchomieniowych, które mogą zostać pobrane przy pierwszym użyciu, dlatego podczas początkowego generowania plików PDF zalecane jest połączenie z Internetem.
Jak mogę sprawdzić, czy instalacja przebiegła pomyślnie?
Po instalacji sprawdź, czy IronPDF działa poprawnie, zwracając uwagę na następujące wskaźniki:
-
Węzeł Referencje: W Eksploratorze rozwiązań rozwiń węzeł Referencje. Wśród referencji projektu powinno pojawić się "IronPdf".
-
IntelliSenseWsparcie: Wpiszusing IronPdf;na początku pliku C#.IntelliSensepowinno rozpoznać przestrzeń nazw bez błędów. - Prosty kod testowy: Dodaj ten podstawowy test, aby zweryfikować funkcjonalność:
using IronPdf;using IronPdf;Imports IronPdf$vbLabelText $csharpLabel
// Quick verification test var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("
Test
"); // If no exceptions occur, IronPDF is installed correctly
4. **Menedżer pakietów**: Uruchom `Get-Package IronPdf` w konsoli menedżera pakietów, aby wyświetlić informacje o wersji.
W razie problemów zapoznaj się z [przewodnikiem](/troubleshooting/quick-ironpdf-troubleshooting/) [dotyczącym rozwiązywania problemów](/troubleshooting/quick-ironpdf-troubleshooting/) lub sprawdź, czy Twój [system spełnia wymagania](/get-started/windows/).
## Jak zaprojektować interfejs użytkownika do generowania plików PDF?
Teraz dodaj etykietę i ustaw tekst na "Utwórz plik PDF z HTML za pomocą IronPDF".

Następnie dodaj pole tekstowe Rich Text Box i przycisk z panelu narzędzi. Ustaw tekst przycisku na "Konwertuj".

### Dlaczego warto używać `RichTextBox` zamiast zwykłego `TextBox`?
`RichTextBox` oferuje kilka zalet w przypadku [wprowadzania kodu HTML w scenariuszach generowania plików PDF](/how-to/html-string-to-pdf/):
1. **Obsługa wielu wierszy**: Kod HTML zazwyczaj zajmuje wiele wierszy, a `RichTextBox` radzi sobie z tym w naturalny sposób, podczas gdy `TextBox` wymaga ustawienia Multiline = true.
2. **Zachowanie formatowania**: Podczas wprowadzania zwykłego kodu HTML, `RichTextBox` zachowuje formatowanie, takie jak wcięcia i znaki końca linii, dzięki czemu kod HTML jest bardziej czytelny podczas programowania.
3. **Większa pojemność**: `RichTextBox` może obsługiwać większe ilości tekstu, co jest przydatne podczas pracy z kompletnymi dokumentami HTML, a nie tylko fragmentami.
4. **Możliwość podświetlania składni**: Chociaż nie zostało to zaimplementowane w tym podstawowym przykładzie, `RichTextBox` można rozszerzyć, aby zapewnić [podświetlanie składni dla HTML](/tutorials/pixel-perfect-html-to-pdf/), poprawiając komfort pracy programisty.
W przypadku aplikacji produkcyjnych warto rozważyć użycie dedykowanego kontrolki edytora HTML lub integrację z zewnętrznymi edytorami, aby zapewnić użytkownikom lepsze wrażenia.
### Jakie inne elementy sterujące mogłyby ulepszyć interfejs użytkownika?
Aby stworzyć bardziej niezawodną aplikację do generowania plików PDF, rozważ dodanie następujących elementów sterujących:
1. **`WebBrowser` Kontrola**: Wyświetla podgląd kodu HTML przed konwersją, pomagając użytkownikom zobaczyć, jak będzie wyglądał ich plik PDF. Funkcja ta naśladuje [silnik renderujący IronPDF w przeglądarce Chrome](/how-to/pixel-perfect-html-to-pdf/).
2. **`ProgressBar`**: Wyświetlanie postępu konwersji w przypadku dużych dokumentów lub [operacji wsadowych](/how-to/async/).
3. **`ComboBox` dla szablonów**: Zapewnij gotowe szablony HTML dla popularnych typów dokumentów, takich jak faktury czy raporty.
4. **`PropertyGrid`**: Umożliwia użytkownikom modyfikowanie [ustawień renderowania plików PDF,](/how-to/custom-paper-size/) takich jak rozmiar strony, marginesy i orientacja.
5. **`TabControl`**: Rozdziel ustawienia HTML, podglądu i [PDF](/how-to/rendering-options/) na uporządkowane zakładki.
Przykład dodania paska stanu do informacji zwrotnej:
```csharp
// Add to your form
StatusStrip statusStrip = new StatusStrip();
ToolStripStatusLabel statusLabel = new ToolStripStatusLabel("Ready");
statusStrip.Items.Add(statusLabel);
this.Controls.Add(statusStrip);
Jak nazwać moje kontrolki zgodnie z najlepszymi praktykami?
Stosowanie spójnych konwencji nazewniczych poprawia czytelność kodu i ułatwia jego utrzymanie. Oto zalecane praktyki dotyczące formularza generowania plików PDF:
-
Używaj przedrostków opisowych:
txtHtmldla danych wejściowych HTMLRichTextBoxbtnConvertdla przycisku "Konwertuj"lblTitledla etykiety tytułu
-
Zachowaj spójność: wybierz styl camelCase lub
PascalCasei stosuj go konsekwentnie w całym projekcie. -
Unikaj nazw domyślnych: Zastąp
richTextBox1znaczącymi nazwami, takimi jakrtbHtmlInput. -
Grupowanie powiązanych elementów sterujących: W przypadku złożonych formularzy należy stosować prefiksy grupujące funkcje:
pdfPageSize,pdfOrientationdla ustawień specyficznych dla plików PDFhtmlTemplate,htmlPreviewdla elementów sterujących związanych z HTML
- Weź pod uwagę dostępność: Ustaw właściwość
Namedla czytników ekranu orazAccessibleNamedla lepszej użyteczności.
Dobre nazewnictwo sprawia, że kod jest samodokumentujący się i pomaga przy wdrażaniu funkcji takich jak ekstrakcja danych z formularzy.
Jak napisać kod do konwersji HTML na PDF?
Kliknij dwukrotnie przycisk "Konwertuj". Otworzy się okno kodu z przyciskiem konwersji.

Dodaj kod do importowania biblioteki IronPDF na początku pliku .cs.
Najpierw dodaj poniższy kod, aby korzystać z metod biblioteki IronPDF.
using IronPdf;
using IronPdf;
Imports IronPdf
Poniżej znajduje się początkowy kod dla zdarzenia btnConvert_Click, które obecnie jest puste:
private void btnConvert_Click(object sender, EventArgs e)
{
}
private void btnConvert_Click(object sender, EventArgs e)
{
}
Private Sub btnConvert_Click(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Teraz napisz następujący kod w zdarzeniu kliknięcia przycisku:
private void btnConvert_Click(object sender, EventArgs e)
{
// Declare an HtmlToPdf object
var HtmlLine = new HtmlToPdf();
// Get HTML text from the user
string strHtml = txtHtml.Text;
// Create SaveFileDialog to choose the save path for the PDF file
SaveFileDialog saveFileDialog = new SaveFileDialog
{
InitialDirectory = @"D:\",
Title = "Save PDF",
CheckPathExists = true,
DefaultExt = "pdf",
Filter = "pdf files (*.pdf)|*.pdf",
FilterIndex = 2,
RestoreDirectory = true
};
// If the user presses Save
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
// Get the file path from the user
string filePath = saveFileDialog.FileName;
// Convert HTML to PDF and save at the specified path
using var PDF = HtmlLine.RenderHtmlAsPdf(strHtml);
PDF.SaveAs(filePath);
// Clear the TextBox and show a message confirming the successful creation
txtHtml.Text = "";
MessageBox.Show("File created successfully.");
}
}
private void btnConvert_Click(object sender, EventArgs e)
{
// Declare an HtmlToPdf object
var HtmlLine = new HtmlToPdf();
// Get HTML text from the user
string strHtml = txtHtml.Text;
// Create SaveFileDialog to choose the save path for the PDF file
SaveFileDialog saveFileDialog = new SaveFileDialog
{
InitialDirectory = @"D:\",
Title = "Save PDF",
CheckPathExists = true,
DefaultExt = "pdf",
Filter = "pdf files (*.pdf)|*.pdf",
FilterIndex = 2,
RestoreDirectory = true
};
// If the user presses Save
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
// Get the file path from the user
string filePath = saveFileDialog.FileName;
// Convert HTML to PDF and save at the specified path
using var PDF = HtmlLine.RenderHtmlAsPdf(strHtml);
PDF.SaveAs(filePath);
// Clear the TextBox and show a message confirming the successful creation
txtHtml.Text = "";
MessageBox.Show("File created successfully.");
}
}
Private Sub btnConvert_Click(ByVal sender As Object, ByVal e As EventArgs)
' Declare an HtmlToPdf object
Dim HtmlLine = New HtmlToPdf()
' Get HTML text from the user
Dim strHtml As String = txtHtml.Text
' Create SaveFileDialog to choose the save path for the PDF file
Dim saveFileDialog As New SaveFileDialog With {
.InitialDirectory = "D:\",
.Title = "Save PDF",
.CheckPathExists = True,
.DefaultExt = "pdf",
.Filter = "pdf files (*.pdf)|*.pdf",
.FilterIndex = 2,
.RestoreDirectory = True
}
' If the user presses Save
If saveFileDialog.ShowDialog() = DialogResult.OK Then
' Get the file path from the user
Dim filePath As String = saveFileDialog.FileName
' Convert HTML to PDF and save at the specified path
Dim PDF = HtmlLine.RenderHtmlAsPdf(strHtml)
PDF.SaveAs(filePath)
' Clear the TextBox and show a message confirming the successful creation
txtHtml.Text = ""
MessageBox.Show("File created successfully.")
End If
End Sub
Wyjaśnienie:
- Obiekt
HtmlToPdfjest tworzony w celu wykorzystania możliwości konwersji IronPDF. - Dane wejściowe HTML są pobierane z pola tekstowego.
SaveFileDialogsłuży do wyświetlenia monitu, w którym użytkownik ma określić miejsce zapisania wynikowego pliku PDF.- Jeśli użytkownik wybierze lokalizację pliku i naciśnie przycisk Zapisz, ścieżka zostanie pobrana.
- Dane wejściowe HTML są następnie renderowane do formatu PDF przy użyciu
RenderHtmlAsPdfi zapisywane w wybranej lokalizacji. - Po zapisaniu pole tekstowe jest czyszczone, a na ekranie pojawia się okno z komunikatem potwierdzającym utworzenie pliku PDF.
Jakie obsługa błędów powinienem dodać do tego kodu?
Solidna obsługa błędów ma kluczowe znaczenie dla aplikacji do generowania plików PDF w środowisku produkcyjnym. Oto ulepszona wersja z kompleksową obsługą błędów:
private void btnConvert_Click(object sender, EventArgs e)
{
try
{
// Validate input
if (string.IsNullOrWhiteSpace(txtHtml.Text))
{
MessageBox.Show("Please enter HTML content.", "Validation Error",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
var renderer = new ChromePdfRenderer();
string strHtml = txtHtml.Text;
SaveFileDialog saveFileDialog = new SaveFileDialog
{
InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
Title = "Save PDF",
CheckPathExists = true,
DefaultExt = "pdf",
Filter = "pdf files (*.pdf)|*.pdf",
FilterIndex = 1,
RestoreDirectory = true
};
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
// Show progress cursor
Cursor.Current = Cursors.WaitCursor;
using var pdf = renderer.RenderHtmlAsPdf(strHtml);
pdf.SaveAs(saveFileDialog.FileName);
txtHtml.Text = "";
MessageBox.Show("PDF created successfully!", "Success",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (IronPdf.Exceptions.IronPdfProductException ex)
{
// Handle licensing issues
MessageBox.Show($"Licensing error: {ex.Message}", "License Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Cursor.Current = Cursors.Default;
}
}
}
catch (Exception ex)
{
MessageBox.Show($"An error occurred: {ex.Message}", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
// Log the full exception for debugging
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
}
private void btnConvert_Click(object sender, EventArgs e)
{
try
{
// Validate input
if (string.IsNullOrWhiteSpace(txtHtml.Text))
{
MessageBox.Show("Please enter HTML content.", "Validation Error",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
var renderer = new ChromePdfRenderer();
string strHtml = txtHtml.Text;
SaveFileDialog saveFileDialog = new SaveFileDialog
{
InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
Title = "Save PDF",
CheckPathExists = true,
DefaultExt = "pdf",
Filter = "pdf files (*.pdf)|*.pdf",
FilterIndex = 1,
RestoreDirectory = true
};
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
try
{
// Show progress cursor
Cursor.Current = Cursors.WaitCursor;
using var pdf = renderer.RenderHtmlAsPdf(strHtml);
pdf.SaveAs(saveFileDialog.FileName);
txtHtml.Text = "";
MessageBox.Show("PDF created successfully!", "Success",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (IronPdf.Exceptions.IronPdfProductException ex)
{
// Handle licensing issues
MessageBox.Show($"Licensing error: {ex.Message}", "License Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Cursor.Current = Cursors.Default;
}
}
}
catch (Exception ex)
{
MessageBox.Show($"An error occurred: {ex.Message}", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
// Log the full exception for debugging
System.Diagnostics.Debug.WriteLine(ex.ToString());
}
}
Private Sub btnConvert_Click(sender As Object, e As EventArgs) Handles btnConvert.Click
Try
' Validate input
If String.IsNullOrWhiteSpace(txtHtml.Text) Then
MessageBox.Show("Please enter HTML content.", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return
End If
Dim renderer As New ChromePdfRenderer()
Dim strHtml As String = txtHtml.Text
Dim saveFileDialog As New SaveFileDialog With {
.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
.Title = "Save PDF",
.CheckPathExists = True,
.DefaultExt = "pdf",
.Filter = "pdf files (*.pdf)|*.pdf",
.FilterIndex = 1,
.RestoreDirectory = True
}
If saveFileDialog.ShowDialog() = DialogResult.OK Then
Try
' Show progress cursor
Cursor.Current = Cursors.WaitCursor
Using pdf = renderer.RenderHtmlAsPdf(strHtml)
pdf.SaveAs(saveFileDialog.FileName)
End Using
txtHtml.Text = ""
MessageBox.Show("PDF created successfully!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As IronPdf.Exceptions.IronPdfProductException
' Handle licensing issues
MessageBox.Show($"Licensing error: {ex.Message}", "License Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
Cursor.Current = Cursors.Default
End Try
End If
Catch ex As Exception
MessageBox.Show($"An error occurred: {ex.Message}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
' Log the full exception for debugging
System.Diagnostics.Debug.WriteLine(ex.ToString())
End Try
End Sub
Kluczowe ulepszenia w zakresie obsługi błędów:
- Sprawdzanie poprawności danych wejściowych przed przetworzeniem
- Specjalne postępowanie w przypadku wyjątków dotyczących licencji IronPDF
- Wskazanie postępu poprzez zmiany kursora
- Prawidłowe rejestrowanie wyjątków na potrzeby debugowania
- Przyjazne dla użytkownika komunikaty o błędach
Jak mogę dostosować ustawienia pliku PDF, takie jak rozmiar strony?
IronPDF zapewnia szerokie możliwości dostosowywania poprzez klasę ChromePdfRenderOptions. Oto jak wdrożyć typowe dostosowania:
private void ConvertWithCustomSettings()
{
var renderer = new ChromePdfRenderer();
// Configure rendering options
renderer.RenderingOptions = new ChromePdfRenderOptions
{
// Page setup
PaperSize = PdfPaperSize.A4,
PaperOrientation = PdfPaperOrientation.Portrait,
MarginTop = 25, // millimeters
MarginBottom = 25,
MarginLeft = 20,
MarginRight = 20,
// Rendering behavior
EnableJavaScript = true,
RenderDelay = 500, // milliseconds
CreatePdfFormsFromHtml = true,
// Headers and footers
TextHeader = new TextHeaderFooter
{
CenterText = "My Document",
FontSize = 12,
DrawDividerLine = true
},
TextFooter = new TextHeaderFooter
{
RightText = "Page {page} of {total-pages}",
FontSize = 10
}
};
// Apply custom CSS for print
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Generate PDF with custom settings
var pdf = renderer.RenderHtmlAsPdf(txtHtml.Text);
pdf.SaveAs("custom-output.pdf");
}
private void ConvertWithCustomSettings()
{
var renderer = new ChromePdfRenderer();
// Configure rendering options
renderer.RenderingOptions = new ChromePdfRenderOptions
{
// Page setup
PaperSize = PdfPaperSize.A4,
PaperOrientation = PdfPaperOrientation.Portrait,
MarginTop = 25, // millimeters
MarginBottom = 25,
MarginLeft = 20,
MarginRight = 20,
// Rendering behavior
EnableJavaScript = true,
RenderDelay = 500, // milliseconds
CreatePdfFormsFromHtml = true,
// Headers and footers
TextHeader = new TextHeaderFooter
{
CenterText = "My Document",
FontSize = 12,
DrawDividerLine = true
},
TextFooter = new TextHeaderFooter
{
RightText = "Page {page} of {total-pages}",
FontSize = 10
}
};
// Apply custom CSS for print
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Generate PDF with custom settings
var pdf = renderer.RenderHtmlAsPdf(txtHtml.Text);
pdf.SaveAs("custom-output.pdf");
}
Private Sub ConvertWithCustomSettings()
Dim renderer = New ChromePdfRenderer()
' Configure rendering options
renderer.RenderingOptions = New ChromePdfRenderOptions With {
' Page setup
.PaperSize = PdfPaperSize.A4,
.PaperOrientation = PdfPaperOrientation.Portrait,
.MarginTop = 25, ' millimeters
.MarginBottom = 25,
.MarginLeft = 20,
.MarginRight = 20,
' Rendering behavior
.EnableJavaScript = True,
.RenderDelay = 500, ' milliseconds
.CreatePdfFormsFromHtml = True,
' Headers and footers
.TextHeader = New TextHeaderFooter With {
.CenterText = "My Document",
.FontSize = 12,
.DrawDividerLine = True
},
.TextFooter = New TextHeaderFooter With {
.RightText = "Page {page} of {total-pages}",
.FontSize = 10
}
}
' Apply custom CSS for print
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print
' Generate PDF with custom settings
Dim pdf = renderer.RenderHtmlAsPdf(txtHtml.Text)
pdf.SaveAs("custom-output.pdf")
End Sub
Aby uzyskać bardziej zaawansowane opcje dostosowywania, zapoznaj się z niestandardowymi rozmiarami papieru, niestandardowymi marginesami i ustawieniami okna wyświetlania.
Dlaczego warto używać instrukcji Using do generowania plików PDF?
Instrukcja using jest niezbędna do prawidłowego zarządzania zasobami podczas generowania plików PDF:
-
Automatyczne usuwanie: Dokumenty PDF mogą zajmować dużo pamięci, zwłaszcza jeśli zawierają obrazy lub duże ilości treści. Instrukcja
usingzapewnia prawidłowe usunięcie obiektu PDF po użyciu. -
Zwolnienie uchwytu pliku: Bez odpowiedniego zwolnienia uchwyty plików mogą pozostać zablokowane, uniemożliwiając dalsze operacje na pliku PDF.
- Zarządzanie pamięcią: silnik renderujący IronPDF wykorzystuje zasoby natywne, które muszą zostać zwolnione, aby zapobiec wyciekom pamięci w długo działających aplikacjach.
Oto porównanie wzorców:
// Recommended approach with using
using (var pdf = renderer.RenderHtmlAsPdf(html))
{
pdf.SaveAs("output.pdf");
} // Resources automatically released here
// Alternative with try-finally (more verbose)
PdfDocument pdf = null;
try
{
pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
finally
{
pdf?.Dispose();
}
// Recommended approach with using
using (var pdf = renderer.RenderHtmlAsPdf(html))
{
pdf.SaveAs("output.pdf");
} // Resources automatically released here
// Alternative with try-finally (more verbose)
PdfDocument pdf = null;
try
{
pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
finally
{
pdf?.Dispose();
}
' Recommended approach with Using
Using pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Using ' Resources automatically released here
' Alternative with Try-Finally (more verbose)
Dim pdf As PdfDocument = Nothing
Try
pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
Finally
If pdf IsNot Nothing Then
pdf.Dispose()
End If
End Try
W przypadku operacji asynchronicznych należy używać await using w C# 8.0+:
await using var pdf = await renderer.RenderHtmlAsPdfAsync(html);
await using var pdf = await renderer.RenderHtmlAsPdfAsync(html);
Await Using pdf = Await renderer.RenderHtmlAsPdfAsync(html)
Jakie popularne tagi HTML sprawdzają się najlepiej?
Silnik renderujący IronPDF dla przeglądarki Chrome obsługuje wszystkie nowoczesne tagi HTML5, ale niektóre z nich sprawdzają się szczególnie dobrze przy generowaniu plików PDF:
Struktura dokumentu:
<html>
<head>
<meta charset="UTF-8">
<style>
@media print { /* PDF-specific styles */ }
body { font-family: Arial, sans-serif; }
.page-break { page-break-after: always; }
</style>
</head>
<body>
<h1>Document Title</h1>
<div class="page-break"></div>
<h2>New Page Content</h2>
</body>
</html>
<html>
<head>
<meta charset="UTF-8">
<style>
@media print { /* PDF-specific styles */ }
body { font-family: Arial, sans-serif; }
.page-break { page-break-after: always; }
</style>
</head>
<body>
<h1>Document Title</h1>
<div class="page-break"></div>
<h2>New Page Content</h2>
</body>
</html>
Najskuteczniejsze tagi dla plików PDF:
<h1>do<h6>: Tworzy przejrzystą hierarchię dokumentów<table>: Doskonałe rozwiązanie do danych ustrukturyzowanych i faktur<img>: Obsługuje obrazy osadzone i dane w formacie base64<div>z CSS: Precyzyjna kontrola układu<p>i<span>: Standardowe formatowanie tekstu<ul>i<ol>: Czyste formatowanie listy
Szczególne uwagi:
- Użyj podziałów stron CSS w przypadku elementów wielostronicowych
- Osadzaj czcionki za pomocą @font-face w celu zachowania spójności
- Należy oszczędnie stosować pozycjonowanie bezwzględne
- Dokładnie przetestuj treści wygenerowane przez JavaScript
Jak przetestować aplikację do generowania plików PDF?
Po uruchomieniu projektu zobaczysz następujący ekran:

Wprowadź kod HTML w RichTextBox, na przykład:
<h1>A Simple PDF File</h1><br><h6>Heading 6</h6>
<h1>A Simple PDF File</h1><br><h6>Heading 6</h6>
Kliknij "Konwertuj". Pojawi się okno dialogowe zapisu pliku.

Po kliknięciu przycisku "Zapisz" plik zostanie zapisany w określonej ścieżce z podaną nazwą i lokalizacją.
Które elementy HTML należy przetestować w pierwszej kolejności?
Zacznij od tych przykładów HTML o rosnącym stopniu złożoności, aby zrozumieć możliwości renderowania IronPDF:
Podstawowe formatowanie tekstu:
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial, sans-serif; margin: 40px; }
.highlight { background-color: yellow; }
.important { color: red; font-weight: bold; }
</style>
</head>
<body>
<h1>Test Document</h1>
<p>This is <strong>bold</strong> and <em>italic</em> text.</p>
<p class="highlight">Highlighted text example.</p>
<p class="important">Important notice!</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial, sans-serif; margin: 40px; }
.highlight { background-color: yellow; }
.important { color: red; font-weight: bold; }
</style>
</head>
<body>
<h1>Test Document</h1>
<p>This is <strong>bold</strong> and <em>italic</em> text.</p>
<p class="highlight">Highlighted text example.</p>
<p class="important">Important notice!</p>
</body>
</html>
Tabela ze stylizacją:
<table style="border-collapse: collapse; width: 100%;">
<tr style="background-color: #f2f2f2;">
<th style="border: 1px solid #ddd; padding: 8px;">Product</th>
<th style="border: 1px solid #ddd; padding: 8px;">Price</th>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;">IronPDF</td>
<td style="border: 1px solid #ddd; padding: 8px;">$749</td>
</tr>
</table>
<table style="border-collapse: collapse; width: 100%;">
<tr style="background-color: #f2f2f2;">
<th style="border: 1px solid #ddd; padding: 8px;">Product</th>
<th style="border: 1px solid #ddd; padding: 8px;">Price</th>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;">IronPDF</td>
<td style="border: 1px solid #ddd; padding: 8px;">$749</td>
</tr>
</table>
Funkcje zaawansowane:
<img src="___PROTECTED_URL_118___" width="200" alt="Company Logo">
<div style="page-break-after: always;"></div>
<ul>
<li>First item</li>
<li>Second item</li>
</ul>
<img src="___PROTECTED_URL_118___" width="200" alt="Company Logo">
<div style="page-break-after: always;"></div>
<ul>
<li>First item</li>
<li>Second item</li>
</ul>
Przetestuj te elementy, aby upewnić się, że konwersja HTML do PDF działa zgodnie z oczekiwaniami.
Jak mogę debugować, jeśli plik PDF nie jest generowany?
W przypadku niepowodzenia generowania pliku PDF należy postępować zgodnie z poniższą systematyczną procedurą debugowania:
-
Włącz rejestrowanie:
IronPdf.Logging.Logger.EnableDebugging = true; IronPdf.Logging.Logger.LogFilePath = "IronPdfLog.txt"; IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;IronPdf.Logging.Logger.EnableDebugging = true; IronPdf.Logging.Logger.LogFilePath = "IronPdfLog.txt"; IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;IronPdf.Logging.Logger.EnableDebugging = True IronPdf.Logging.Logger.LogFilePath = "IronPdfLog.txt" IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All$vbLabelText $csharpLabel -
Sprawdź poprawność kodu HTML:
// Validate HTML before conversion private bool IsValidHtml(string html) { try { var doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(html); return doc.ParseErrors.Count() == 0; } catch { return false; } }// Validate HTML before conversion private bool IsValidHtml(string html) { try { var doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(html); return doc.ParseErrors.Count() == 0; } catch { return false; } }' Validate HTML before conversion Private Function IsValidHtml(html As String) As Boolean Try Dim doc As New HtmlAgilityPack.HtmlDocument() doc.LoadHtml(html) Return doc.ParseErrors.Count() = 0 Catch Return False End Try End Function$vbLabelText $csharpLabel -
Użyj przeglądarki Chrome
DevTools:- Zapisz kod HTML do pliku i otwórz go w przeglądarce Chrome
- Naciśnij klawisz F12, aby sprawdzić, czy nie ma błędów JavaScript
- Sprawdź konsolę pod kątem problemów
- Użyj podglądu wydruku w przeglądarce Chrome, aby sprawdzić, jak będzie wyglądał wydruk
-
Typowe problemy i rozwiązania:
- Pusty plik PDF: Sprawdź, czy JavaScript wymaga dłuższego opóźnienia renderowania
- Brakujące obrazy: Upewnij się, że ścieżki do obrazów są bezwzględne lub użyj base64
- Kwestie związane z czcionkami: Prawidłowe osadzanie czcionek
- Problemy z układem: Sprawdź typy mediów CSS
- Przetestuj minimalny przykład:
// Start with the simplest possible HTML var testHtml = "<h1>Test</h1>"; var pdf = new ChromePdfRenderer().RenderHtmlAsPdf(testHtml); pdf.SaveAs("test.pdf");// Start with the simplest possible HTML var testHtml = "<h1>Test</h1>"; var pdf = new ChromePdfRenderer().RenderHtmlAsPdf(testHtml); pdf.SaveAs("test.pdf");' Start with the simplest possible HTML Dim testHtml = "<h1>Test</h1>" Dim pdf = New ChromePdfRenderer().RenderHtmlAsPdf(testHtml) pdf.SaveAs("test.pdf")$vbLabelText $csharpLabel
Jakie są typowe problemy podczas uruchamiania aplikacji?
Oto najczęstsze problemy, z jakimi borykają się początkujący programiści, oraz ich rozwiązania:
-
"IronPdf.Exceptions.
IronPdfDeploymentException"- Rozwiązanie: Upewnij się, że zainstalowano Visual C++ Runtime
- Uruchom Windows Update, aby pobrać najnowsze środowiska uruchomieniowe
-
Błędy "Odmowa dostępu"
- Nie zapisuj w katalogach chronionych (C:\, Program Files)
- Użyj
Environment.SpecialFolderdla bezpiecznych ścieżek - Sprawdź uprawnienia IIS dla aplikacji internetowych
-
Duże rozmiary plików
- Zastosuj kompresję pliku PDF:
pdf.CompressImages(90); // 90% qualitypdf.CompressImages(90); // 90% qualitypdf.CompressImages(90) ' 90% quality$vbLabelText $csharpLabel
- Zastosuj kompresję pliku PDF:
-
Niska wydajność
- Wprowadź renderowanie asynchroniczne, aby uzyskać lepszą responsywność
- Rozważ przetwarzanie równoległe dla wielu plików PDF
- Rozsądnie korzystaj z opóźnień renderowania
- Brakująca treść
- Zasoby zewnętrzne mogą wymagać podania adresów URL w postaci bezwzględnej
- Treści w języku JavaScript mogą wymagać opóźnień
- Sprawdź poświadczenia sieciowe dla zasobów chronionych
W przypadku utrzymujących się problemów należy zapoznać się z obszernym przewodnikiem dotyczącym rozwiązywania problemów.
Jak wygląda ostateczny plik PDF?
Wynikowy dokument PDF będzie wyglądał następująco:

Jak mogę poprawić jakość pliku PDF?
Popraw jakość swoich plików PDF dzięki tym profesjonalnym technikom:
-
Renderowanie w wysokiej rozdzielczości:
renderer.RenderingOptions.PrintHtmlBackgrounds = true; renderer.RenderingOptions.ImageQuality = 95; // Higher quality for images renderer.RenderingOptions.DPI = 300; // Print-quality resolutionrenderer.RenderingOptions.PrintHtmlBackgrounds = true; renderer.RenderingOptions.ImageQuality = 95; // Higher quality for images renderer.RenderingOptions.DPI = 300; // Print-quality resolutionrenderer.RenderingOptions.PrintHtmlBackgrounds = True renderer.RenderingOptions.ImageQuality = 95 ' Higher quality for images renderer.RenderingOptions.DPI = 300 ' Print-quality resolution$vbLabelText $csharpLabel -
Profesjonalny styl:
<style> @page { size: A4; margin: 2cm; } body { font-family: 'Segoe UI', Tahoma, sans-serif; line-height: 1.6; color: #333; } h1 { color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 10px; } </style><style> @page { size: A4; margin: 2cm; } body { font-family: 'Segoe UI', Tahoma, sans-serif; line-height: 1.6; color: #333; } h1 { color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 10px; } </style>HTML -
Dodaj elementy wizualne:
- Optymalizacja pod kątem różnych zastosowań:
- Wyświetlanie na ekranie: niższa rozdzielczość (96–150 DPI), kompresja PDF
- Drukowanie: wyższa rozdzielczość (300+ DPI), kolory CMYK
- Archiwizacja: format PDF/A
Dlaczego wynik może wyglądać inaczej niż oczekiwano?
Kilka czynników może powodować różnice w renderowaniu między podglądem HTML a plikiem PDF:
-
Typy mediów CSS: Pliki PDF domyślnie wykorzystują media PRINT. Dodaj style specyficzne dla druku:
@media print { .no-print { display: none; } body { font-size: 12pt; } } -
Dostępność czcionek: Osadź czcionki niestandardowe, aby zapewnić spójność:
@font-face { font-family: 'MyFont'; src: url('data:font/woff2;base64,...') format('woff2'); } -
Treści dynamiczne: Treści renderowane przez JavaScript potrzebują czasu na załadowanie:
renderer.RenderingOptions.RenderDelay = 2000; // Wait 2 secondsrenderer.RenderingOptions.RenderDelay = 2000; // Wait 2 secondsrenderer.RenderingOptions.RenderDelay = 2000 ' Wait 2 seconds$vbLabelText $csharpLabel -
Różnice między przeglądarkami: IronPDF korzysta z silnika Chromium, dlatego w celu uzyskania dokładnego podglądu należy przeprowadzić testy w przeglądarce Chrome. Dowiedz się więcej o rendererze Chrome.
- Rozdzielczość i skalowanie: DPI monitora różni się od DPI PRINT. Użyj ustawień okna wyświetlania, aby zapewnić spójne renderowanie.
Aby uzyskać renderowanie z dokładnością co do piksela, postępuj zgodnie z przewodnikiem najlepszych praktyk dotyczących konwersji HTML do PDF.
Jakie są kolejne kroki po tym samouczku?
Powyższy samouczek wyjaśnia, jak utworzyć plik PDF z HTML przy użyciu biblioteki IronPDF.
Więcej informacji można znaleźć na oficjalnej stronie IronPDF. Biblioteka oferuje również inne funkcje, które umożliwiają pełną personalizację plików PDF, programowe łączenie i dzielenie plików lub po prostu przeglądanie przykładowych kodów ilustrujących różne funkcje.
Możesz to sprawdzić, korzystając z klucza 30-dniowego okresu próbnego. Obecnie dostępna jest doskonała oferta, w ramach której można otrzymać pięć produktów Iron Software w cenie zaledwie dwóch. Więcej informacji na temat licencji można znaleźć w sekcji Informacje o licencjach IronPDF.
Jakie zaawansowane funkcje powinienem opanować w następnej kolejności?
Po opanowaniu podstaw konwersji HTML do PDF zapoznaj się z tymi zaawansowanymi funkcjami:
-
Formularze PDF: Twórz formularze do wypełnienia w celu gromadzenia danych:
// Create interactive form fields pdf.Form.Fields.Add(new PdfTextField("name", "Enter your name", 100, 100));// Create interactive form fields pdf.Form.Fields.Add(new PdfTextField("name", "Enter your name", 100, 100));' Create interactive form fields pdf.Form.Fields.Add(New PdfTextField("name", "Enter your name", 100, 100))$vbLabelText $csharpLabel -
Podpisy cyfrowe: zwiększ bezpieczeństwo i autentyczność dokumentów
- Optymalizacja wydajności:
- Asynchroniczne renderowanie dla aplikacji internetowych
- Przetwarzanie wsadowe wielu dokumentów
- Strumieniowanie oszczędzające pamięć
Zacznij od funkcji najbardziej istotnych dla wymagań Twojego projektu.
Jak przejść z wersji próbnej do produkcyjnej?
Przejście z wersji próbnej do produkcyjnej obejmuje kilka ważnych kroków:
-
Wybierz odpowiednią licencję:
- Lite: Jeden programista, jeden projekt
- Plus: Jeden programista, wiele projektów
- Professional: Małe zespoły (do 3 programistów)
- Nieograniczona: zespoły korporacyjne
- Zastosuj swój klucz licencyjny:
// In application startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";// In application startup IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";$vbLabelText $csharpLabel
// Or via configuration // appsettings.json (for .NET Core) { "IronPdf.License.LicenseKey": "YOUR-LICENSE-KEY" }
3. **Usuń znaki wodne wersji próbnej**: Wersje licencjonowane automatycznie usuwają znaki wodne wersji próbnej ze wszystkich wygenerowanych plików PDF.
4. **Kwestie związane z wydajnością**:
- Testowanie na danych w skali produkcyjnej
- Wdrożenie [odpowiedniej obsługi błędów](/troubleshooting/engineering-support-for-ironpdf/)
- Skonfiguruj [rejestrowanie w celu monitorowania](/how-to/custom-logging/)
5. **Lista kontrolna wdrożenia**:
- Sprawdź [wymagania serwera](/get-started/windows/)
- Test na docelowej [platformie wdrożeniowej](/get-started/azure/)
- Skonfiguruj [IIS, jeśli to konieczne](/troubleshooting/ironpdf-and-iis/)
- Skonfiguruj [ciągłą integrację](/get-started/installation-overview/)
Szczegółowe wytyczne dotyczące licencji można znaleźć w sekcji [FAQ dotyczącej licencji](/licensing/).
### Gdzie mogę znaleźć bardziej złożone przykłady?
Poszerz swoją wiedzę o IronPDF dzięki tym obszernym zasobom:
1. **[Biblioteka przykładów kodu](/examples/)**:
- [Generowanie faktur](/how-to/csharp-pdf-reports/)
- [Tworzenie raportów](/how-to/csharp-pdf-reports/)
- [Przetwarzanie wsadowe](/examples/parallel/)
2. **[Seria samouczków](/tutorials/)**:
- [Kompletny przewodnik po konwersji HTML do PDF](/tutorials/html-to-pdf/)
- [Tworzenie plików PDF od podstaw](/tutorials/csharp-create-pdf-complete-tutorial/)
- [Zaawansowana edycja plików PDF](/tutorials/csharp-edit-pdf-complete-tutorial/)
3. **[Przewodniki integracji](/how-to/html-string-to-pdf/)**:
- [Integracja z ASP.NET MVC](/how-to/cshtml-to-pdf-mvc-core/)
- [Aplikacje Blazor](/how-to/blazor-tutorial/)
- [Wdrożenie w Azure](/how-to/azure/)
4. **[Dokumentacja API](/object-reference/api/)**:
- Kompleksowe opisy klas
- Sygnatury metod i parametry
- Fragmenty kodu dla każdej funkcji
5. **Zasoby społeczności**:
- [Tag IronPDF na Stack Overflow](https://stackoverflow.com/questions/tagged/ironpdf)
- [Przykłady z serwisu GitHub](https://github.com/iron-software)
- Pomoc techniczna za pośrednictwem [centrum pomocy](/)
Zacznij od przykładów najbardziej zbliżonych do Twojego przypadku użycia i stopniowo odkrywaj bardziej zaawansowane funkcje w miarę potrzeb.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. Wystarczy utworzyć obiekt HtmlToPdf i wywołać tę metodę, aby renderować kod HTML do dokumentu PDF.
Jakie kroki należy wykonać, aby skonfigurować projekt Visual Studio do generowania plików PDF?
Zacznij od otwarcia programu Visual Studio 2019, wybierz opcję „Utwórz nowy projekt”, wybierz „Aplikacja Windows Forms” i nadaj nazwę projektowi. Następnie zainstaluj IronPDF za pośrednictwem NuGet, aby rozpocząć integrację funkcji generowania plików PDF.
Jak zainstalować bibliotekę do generowania plików PDF w Visual Studio?
Możesz zainstalować IronPDF, przechodząc do konsoli menedżera pakietów w Visual Studio i wykonując polecenie: Install-Package IronPdf.
Jakie elementy powinny znaleźć się w formularzu do generowania plików PDF?
Należy uwzględnić etykietę z instrukcją, pole tekstowe Rich Text Box do wprowadzania kodu HTML oraz przycisk z napisem „Convert”, który użytkownicy będą klikać w celu wygenerowania pliku PDF.
Jak zaimplementować kod zaplecza do tworzenia plików PDF?
Użyj IronPDF do zadeklarowania obiektu HtmlToPdf. Pobierz dane wejściowe HTML z pola tekstowego, poproś użytkownika o zapisanie pliku PDF i wyrenderuj HTML za pomocą metody RenderHtmlAsPdf.
Jaka jest funkcja obiektu HtmlToPdf w bibliotece PDF?
Obiekt HtmlToPdf w IronPDF służy do przekształcania treści HTML w dokumenty PDF przy użyciu wszechstronnych funkcji konwersji biblioteki.
Jak mogę sprawdzić, czy mój projekt generowania plików PDF działa poprawnie?
Uruchom projekt w Visual Studio, wprowadź kod HTML do pola RichTextBox i kliknij „Convert”. Następnie użyj okna SaveFileDialog, aby wybrać lokalizację dla pliku PDF, upewniając się, że konwersja została pomyślnie zakończona.
Jakie zaawansowane funkcje oferuje biblioteka PDF?
IronPDF umożliwia tworzenie w pełni konfigurowalnych plików PDF, a także programowe łączenie i dzielenie plików. Biblioteka udostępnia również przykładowe kody dla różnych funkcji.
Czy mogę wypróbować bibliotekę PDF przed zakupem?
Tak, na oficjalnej stronie internetowej IronPDF dostępny jest 30-dniowy okres próbny, który pozwala zapoznać się z funkcjami programu przed podjęciem decyzji o zakupie.
Gdzie mogę znaleźć szczegóły dotyczące licencji biblioteki PDF?
Szczegółowe informacje na temat licencji IronPDF można znaleźć na stronie Informacje o licencjach IronPDF na ich stronie internetowej, w tym opcje i aktualne oferty.
Czy IronPDF jest kompatybilny z .NET 10?
Tak — IronPDF obsługuje już wszystkie nowoczesne wersje .NET i jest zgodny z nadchodzącą wersją .NET 10, której premiera zaplanowana jest na listopad 2025 r. Działa od razu z projektami .NET 10 bez konieczności stosowania dodatkowych rozwiązań. (ironpdf.com/blog/using-ironpdf/5-steps-to-generate-a-pdf-file-in-c-sharp/)




