How to Draw Text and Bitmap on PDFs in C#

Jak rysować tekst i bitmapę na PDF-ach używając C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF umożliwia rysowanie tekstu i obrazów na istniejących PDF-ach za pomocą metod DrawText oraz DrawBitmap, co pozwala na dostosowanie za pomocą znaków wodnych, logo, adnotacji i poprawę wyglądu wizualnego bez zmiany oryginalnej treści.

Rysowanie tekstu i obrazów na PDF polega na dodawaniu treści do istniejącego dokumentu. IronPDF płynnie umożliwia tę funkcję. Dzięki włączeniu tekstu i obrazów można dostosowywać PDF-y za pomocą znaków wodnych, logo i adnotacji, poprawiając wizualny wygląd dokumentu i branding. Dodatkowo, tekst i obrazy ułatwiają prezentację informacji, wizualizację danych i tworzenie interaktywnych formularzy.

Samouczek: Dodawanie tekstu i obrazów do PDF-ów z IronPDF

Ulepszanie dokumentów PDF tekstem i obrazami jest szybkie i efektywne. Za pomocą metod DrawText oraz DrawBitmap można łatwo dostosowywać PDF-y, dodając znaki wodne, logo lub adnotacje. Ten przykład pokazuje, jak rysować tekst w określonych współrzędnych i wstawiać obraz bezproblemowo do dokumentu PDF.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. Skopiuj i uruchom ten fragment kodu.

    new ChromePdfRenderer()
        .RenderHtmlAsPdf("<h1>Doc</h1>")
        .DrawText("Hello World", FontTypes.TimesNewRoman.Name, 12, 0, 100, 100, Color.Black, 0)
        .DrawBitmap(AnyBitmap.FromFile("logo.png"), 0, 50, 250, 500, 300)
        .SaveAs("annotated.pdf");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer


Jak rysować tekst na PDF-ie?

Metoda DrawText dostępna na obiekcie PdfDocument umożliwia dodawanie tekstu do istniejącego PDF bez zmiany jego oryginalnej treści. Ta metoda jest szczególnie przydatna do dodawania dynamicznej treści do PDF-ów, podobnie jak funkcja stemplowania tekstu i obrazu do bardziej złożonych nakładek.

Zrozumienie układu współrzędnych

Przed rozpoczęciem rysowania tekstu, zrozum system współrzędnych PDF. Punkt oryginalny (0,0) znajduje się w lewym dolnym rogu strony, wartości X rosną w prawo, a wartości Y rosną w górę. To różni się od wielu systemów graficznych, gdzie punkt oryginalny jest w lewym górnym rogu.

:path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-text.cs
using IronPdf;
using IronSoftware.Drawing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");

// Draw text on PDF
pdf.DrawText("Some text", FontTypes.TimesNewRoman.Name, FontSize: 12, PageIndex: 0, X: 100, Y: 100, Color.Black, Rotation: 0);

pdf.SaveAs("drawText.pdf");
Imports IronPdf
Imports IronSoftware.Drawing

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")

' Draw text on PDF
pdf.DrawText("Some text", FontTypes.TimesNewRoman.Name, FontSize:=12, PageIndex:=0, X:=100, Y:=100, Color.Black, Rotation:=0)

pdf.SaveAs("drawText.pdf")
$vbLabelText   $csharpLabel

Jakich czcionek można użyć?

Metoda DrawText obecnie obsługuje wszystkie standardowe czcionki w IronPDF, w tym Courier, Arial (lub Helvetica), TimesNewRoman, Symbol i ZapfDingbats. Odwiedź sekcję 'standardowe czcionki w IronPDF' w artykule o zarządzaniu czcionkami dla wersji pochyłych, pogrubionych i ukośnych tych typów czcionek.

Czcionka ZapfDingbats może wyświetlać symbole, takie jak ▲. Dla pełnej listy obsługiwanych symboli, odwiedź Wikipedia o Zapf Dingbats.

Przykład czcionek na PDF

Próbki czcionek pokazujące rodziny Arial, Courier, Helvetica i Times New Roman z odmianami pogrubionymi, pochyłymi i ukośnymi

Jak dodać tekst z podziałami na linie?

Akcja rysowania tekstu obsługuje znaki nowej linii, umożliwiając renderowanie tekstu z wbudowanymi nowymi liniami dla lepszego formatowania i czytelności wizualnej. Jest to przydatne przy dodawaniu wielolinijkowych adnotacji lub tworzeniu strukturalnych układów tekstowych.

