How to Add Image to DOCX in C

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

IronWord dostarcza klasę ImageContent do wstawiania obrazów (.jpg, .png, .bmp, .tiff, .gif) do plików DOCX z możliwością dostosowania właściwości takich jak szerokość, wysokość oraz zawijanie tekstu. Użyj IronWord, aby dodać obrazy do dokumentów Word dla automatyzacji dokumentów i generowania raportów.

Szybki start: Dodaj obraz do DOCX w C#

  1. Zainstaluj IronWord za pomocą Menedzera Paketow NuGet
  2. Utwórz instancję WordDocument
  3. Załaduj swój obraz za pomocą klasy ImageContent
  4. Dodaj obraz do dokumentu za pomocą AddImage()
  5. Zapisz dokument jako DOCX
  1. Install IronWord with NuGet Package Manager

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

    using IronWord;
    using IronWord.Models;
    
    // Create new document
    WordDocument doc = new WordDocument();
    
    // Add image
    ImageContent image = new ImageContent("photo.jpg");
    doc.AddImage(image);
    
    // Save document
    doc.SaveAs("document-with-image.docx");
  3. Wdrożenie do testowania w środowisku produkcyjnym

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

    arrow pointer

Wypróbuj IronWord


Jak dodać obraz do DOCX?

Odwołaj się do obrazu za pomocą jego ścieżki pliku. Najpierw utwórz instancję klasy ImageContent z ścieżką pliku jako ciągiem znaków. Użyj zmiennej image w całym pliku, aby modyfikować takie właściwości jak szerokość i wysokość. Dodaj obraz do pliku .docx za pomocą funkcji AddImage(). Wyeksportuj i zapisz dokument lokalnie.

Przykład poniżej dodaje obraz do dokumentu bez żadnego węzła nadrzędnego. Obsługiwane formaty plików to .jpg, .png, .bmp, .tiff oraz .gif. Ta elastyczność pozwala pracować z dowolnym popularnym formatem obrazu.

PoradyWstaw obraz jako element podrzędny w akapicie dla lepszej hierarchii dokumentu. Akapit definiuje zawijanie tekstu i inne właściwości formatowania tekstu. To podejście daje większą kontrolę nad pozycjonowaniem obrazu i pozwala obrazom płynnie przechodzić z otaczającym tekstem.

:path=/static-assets/word/content-code-examples/how-to/add-image-insert-image.cs
using IronWord;
using IronWord.Models;
using IronWord.Models.Enums;

// initializing docx file
WordDocument doc = new IronWord.WordDocument();

// instantiating image file
IronWord.Models.ImageContent image = new IronWord.Models.ImageContent("sample-image.jpg");

// modifying image properties
image.Width = 200;
image.Height = 200;

// AddImage function saving the image
doc.AddImage(image);

// Save and export the file
doc.SaveAs("inserted-image.docx");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Enums

' Initializing docx file
Dim doc As New IronWord.WordDocument()

' Instantiating image file
Dim image As New IronWord.Models.ImageContent("sample-image.jpg")

' Modifying image properties
image.Width = 200
image.Height = 200

' AddImage function saving the image
doc.AddImage(image)

' Save and export the file
doc.SaveAs("inserted-image.docx")
$vbLabelText   $csharpLabel
Dokument Word pokazujacy wstawiony obraz nocnej panoramy miejskej z karta Narzedzia Glowne pokazujaca opcje formatowania

Jakie formaty obrazów są obsługiwane?

Obsługiwane formaty plików: .jpg, .png, .bmp, .tiff oraz .gif. Każdy format utrzymuje swoją jakość po wstawieniu. JPEG najlepiej sprawdza się dla fotografii. PNG obsługuje przezroczystość dla logo i grafik. BMP zapewnia jakość bez kompresji. TIFF nadaje się do dokumentów drukowanych wysokiej jakości. GIF pozwala na proste animacje (tylko pierwsza klatka jest wyświetlana w statycznych dokumentach).

Gdzie umieszcza się obraz w dokumencie?

Obrazy są domyślnie dodawane w aktualnej pozycji kursora, bez żadnego węzła nadrzędnego. Dla precyzyjnego pozycjonowania, wstaw obrazy jako elementy podrzędne w akapitach. To zapewnia lepszą kontrolę nad przepływem tekstu i integruje obrazy ze strukturą dokumentu.

Dlaczego używać klasy ImageContent?

Klasa ImageContent zarządza właściwościami obrazów w uporządkowany sposób. Zmodyfikuj wymiary, pozycjonowanie i formatowanie przed wstawieniem. To podejście zapewnia spójność w procesie generowania dokumentów i stosuje standardowe zasady formatowania w całej aplikacji. Klasa kapsułkuje wszystkie właściwości związane z obrazem, co sprawia, że kod jest łatwiejszy do utrzymania i redukuje błędy formatowania.

Jak dodać obrazy przez Stream?

