
Cześć! Rozumiem, że .NET Core i generowanie plików PDF może wydawać się na początku trudne. Wiele osób ma z tym problem. Ale nie martw się, jestem tu, żeby Ci pomóc przejść przez to krok po kroku. Zobaczysz, to nie jest tak straszne, jak się wydaje!
Podstawy .NET Core i PDF
Zacznijmy od podstaw. .NET Core to potężna platforma do tworzenia różnych aplikacji, od webowych po desktopowe. Jedną z częstych potrzeb jest generowanie dokumentów PDF. Dlaczego PDF? Bo to format uniwersalny, który wygląda tak samo na każdym urządzeniu i systemie operacyjnym.
Wybór odpowiedniej biblioteki
Kluczem do sukcesu jest wybranie odpowiedniej biblioteki do generowania PDF w .NET Core. Jest kilka popularnych opcji:
Must Read
- iTextSharp (chociaż nowsze wersje, takie jak iText 7 są preferowane) – jedna z najstarszych i najbardziej znanych bibliotek.
- PdfSharp – darmowa biblioteka, która dobrze radzi sobie z tworzeniem bardziej skomplikowanych dokumentów.
- SelectPdf – komercyjna biblioteka oferująca szeroki zakres funkcji i wsparcie.
Na początek, spróbuj z PdfSharp. Jest darmowa i ma dobrą dokumentację.
Wskazówka: Zanim zaczniesz pisać kod, poświęć trochę czasu na zapoznanie się z dokumentacją wybranej biblioteki. To naprawdę ułatwi Ci pracę!
Pierwszy PDF w .NET Core
Ok, czas na praktykę! Załóż nowy projekt .NET Core (na przykład aplikację konsolową). Następnie, dodaj referencję do wybranej biblioteki PDF. W Visual Studio, zrobisz to poprzez NuGet Package Manager. Wpisz nazwę biblioteki (np. "PdfSharp") i zainstaluj.

Teraz dodaj kod, który wygeneruje prosty dokument PDF:
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;
class Program
{
static void Main(string[] args)
{
// Utwórz nowy dokument PDF
PdfDocument document = new PdfDocument();
document.Info.Title = "Mój pierwszy PDF";
// Dodaj stronę do dokumentu
PdfPage page = document.AddPage();
// Utwórz obiekt graficzny do rysowania na stronie
XGraphics gfx = XGraphics.FromPdfPage(page);
// Utwórz czcionkę
XFont font = new XFont("Verdana", 20, XFontStyle.BoldItalic);
// Narysuj tekst na stronie
gfx.DrawString("Witaj, świecie!", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height),
XStringFormats.Center);
// Zapisz dokument do pliku
string filename = "pierwszy_pdf.pdf";
document.Save(filename);
// Zamknij dokument
document.Close();
}
}
Ten kod tworzy prosty dokument PDF z napisem "Witaj, świecie!". Spróbuj go uruchomić i zobacz, co się stanie. Pamiętaj o dodaniu odpowiednich usingów!
Zrozumienie kodu
Spójrzmy, co robi poszczególne fragmenty kodu:

PdfDocument document = new PdfDocument();– Tworzy nowy dokument PDF.document.Info.Title = "Mój pierwszy PDF";– Ustawia tytuł dokumentu.PdfPage page = document.AddPage();– Dodaje nową stronę do dokumentu.XGraphics gfx = XGraphics.FromPdfPage(page);– Tworzy obiekt graficzny, który pozwala rysować na stronie.XFont font = new XFont("Verdana", 20, XFontStyle.BoldItalic);– Tworzy czcionkę, której będziemy używać do pisania tekstu.gfx.DrawString("Witaj, świecie!", font, XBrushes.Black, ...);– Rysuje tekst na stronie.document.Save(filename);– Zapisuje dokument do pliku.document.Close();- Zamyka dokument, uwalniając zasoby.
Eksperymentuj! Zmień tekst, czcionkę, rozmiar, kolor. Zobacz, jak to wpływa na wynikowy dokument.
Dodawanie tabel i obrazków
Ok, generowanie tekstu to dobry początek, ale prawdziwa moc tkwi w dodawaniu tabel i obrazków. To już trochę bardziej zaawansowane, ale nadal do ogarnięcia.
Proces dodawania tabel i obrazków różni się w zależności od używanej biblioteki. Zajrzyj do dokumentacji wybranej biblioteki, aby dowiedzieć się, jak to zrobić. Zazwyczaj będziesz musiał określić pozycję i rozmiar elementów, a także źródło danych (dla tabel) lub ścieżkę do pliku (dla obrazków).

Pamiętaj: Używaj relative paths dla obrazków, aby Twój kod działał na różnych komputerach. Na przykład:
"images/logo.png"zamiast"C:/users/ja/dokumenty/logo.png".
Generowanie PDF z danych
Często będziesz chciał generować dokumenty PDF na podstawie danych z bazy danych, pliku XML lub innego źródła. W takim przypadku, będziesz musiał pobrać dane, a następnie użyć ich do wypełnienia szablonu PDF. Możesz to zrobić ręcznie, używając kodu, lub skorzystać z bibliotek, które oferują mechanizmy szablonowania.
Przykładowe użycie danych
Załóżmy, że masz listę obiektów Product:

public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
}
List<Product> products = new List<Product>()
{
new Product { Name = "Książka", Price = 29.99m },
new Product { Name = "Długopis", Price = 2.50m }
};
Możesz iterować po tej liście i dodawać informacje o każdym produkcie do dokumentu PDF.
Dalsze kroki
Gratulacje! Znasz już podstawy generowania PDF w .NET Core. Co dalej?
- Eksperymentuj z różnymi bibliotekami PDF i wybierz tę, która najlepiej odpowiada Twoim potrzebom.
- Poćwicz dodawanie tabel, obrazków i innych elementów do dokumentu.
- Naucz się generować PDF z danych z bazy danych.
- Zwracaj uwagę na wydajność, szczególnie przy generowaniu dużych dokumentów.
Pamiętaj, że nauka programowania to proces. Nie zniechęcaj się, jeśli napotkasz trudności. Szukaj pomocy na forach internetowych, grupach dyskusyjnych i dokumentacji bibliotek. Powodzenia!