Aby to osiągnąć, dodaj newline characters (\n) do łańcucha tekstowego. Używając powyższego przykładu:

// Multi-line text example with proper spacing
string textWithNewlines = "Some text\nSecond line\nThird line with more content";
pdfDoc.DrawText(textWithNewlines, font, position);

// You can also use Environment.NewLine for platform-specific line breaks
string platformText = $"Line 1{Environment.NewLine}Line 2{Environment.NewLine}Line 3";
pdfDoc.DrawText(platformText, font, position);
// Multi-line text example with proper spacing
string textWithNewlines = "Some text\nSecond line\nThird line with more content";
pdfDoc.DrawText(textWithNewlines, font, position);

// You can also use Environment.NewLine for platform-specific line breaks
string platformText = $"Line 1{Environment.NewLine}Line 2{Environment.NewLine}Line 3";
pdfDoc.DrawText(platformText, font, position);
' Multi-line text example with proper spacing
Dim textWithNewlines As String = "Some text" & vbLf & "Second line" & vbLf & "Third line with more content"
pdfDoc.DrawText(textWithNewlines, font, position)

' You can also use Environment.NewLine for platform-specific line breaks
Dim platformText As String = $"Line 1{Environment.NewLine}Line 2{Environment.NewLine}Line 3"
pdfDoc.DrawText(platformText, font, position)
$vbLabelText   $csharpLabel

Jak używać niestandardowych czcionek?

Niestandardowe czcionki są obsługiwane z metodą DrawText, poszerzając możliwości typografii poza standardowe czcionki. Ta funkcja jest niezbędna w celu zachowania spójności marki lub przy pracy z wyspecjalizowanymi czcionkami. Dla zaawansowanego zarządzania czcionkami, zobacz nasz przewodnik o zarządzaniu czcionkami w PDF-ach.

Poniżej znajduje się przykład z dodaną czcionką Pixelify Sans Font do tekstu:

:path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-custom-font.cs
using IronPdf;
using IronSoftware.Drawing;
using System.IO;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");

// Add custom font to the PDF
byte[] fontByte = File.ReadAllBytes(@".\PixelifySans-VariableFont_wght.ttf");
var addedFont = pdf.Fonts.Add(fontByte);

// Draw text on PDF
pdf.DrawText("Iron Software", addedFont.Name, FontSize: 12, PageIndex: 0, X: 100, Y: 600, Color.Black, Rotation: 0);

pdf.SaveAs("drawCustomFont.pdf");
Imports IronPdf
Imports IronSoftware.Drawing
Imports System.IO

Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")

' Add custom font to the PDF
Private fontByte() As Byte = File.ReadAllBytes(".\PixelifySans-VariableFont_wght.ttf")
Private addedFont = pdf.Fonts.Add(fontByte)

' Draw text on PDF
pdf.DrawText("Iron Software", addedFont.Name, FontSize:= 12, PageIndex:= 0, X:= 100, Y:= 600, Color.Black, Rotation:= 0)

pdf.SaveAs("drawCustomFont.pdf")
$vbLabelText   $csharpLabel

Zaawansowane pozycjonowanie tekstu

Podczas dokładnego pozycjonowania tekstu, rozważ te wskazówki:

  • Wymiary strony: Użyj pdf.Pages[pageIndex].Width i pdf.Pages[pageIndex].Height, aby uzyskać wymiary strony
  • Obrót: Parametr obrotu akceptuje stopnie (0-360) dla tekstu pod kątem
  • Opcje kolorów: Poza podstawowymi kolorami, użyj wartości RGB: Color.FromArgb(255, 100, 100)

Jak rysować obrazy na PDF-ie?

Metoda DrawBitmap w IronPDF umożliwia dodawanie bitmap do istniejących dokumentów PDF. Ta metoda działa podobnie do funkcji stampla obrazu, pozwalając na stemplowanie obrazów na istniejących PDF-ach. Dla bardziej złożonych potrzeb manipulacji obrazem, zobacz nasz przewodnik o dodawaniu obrazów do PDF-ów.

Zwróć uwagęMetoda DrawBitmap najlepiej sprawdza się do dużych obrazów. Podczas używania obrazów mniejszej rozdzielczości może wystąpić następujący wyjątek: IronPdf.Exceptions.IronPdfNativeException: 'Błąd podczas rysowania obrazu: długość danych (567000) jest mniejsza niż oczekiwana (756000)'. Aby rozwiązać ten problem, należy skorzystać z Image Stamper, który obsługuje obrazy wszystkich rozmiarów.

