---
title: "Save a file from the annotation manager in C# .NET | Nutrient .NET SDK"
canonical_url: "https://www.nutrient.io/guides/dotnet/save-a-file/annotation-to-jpg/"
md_url: "https://www.nutrient.io/guides/dotnet/save-a-file/annotation-to-jpg.md"
last_updated: "2026-05-21T17:12:02.215Z"
description: "Learn how to save annotations in various formats like JPG, PDF, TIFF, and XMP with our comprehensive guide for .NET developers."
---

# Save a file from the annotation manager in C#

### To JPG

[To JPG](https://www.nutrient.io/guides/dotnet/save-a-file/annotation-to-jpg.md)

### To PDF

[To PDF](https://www.nutrient.io/guides/dotnet/save-a-file/annotation-to-pdf.md)

### To TIFF

[To TIFF](https://www.nutrient.io/guides/dotnet/save-a-file/annotation-to-tiff.md)

### To XMP

[To XMP](https://www.nutrient.io/guides/dotnet/save-a-file/annotation-to-xmp.md)

To save a document handled by the [`AnnotationManager` class](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.AnnotationManager.html) to JPEG with GdPicture/XMP annotation support, use the [`SaveDocumentToJPEG` method](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.AnnotationManager~SaveDocumentToJPEG.html).

`SaveDocumentToJPEG` overloads:

- `SaveDocumentToJPEG(string FilePath, int Quality)`

- `SaveDocumentToJPEG(Stream Stream, int Quality)`

Parameters:

- `FilePath` or `Stream` — Output destination.

- `Quality` — JPEG quality from `0` (higher compression, lower quality) to `100` (lower compression, higher quality).

`SaveDocumentToJPEG` returns a `GdPictureStatus`, which should be checked.

To permanently include annotations in page content, call the [`BurnAnnotationsToPage` method](https://www.nutrient.io/api/gdpicture/GdPicture.NET.14~GdPicture14.AnnotationManager~BurnAnnotationsToPage.html) before saving.

To save a JPEG image from an `AnnotationManager` instance, use the following code:

### C#

```csharp

using GdPicture14;
using GdPicture14.Annotations;
using System;
using System.Drawing;

using AnnotationManager annotationManager = new AnnotationManager();

GdPictureStatus status = annotationManager.InitFromFile(@"C:\temp\source.jpg");
if (status!= GdPictureStatus.OK)
{
    Console.WriteLine($"InitFromFile failed: {status}");
    return;
}

if (annotationManager.PageCount == 0)
{
    Console.WriteLine("Document contains no pages.");
    return;
}

status = annotationManager.SelectPage(1);
if (status!= GdPictureStatus.OK)
{
    Console.WriteLine($"SelectPage failed: {status}");
    return;
}

AnnotationRubberStamp stamp = annotationManager.AddRubberStampAnnot(
    Color.Red,
    0.5f,
    0.5f,
    2,
    1,
    "APPROVED");

if (stamp == null)
{
    Console.WriteLine("AddRubberStampAnnot failed.");
    return;
}

stamp.Rotation = 20;

status = annotationManager.SaveAnnotationsToPage();
if (status!= GdPictureStatus.OK)
{
    Console.WriteLine($"SaveAnnotationsToPage failed: {status}");
    return;
}

status = annotationManager.BurnAnnotationsToPage(false);
if (status!= GdPictureStatus.OK)
{
    Console.WriteLine($"BurnAnnotationsToPage failed: {status}");
    return;
}

status = annotationManager.SaveDocumentToJPEG(@"C:\temp\output.jpg", 100);
if (status!= GdPictureStatus.OK)
{
    Console.WriteLine($"SaveDocumentToJPEG failed: {status}");
}

```

### VB.NET

```vb

Imports GdPicture14
Imports GdPicture14.Annotations
Imports System.Drawing

Using annotationManager As New AnnotationManager()
    Dim status As GdPictureStatus = annotationManager.InitFromFile("C:\temp\source.jpg")
    If status <> GdPictureStatus.OK Then
        Console.WriteLine($"InitFromFile failed: {status}")
        Return
    End If

    If annotationManager.PageCount = 0 Then
        Console.WriteLine("Document contains no pages.")
        Return
    End If

    status = annotationManager.SelectPage(1)
    If status <> GdPictureStatus.OK Then
        Console.WriteLine($"SelectPage failed: {status}")
        Return
    End If

    Dim stamp As AnnotationRubberStamp = annotationManager.AddRubberStampAnnot(
        Color.Red,
        0.5F,
        0.5F,
        2,
        1,
        "APPROVED")

    If stamp Is Nothing Then
        Console.WriteLine("AddRubberStampAnnot failed.")
        Return
    End If

    stamp.Rotation = 20

    status = annotationManager.SaveAnnotationsToPage()
    If status <> GdPictureStatus.OK Then
        Console.WriteLine($"SaveAnnotationsToPage failed: {status}")
        Return
    End If

    status = annotationManager.BurnAnnotationsToPage(False)
    If status <> GdPictureStatus.OK Then
        Console.WriteLine($"BurnAnnotationsToPage failed: {status}")
        Return
    End If

    status = annotationManager.SaveDocumentToJPEG("C:\temp\output.jpg", 100)
    If status <> GdPictureStatus.OK Then
        Console.WriteLine($"SaveDocumentToJPEG failed: {status}")
    End If
End Using

```
---

## Related pages

- [Save a file from the annotation manager in C#](/guides/dotnet/save-a-file/annotation-to-pdf.md)
- [Save images in C#](/guides/dotnet/save-a-file/imaging-bitmap.md)
- [Save a file from the annotation manager in C#](/guides/dotnet/save-a-file/annotation-to-tiff.md)
- [Save images in C#](/guides/dotnet/save-a-file/imaging-vector.md)
- [Save images in C#](/guides/dotnet/save-a-file/imaging.md)
- [Save images in C#](/guides/dotnet/save-a-file/imaging-ftp.md)
- [Save a file from the annotation manager in C#](/guides/dotnet/save-a-file/annotation-to-xmp.md)
- [Save images in C#](/guides/dotnet/save-a-file/imaging-byte-array.md)
- [Save images in C#](/guides/dotnet/save-a-file/imaging-remote-url.md)
- [Save images and PDF files in C#](/guides/dotnet/save-a-file.md)
- [Save PDF files in C#](/guides/dotnet/save-a-file/pdf-incremental.md)
- [Save PDF files in C#](/guides/dotnet/save-a-file/pdf-local-storage.md)
- [Save PDF files in C#](/guides/dotnet/save-a-file/pdf.md)
- [Save PDF files in C#](/guides/dotnet/save-a-file/pdf-stream.md)
- [Save PDF files in C#](/guides/dotnet/save-a-file/pdf-incremental-to-stream.md)