Lokalne lub statyczne obrazy URL są łatwe do dodania przy użyciu poprzedniej metody. Jednakże aplikacje często pracują z obrazami z baz danych, usług webowych lub dynamicznie generowanych treści. Użyj metody Stream, aby dodać obrazy za zabezpieczonymi API wymagającymi uwierzytelnienia.

Przykład poniżej pokazuje klienta HTTP wysyłającego tokeny autoryzacji do pobrania uwierzytelnionego strumienia obrazu. Strumień integruje się bezpośrednio z dokumentem przed eksportem. To podejście eliminuje tymczasowe przechowywanie plików i zwiększa bezpieczeństwo dla przetwarzania danych obrazu.

:path=/static-assets/word/content-code-examples/how-to/add-image-insert-image-via-http-stream.cs
using IronWord;
using IronWord.Models;
using IronWord.Models.Enums;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

// initializing docx file
WordDocument doc = new IronWord.WordDocument();

using (HttpClient client = new HttpClient())
{
    // Add authentication headers
    client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY_HERE");
    client.DefaultRequestHeaders.Add("User-Agent", "MyApp/1.0");

    // Get image from authenticated endpoint
    Stream authenticatedStream = await client.GetStreamAsync("https://api.example.com/secure/image.png");
    doc.AddImage(authenticatedStream);
}

// Export docx
doc.SaveAs("added-image-via-http-stream.docx");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Enums
Imports System.IO
Imports System.Net.Http
Imports System.Threading.Tasks

' initializing docx file
Dim doc As New IronWord.WordDocument()

Using client As New HttpClient()
    ' Add authentication headers
    client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY_HERE")
    client.DefaultRequestHeaders.Add("User-Agent", "MyApp/1.0")

    ' Get image from authenticated endpoint
    Dim authenticatedStream As Stream = Await client.GetStreamAsync("https://api.example.com/secure/image.png")
    doc.AddImage(authenticatedStream)
End Using

' Export docx
doc.SaveAs("added-image-via-http-stream.docx")
$vbLabelText   $csharpLabel

Kiedy używać metody Stream?

Użyj metody Stream, gdy:

  • Obrazy są chronione za zabezpieczonymi API wymagającymi uwierzytelnienia
  • Przetwarzanie obrazów dynamicznie z pamięci
  • Praca z obrazami przechowywanymi jako dane binarne w bazach danych

Ta metoda dobrze działa w aplikacjach Enterprise, gdzie obrazy są przechowywane w systemach zarządzania dokumentami, pamięci w chmurze lub generowane przez usługi przetwarzania obrazów.

Jakie są korzyści z ładowania przez Stream?

Ładowanie przez Stream integruje obrazy z uwierzytelnionych punktów końcowych bez zapisywania tymczasowych plików. Poprawia to bezpieczeństwo i wydajność. Zalety obejmują:

  • Zmniejszona liczba operacji we/wy na dysku
  • Brak przechowywania w pamięci cache na dysku wizerunków
  • Workflow przetwarzania obrazu w czasie rzeczywistym
  • Lepsze zarządzanie pamięcią dla dużych obrazów
  • Elastyczne opcje źródła obrazów

Jak można zmodyfikować właściwości obrazu?

IronWord dostarcza kompletne metody do dostosowywania właściwości obrazu. Dostosuj te właściwości przed lub po dodaniu obrazu do dokumentu.

Ustawienia Opis Przykład
Width Poziome wymiary obrazu w pikselach image.Width = 500;
Height Pionowe wymiary obrazu w pikselach image.Height = 300;
WrapText Zachowanie zawijania tekstu wokół obrazu image.WrapText = WrapText.Square;
DistanceFromLeft Pomiar odstępu od lewego brzegu w pikselach image.DistanceFromLeft = 10;
DistanceFromRight Pomiar odstępu od prawego brzegu w pikselach image.DistanceFromRight = 10;
DistanceFromTop Pomiar odstępu od górnego brzegu w pikselach image.DistanceFromTop = 15;
DistanceFromBottom Pomiar odstępu od dolnego brzegu w pikselach image.DistanceFromBottom = 15;
Position Informacja o umiejscowieniu przestrzennym (współrzędne X i Y) image.Position = new ElementPosition(50, 100);
Scale Współczynniki proporcji dla osi X i Y image.Scale = new PointF(1.5f, 1.5f);
Translate Współrzędne przesunięcia dla ponownego pozycjonowania image.Translate = new PointF(20, 30);

Jak można dostosować szerokość i wysokość?

Zaimplementuj niestandardowe szerokość i wysokość, zmieniając proporcje. Kontroluj, jak obrazy pojawiają się w dokumentach, czy to zachowując proporcje, czy dopasowując się do określonych ograniczeń układu.

:path=/static-assets/word/content-code-examples/how-to/add-image-custom-size.cs
using IronWord;

