
Jak edytować PDF na iPhone
PDF (Portable Document Format) to powszechnie stosowany format dokumentów, który cieszy się popularnością ze względu na możliwość zachowania formatowania dokumentu, bezpieczeństwo i przenośność.
Pliki PDF stały się jednym z najczęściej używanych formatów dokumentów na świecie, a w języku C# dostępnych jest kilka bibliotek do tworzenia i edycji plików PDF.
Dowiedz się, jak edytować pliki PDF za pomocą C# z IronPDF i iText, ułatwiając to zadanie dzięki tym potężnym bibliotekom.
W tym artykule porównamy dwie popularne biblioteki do manipulacji PDF w C#: iText i IronPDF. Omówimy, jak edytować pliki PDF przy użyciu obu bibliotek, a następnie zbadamy, dlaczego IronPDF jest lepszą opcją w porównaniu do iText, zwłaszcza pod względem jakości wydruku, wydajności i cen.
Wprowadzenie do DLL iText i Biblioteki IronPDF
Funkcje iText oraz informacje o wersji próbnej IronPDF są dostępne, aby pomóc deweloperom efektywnie pracować z plikami PDF w C#. Obie biblioteki oferują szeroki zakres funkcji i możliwości tworzenia, edycji i manipulowania dokumentami PDF.
DLL iText to port w C# biblioteki iText opartej na Javie. Zapewnia proste i łatwe w użyciu API do tworzenia i edycji dokumentów PDF. iText to otwartoźródłowa biblioteka dostępna na licencji AGPL.
IronPDF to biblioteka .NET przeznaczona do tworzenia, edytowania i manipulowania plikami PDF przy użyciu języka C#. Zapewnia nowoczesny i intuicyjny interfejs API do pracy z dokumentami PDF. IronPDF to komercyjna biblioteka, która jest dostępna w bezpłatnej wersji próbnej oraz w ramach opcji subskrypcji umożliwiających bardziej rozbudowane wykorzystanie.
Porównanie Bibliotek iText i IronPDF
Zarówno biblioteki iText, jak i IronPDF zapewniają szeroki zakres funkcji do tworzenia, edytowania i manipulowania dokumentami PDF. Jednak IronPDF ma kilka zalet w porównaniu do iText, co czyni go preferowanym wyborem do pracy z dokumentami PDF w C#.
Edytowanie Plików PDF za Pomocą iText i IronPDF
Skoro omówiliśmy różnice między iText a IronPDF, przyjrzyjmy się, jak edytować pliki PDF za pomocą obu bibliotek. Przejdziemy przez przykłady dodawania tekstu, pól formularza oraz wypełniania formularzy w istniejącym dokumencie PDF przy użyciu iText i IronPDF.
Edytowanie Plików PDF za Pomocą iText
Wymagania wstępne
Zanim zaczniemy, potrzebne będą następujące elementy:
- Visual Studio zainstalowane na komputerze.
- Podstawowa znajomość języka programowania C#.
- Biblioteka iText zainstalowana w twoim projekcie.

Aby zainstalować bibliotekę iText w swoim projekcie, możesz użyć Menedżera Pakietów NuGet. Otwórz projekt Visual Studio i kliknij prawym przyciskiem myszy nazwę projektu w Eksploratorze rozwiązań. Wybierz opcję "Zarządzaj pakietami NuGet" z menu kontekstowego. W Menedżerze Pakietów NuGet wyszukaj "iText" i zainstaluj najnowszą wersję pakietu.