Przykładowy obraz

Logo Iron Software z kolorowym trójwymiarowym designem geometrycznym na markowym tle

Jak wygląda implementacja?

:path=/static-assets/pdf/content-code-examples/how-to/draw-text-and-bitmap-draw-bitmap.cs
using IronPdf;
using IronSoftware.Drawing;

ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");

// Open the image from file
AnyBitmap bitmap = AnyBitmap.FromFile("ironSoftware.png");

// Draw the bitmp on PDF
pdf.DrawBitmap(bitmap, 0, 50, 250, 500, 300);

pdf.SaveAs("drawImage.pdf");
Imports IronPdf
Imports IronSoftware.Drawing

Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")

' Open the image from file
Dim bitmap As AnyBitmap = AnyBitmap.FromFile("ironSoftware.png")

' Draw the bitmap on PDF
pdf.DrawBitmap(bitmap, 0, 50, 250, 500, 300)

pdf.SaveAs("drawImage.pdf")
$vbLabelText   $csharpLabel

Wynik w formacie PDF

Jakie dodatkowe parametry są dostępne?

  • PixelFormat: Właściwość PixelFormat określa format danych kolorów dla bitmapy, głównie kontrolując wsparcie dla przezroczystości. Domyślną wartością jest Format32bppArgb. Wybierz pomiędzy formatami pikseli Format32bppRgb i Format32bppArgb, podając parametr jako opcję. To jest przydatne, gdy pracujesz z elementami tła i pierwszego planu w PDF-ach.

  • IgnorePageRotation: Ta właściwość bool określa, czy metoda ignoruje obrót strony podczas rysowania bitmapy. Domyślnie wartość to false. Jest szczególnie przydatna przy stosowaniu znaków wodnych na wszystkich stronach, niezależnie od obrotu.

Częste zastosowania i najlepsze praktyki

Podczas rysowania tekstu i obrazów na PDF-ach, rozważ te praktyczne zastosowania:

  1. Dynamiczne znakowanie wodne: Dodawaj logo firmowe lub stemple 'POUFNE' do wrażliwych dokumentów
  2. Numeracja stron: Rysuj numery stron w spójnych pozycjach na wszystkich stronach
  3. Umieszczanie podpisów: Dodawaj obrazy podpisów w wyznaczonych miejscach na formularzach
  4. Ulepszanie nagłówków/stopek: Uzupełniaj istniejące nagłówki dynamiczną treścią

Dla debugowania i monitorowania operacji PDF, wdroż niestandardowe logowanie w celu śledzenia operacji rysowania i zapewnij ich prawidłowe wykonanie.

Rozważania dotyczące wydajności

Pracując z wieloma stronami lub dużymi dokumentami:

  • Przeprowadzaj operacje wsadowe, gdy to możliwe, aby zminimalizować zużycie pamięci
  • Usuwaj obiekty bitmap po użyciu, aby zwolnić zasoby
  • Rozważ wstępne ładowanie często używanych obrazów, aby poprawić wydajność

Zapoznaj się z naszą stroną z samouczkami: Edytuj pliki PDF

Często Zadawane Pytania

What methods can I use to add text and images to existing PDFs?

IronPDF provides two main methods for adding content to existing PDFs: the DrawText method for adding text and the DrawBitmap method for adding images. These methods allow you to customize PDFs with watermarks, logos, and annotations without altering the original document content.

How does the PDF coordinate system work when drawing text?

In IronPDF, the PDF coordinate system has its origin (0,0) at the bottom-left corner of the page. X values increase moving to the right, and Y values increase moving upward. This differs from many graphics systems where the origin is at the top-left corner.

What fonts are supported when drawing text on PDFs?

IronPDF's DrawText method supports all Standard Fonts including Courier, Arial (Helvetica), Times New Roman, Symbol, and ZapfDingbats. These fonts are also available in italic, bold, and oblique variants. The ZapfDingbats font can be used to display special symbols.

Can I add both text and images to a PDF in a single operation?

Yes, IronPDF allows you to chain methods together. You can use ChromePdfRenderer to create a PDF, then apply DrawText and DrawBitmap methods sequentially in a single line of code, making it efficient to add multiple elements to your PDF document.

What are the common use cases for drawing text and images on PDFs?

IronPDF's drawing capabilities are commonly used for adding watermarks to protect documents, inserting company logos for branding, creating annotations for document review, improving visual appearance, facilitating data visualization, and creating interactive forms.

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
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,135,201 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.