// initializing docx file
WordDocument doc = new IronWord.WordDocument();

// instantiating image file
IronWord.Models.ImageContent image = new IronWord.Models.ImageContent("sample-image.tiff");

// modifying the aspect ratio by introducing custom width
image.Width = 800;
image.Height = 200;

// AddImage function saving the image
doc.AddImage(image);

// Save and export the file
doc.SaveAs("custom-size-image.docx");
Imports IronWord

' initializing docx file
Dim doc As New IronWord.WordDocument()

' instantiating image file
Dim image As New IronWord.Models.ImageContent("sample-image.tiff")

' modifying the aspect ratio by introducing custom width
image.Width = 800
image.Height = 200

' AddImage function saving the image
doc.AddImage(image)

' Save and export the file
doc.SaveAs("custom-size-image.docx")
$vbLabelText   $csharpLabel
Dokument Word pokazujący obraz laptopa z nakładką tekstową 'Tagged Image File F', pokazującą właściwości obrazu

Co dzieje się z proporcjami?

Niestandardowe wartości szerokości i wysokości nadpisują oryginalne proporcje. Rozciągaj lub kompresuj obrazy, aby dopasować się do wymagań układu, takich jak nagłówki, paski boczne lub elementy o stałej wielkości. Skrajne zniekształcenia mogą wyglądać nieprofesjonalnie. Aby zachować proporcje podczas zmiany rozmiaru, oblicz wymiary proporcjonalne w oparciu o docelowy rozmiar.

Jakie właściwości ustawić najpierw?

Ustaw właściwości w tej kolejności:

  1. Wymiary (szerokość/wysokość) - fundament układu obrazu
  2. Pozycjonowanie (właściwości Odległości) - kontrola nad odstępami i marginesami
  3. Zaawansowane właściwości (skala/przesunięcie) - dostrojenie

To podejście zapewnia, że każda właściwość opiera się logicznie na poprzednich. Niektóre właściwości współdziałają - zawijanie tekstu wpływa na działanie właściwości odległości.

Często Zadawane Pytania

Jak dodać obraz do pliku DOCX w C#?

Z IronWord możesz dodać obrazy do plików DOCX, tworząc instancję ImageContent z ścieżką do pliku obrazu, a następnie używając metody AddImage(). IronWord obsługuje powszechne formaty takie jak JPG, PNG, BMP, TIFF i GIF, co umożliwia łatwe programowe wstawianie obrazów do dokumentów Word.

Jakie formaty obrazów są obsługiwane przy dodawaniu obrazów do dokumentów Word?

IronWord obsługuje wszystkie główne formaty obrazów, w tym pliki .jpg, .png, .bmp, .tiff i .gif. Każdy format zachowuje swoją jakość po wstawieniu - JPEG do fotografii, PNG do grafik z przeźroczystościami, BMP do nieskompresowanej jakości, TIFF do drukowania dokumentów w wysokiej jakości i GIF do prostych animacji (pokazujący tylko pierwszą klatkę).

Czy mogę kontrolować rozmiar i pozycjonowanie obrazów w plikach DOCX?

Tak, klasa ImageContent IronWord pozwala na dostosowanie właściwości obrazu, takich jak szerokość, wysokość i zawijanie tekstu. Możesz modyfikować wymiary i pozycjonowanie przed wstawieniem, dając pełną kontrolę nad tym, jak obrazy będą się prezentować w dokumentach Word.

Jak wstawić obraz w akapicie dla lepszej struktury dokumentu?

IronWord umożliwia wstawianie obrazów jako elementów podrzędnych w akapitach, co zapewnia lepszą hierarchię dokumentu i kontrolę nad zawijaniem tekstu. To podejście integruje obrazy z otaczającym przepływem tekstu i daje bardziej precyzyjne opcje pozycjonowania w porównaniu do dodawania obrazów bez węzła nadrzędnego.

Jaki jest najszybszy sposób na programowe dodanie obrazu do dokumentu Word?

Najszybszą metodą z IronWord jest utworzenie instancji WordDocument, załadowanie obrazu za pomocą new ImageContent('photo.jpg'), wywołanie doc.AddImage(image), i zapisanie dokumentu przy użyciu doc.SaveAs('document-with-image.docx'). Ten prosty czterostopniowy proces obejmuje cały przepływ pracy dotyczący wstawiania obrazów.

Ahmad Sohail
Full Stack Developer

Ahmad to full-stack developer z solidnym fundamentem w C#, Pythonie i technologiach webowych. Ma głębokie zainteresowanie tworzeniem skalowalnych rozwiązań oprogramowania i cieszy się badaniem, jak projektowanie i funkcjonalność spotykają się w rzeczywistych aplikacjach.

Przed dołączeniem do zespołu Iron Software, Ahmad pracował nad projektami ...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 38,043 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronWord
uruchom próbkę zobacz, jak twoje dane stają się dokumentem Word.