Tworzenie nowego pliku PDF
Aby utworzyć nowy plik PDF z użyciem iText, musimy utworzyć nową instancję klasy "Document" i przekazać nowy obiekt FileStream do jego konstruktora. Oto przykład:
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
using System.IO;
// Create a new PDF document
using (var writer = new PdfWriter(new FileStream("newfile.pdf", FileMode.Create)))
{
using (var pdf = new PdfDocument(writer))
{
var document = new Document(pdf);
// Create a header paragraph
Paragraph header = new Paragraph("HEADER")
.SetTextAlignment(TextAlignment.CENTER)
.SetFontSize(16);
// Add the header to the document
document.Add(header);
// Loop through pages and align header text
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
Rectangle pageSize = pdf.GetPage(i).GetPageSize();
float x = pageSize.GetWidth() / 2;
float y = pageSize.GetTop() - 20;
// Add the header text to each page
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
// Set the margins
document.SetTopMargin(50);
document.SetBottomMargin(50);
}
}Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.Layout.Properties
Imports System.IO
' Create a new PDF document
Using writer = New PdfWriter(New FileStream("newfile.pdf", FileMode.Create))
Using pdf = New PdfDocument(writer)
Dim document As New Document(pdf)
' Create a header paragraph
Dim header As Paragraph = (New Paragraph("HEADER")).SetTextAlignment(TextAlignment.CENTER).SetFontSize(16)
' Add the header to the document
document.Add(header)
' Loop through pages and align header text
Dim i As Integer = 1
Do While i <= pdf.GetNumberOfPages()
Dim pageSize As Rectangle = pdf.GetPage(i).GetPageSize()
'INSTANT VB WARNING: Instant VB cannot determine whether both operands of this division are integer types - if they are then you should use the VB integer division operator:
Dim x As Single = pageSize.GetWidth() / 2
Dim y As Single = pageSize.GetTop() - 20
' Add the header text to each page
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0)
i += 1
Loop
' Set the margins
document.SetTopMargin(50)
document.SetBottomMargin(50)
End Using
End UsingW powyższym kodzie utworzyliśmy nowy plik PDF o nazwie "newfile.pdf" i dodaliśmy do niego nagłówek akapitu.

Edycja istniejącego pliku PDF
Aby edytować istniejący plik PDF za pomocą iText, potrzebujesz obiektu PdfReader do odczytania istniejącego dokumentu PDF i obiektu PdfStamper do jego modyfikacji. Oto przykład:
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Layout.Properties;
using iText.Html2pdf;
using System.IO;
/**
* iText URL to PDF
* anchor-itext-url-to-pdf
**/
private void ExistingWebURL()
{
// Initialize PDF writer
PdfWriter writer = new PdfWriter("wikipedia.pdf");
// Initialize PDF document
using PdfDocument pdf = new PdfDocument(writer);
ConverterProperties properties = new ConverterProperties();
properties.SetBaseUri("https://en.wikipedia.org/wiki/Portable_Document_Format");
// Convert HTML to PDF
Document document = HtmlConverter.ConvertToDocument(
new FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties);
// Create and add a header paragraph
Paragraph header = new Paragraph("HEADER")
.SetTextAlignment(TextAlignment.CENTER)
.SetFontSize(16);
document.Add(header);
// Align header text for each page
for (int i = 1; i <= pdf.GetNumberOfPages(); i++)
{
Rectangle pageSize = pdf.GetPage(i).GetPageSize();
float x = pageSize.GetWidth() / 2;
float y = pageSize.GetTop() - 20;
// Add header text aligned at the top
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0);
}
// Set the top and bottom margins
document.SetTopMargin(50);
document.SetBottomMargin(50);
document.Close();
}Imports iText.Kernel.Pdf
Imports iText.Layout
Imports iText.Layout.Element
Imports iText.Layout.Properties
Imports iText.Html2pdf
Imports System.IO
''' <summary>
''' iText URL to PDF
''' anchor-itext-url-to-pdf
''' </summary>
Private Sub ExistingWebURL()
' Initialize PDF writer
Dim writer As New PdfWriter("wikipedia.pdf")
' Initialize PDF document
Using pdf As New PdfDocument(writer)
Dim properties As New ConverterProperties()
properties.SetBaseUri("https://en.wikipedia.org/wiki/Portable_Document_Format")
' Convert HTML to PDF
Dim document As Document = HtmlConverter.ConvertToDocument(New FileStream("Test_iText7_1.pdf", FileMode.Open), pdf, properties)
' Create and add a header paragraph
Dim header As New Paragraph("HEADER") _
.SetTextAlignment(TextAlignment.CENTER) _
.SetFontSize(16)
document.Add(header)
' Align header text for each page
For i As Integer = 1 To pdf.GetNumberOfPages()
Dim pageSize As Rectangle = pdf.GetPage(i).GetPageSize()
Dim x As Single = pageSize.GetWidth() / 2
Dim y As Single = pageSize.GetTop() - 20
' Add header text aligned at the top
document.ShowTextAligned(header, x, y, i, TextAlignment.LEFT, VerticalAlignment.BOTTOM, 0)
Next
' Set the top and bottom margins
document.SetTopMargin(50)
document.SetBottomMargin(50)
document.Close()
End Using
End SubW tym kodzie otwierany jest istniejący plik PDF, a my dodajemy nagłówki do jego stron z odpowiednim wyrównaniem tekstu.
Edytowanie dokumentu PDF za pomocą IronPDF
IronPDF to potężna biblioteka PDF dla języka C#, która ułatwia edycję dokumentów PDF. W tym samouczku omówimy kroki edycji istniejącego pliku PDF przy użyciu IronPDF, w tym tworzenie nowych dokumentów PDF, dodawanie stron, scałanie plików PDF i nie tylko.

Wymagania wstępne
Upewnij się, że masz:
- Środowisko IDE Visual Studio
- Biblioteka IronPDF
Krok 1: Utwórz nowy projekt
Utwórz nowy projekt C# w Visual Studio. Wybierz typ projektu "Aplikacja konsolowa".
Krok 2: Zainstaluj IronPDF

Użyj menedżera pakietów NuGet, aby zainstalować bibliotekę IronPDF w swoim projekcie.
// Execute this command in the Package Manager Console
Install-Package IronPdf
Krok 3: Załaduj istniejący dokument PDF
Załaduj istniejący dokument PDF z użyciem klasy PdfDocument:
using IronPdf;
// Path to an existing PDF file
var existingPdf = @"C:\path\to\existing\pdf\document.pdf";
// Load the PDF document
var pdfDoc = PdfDocument.FromFile(existingPdf);Imports IronPdf
' Path to an existing PDF file
Private existingPdf = "C:\path\to\existing\pdf\document.pdf"
' Load the PDF document
Private pdfDoc = PdfDocument.FromFile(existingPdf)
Krok 4: Dodaj nową stronę do istniejącego dokumentu PDF
Aby dodać nową stronę:
// Add a new page with default size
var newPage = pdfDoc.AddPage();
newPage.Size = PageSize.Letter;' Add a new page with default size
Dim newPage = pdfDoc.AddPage()
newPage.Size = PageSize.LetterKrok 5: Tworzenie pliku PDF ze strony internetowej
Generuj plik PDF bezpośrednio z adresu URL strony internetowej. Oto przykład:
using IronPdf;
/**
* IronPDF URL to PDF
* anchor-ironpdf-website-to-pdf
**/
private void ExistingWebURL()
{
// Create PDF from a webpage
var Renderer = new IronPdf.ChromePdfRenderer();
// Set rendering options
Renderer.RenderingOptions.MarginTop = 50; // millimeters
Renderer.RenderingOptions.MarginBottom = 50;
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
Renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "{pdf-title}",
DrawDividerLine = true,
FontSize = 16
};
Renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
LeftText = "{date} {time}",
RightText = "Page {page} of {total-pages}",
DrawDividerLine = true,
FontSize = 14
};
Renderer.RenderingOptions.EnableJavaScript = true;
Renderer.RenderingOptions.RenderDelay = 500; // milliseconds
// Render URL as PDF
using var PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format");
PDF.SaveAs("wikipedia.pdf");
}Imports IronPdf
'''
''' * IronPDF URL to PDF
''' * anchor-ironpdf-website-to-pdf
''' *
Private Sub ExistingWebURL()
' Create PDF from a webpage
Dim Renderer = New IronPdf.ChromePdfRenderer()
' Set rendering options
Renderer.RenderingOptions.MarginTop = 50 ' millimeters
Renderer.RenderingOptions.MarginBottom = 50
Renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
.CenterText = "{pdf-title}",
.DrawDividerLine = True,
.FontSize = 16
}
Renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
.LeftText = "{date} {time}",
.RightText = "Page {page} of {total-pages}",
.DrawDividerLine = True,
.FontSize = 14
}
Renderer.RenderingOptions.EnableJavaScript = True
Renderer.RenderingOptions.RenderDelay = 500 ' milliseconds
' Render URL as PDF
Dim PDF = Renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Portable_Document_Format")
PDF.SaveAs("wikipedia.pdf")
End SubRóżnice Między iText i IronPDF

iText to popularna otwartoźródłowa biblioteka do tworzenia, manipulacji i ekstrakcji danych z dokumentów PDF w C#. Jest dobrze udokumentowana i szeroko stosowana. Z drugiej strony IronPDF jest bardziej nowoczesny i oferuje dodatkowe funkcje oraz korzyści, dzięki czemu stanowi lepszy wybór dla programistów.
Generowanie pliku PDF na podstawie ciągu znaków HTML
Oto jak można użyć IronPDF do utworzenia pliku PDF z HTML:
using IronPdf;
/**
* IronPDF HTML to PDF
* anchor-ironpdf-document-from-html
**/
private void HTMLString()
{
// Render HTML to PDF
var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
Renderer.RenderingOptions.TextFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"
};
var OutputPath = "ChromeHtmlToPdf.pdf";
PDF.SaveAs(OutputPath);
}Imports IronPdf
'''
''' * IronPDF HTML to PDF
''' * anchor-ironpdf-document-from-html
''' *
Private Sub HTMLString()
' Render HTML to PDF
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>")
Renderer.RenderingOptions.TextFooter = New HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:right'><em style='color:pink'>page {page} of {total-pages}</em></div>"}
Dim OutputPath = "ChromeHtmlToPdf.pdf"
PDF.SaveAs(OutputPath)
End SubiText HTML do PDF
Konwertuj tekst HTML na PDF używając iText:
using iText.Html2pdf;
using System.IO;
/**
* iText HTML to PDF
* anchor-itext-html-to-pdf
**/
private void HTMLString()
{
HtmlConverter.ConvertToPdf("<h1>Hello iText7</h1>", new FileStream("iText7HtmlToPdf.pdf", FileMode.Create));
}Imports iText.Html2pdf
Imports System.IO
'''
''' * iText HTML to PDF
''' * anchor-itext-html-to-pdf
''' *
Private Sub HTMLString()
HtmlConverter.ConvertToPdf("<h1>Hello iText7</h1>", New FileStream("iText7HtmlToPdf.pdf", FileMode.Create))
End SubWydajność
IronPDF jest zaprojektowane do szybszego i bardziej wydajnego działania niż iText, umożliwiając szybsze generowanie PDF przy mniejszym zużyciu zasobów. Ta wydajność ma kluczowe znaczenie w przypadku dużych lub złożonych dokumentów.
Ceny
iText wymaga licencji komercyjnej do określonych zastosowań, co może być kosztowne. IronPDF oferuje jednak bardziej przystępny model cenowy z różnorodnymi opcjami dostosowanymi do różnych potrzeb i budżetów.
Licencje i ceny
Jedną z kluczowych różnic między iText a IronPDF są ich modele licencyjne i cenowe.
- iText: Licencjonowany na AGPL, wymaga licencji komercyjnej do projektów zamkniętych źródłowo. Ceny licencji komercyjnych są zróżnicowane.
- IronPDF: Oferuje bezpłatną wersję próbną z elastycznymi licencjami, w tym licencjami dla programistów i serwerowymi, dzięki czemu nadaje się do użytku komercyjnego.

Wnioski
Podsumowując, choć iText i IronPDF potrafią obsługiwać manipulację PDF w C# to IronPDF wyróżnia się jako bardziej wszechstronny i wydajny wybór. Oferuje zaawansowane funkcje, intuicyjne API i lepszą wydajność. Elastyczna polityka cenowa sprawia, że rozwiązanie to nadaje się do projektów komercyjnych i dla większych organizacji.
Dzięki doskonałej funkcji konwersji HTML do PDF w IronPDF programiści mogą z łatwością generować raporty lub dokumenty zawierające multimedia lub treści interaktywne. W połączeniu z przystępną ceną IronPDF jest doskonałym wyborem dla programistów potrzebujących potężnej i wydajnej biblioteki PDF do projektów w języku C#.

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.
Powiązane artykuły


