Пришло время объявить о добавлении библиотеки C# SVG в нашу линейку продуктов — Aspose.SVG для .NET. Это библиотека классов .NET, которая позволяет программно создавать, редактировать, читать и преобразовывать файлы SVG с помощью C# в приложениях на основе .NET или .NET Core. Давайте быстро пройдемся по методам установки и основным функциям API.
C# .NET SVG API — установка
Aspose.SVG для .NET DLL можно скачать в нашем разделе Загрузки. С другой стороны, вы можете установить его через диспетчер пакетов NuGet или консоль диспетчера пакетов в Visual Studio.
Диспетчер пакетов NuGet
Консоль диспетчера пакетов
PM> Install-Package Aspose.SVG
Теперь давайте взглянем на некоторые основные функции API для работы с файлами SVG.
Создайте файл SVG с помощью C#
Aspose.SVG для .NET позволяет создать пустой файл со структурой SVG. Кроме того, вы также можете создать файл SVG из пользовательской строки. API предоставляет класс SVGDocument для создания файлов SVG, и вы можете в дальнейшем использовать этот объект для заполнения документа элементами SVG. После этого вы можете сохранить файл, используя метод SVGDocument.Save(). В следующих примерах кода показано, как создать файл SVG с нуля.
Создать пустой файл SVG в C#
// Полные примеры и файлы данных см. на странице https://github.com/aspose-svg/Aspose.SVG-for-.NET.
using (var document = new SVGDocument())
{
// сделать некоторые действия над документом здесь...
}
Создайте SVG с пользовательской строкой в C#
// Полные примеры и файлы данных см. на странице https://github.com/aspose-svg/Aspose.SVG-for-.NET.
using (var document = new SVGDocument("<svg xmlns='http://www.w3.org/2000/svg'><circle cx='50' cy='50' r='40'/></svg>", "."))
{
// сделать некоторые действия над документом здесь...
}
Редактировать файлы SVG в C#
Aspose.SVG для .NET также позволяет редактировать файлы SVG для обновления их содержимого. Объектная модель данных API эффективно отображает официальные спецификации SVG для доступа и редактирования узлов SVG и их элементов. В следующем примере кода показано, как редактировать файл SVG на C#.
// Полные примеры и файлы данных см. на странице https://github.com/aspose-svg/Aspose.SVG-for-.NET.
string dataDir = RunExamples.GetDataDir_Data();
using (var document = new SVGDocument(Path.Combine(dataDir, "smiley.svg")))
{
const string @namespace = "http://www.w3.org/2000/svg";
var circle = (SVGCircleElement)document.CreateElementNS(@namespace, "circle");
circle.Cx.BaseVal.Value = 50;
circle.Cy.BaseVal.Value = 50;
circle.R.BaseVal.Value = 40;
var g = document.QuerySelector("g");
g.AppendChild(circle);
Console.WriteLine(g.OuterHTML);
}
Чтение файлов SVG в C#
Если вы хотите прочитать существующий файл SVG, вы можете загрузить его с помощью класса SVGDocument. Просто создайте новый объект и инициализируйте его путем к файлу SVG, как показано в следующем примере кода.
// Полные примеры и файлы данных см. на странице https://github.com/aspose-svg/Aspose.SVG-for-.NET.
string dataDir = RunExamples.GetDataDir_Data();
using (var document = new SVGDocument(Path.Combine(dataDir, "smiley.svg")))
{
// сделать некоторые действия над документом здесь...
}
Преобразование файлов SVG в PSD, XPS или растровые изображения
Вы также можете конвертировать файлы SVG в различные другие форматы файлов. Поддерживаемые преобразования включают в себя:
- SVG в PDF
- SVG в XPS
- SVG в изображение (JPEG, PNG, BMP, GIF, TIFF)
В следующем примере кода показано, как преобразовать файл SVG в PDF на C#.
// Полные примеры и файлы данных см. на странице https://github.com/aspose-svg/Aspose.SVG-for-.NET.
string dataDir = RunExamples.GetDataDir_Data();
using (var document = new SVGDocument(Path.Combine(dataDir, "smiley.svg")))
{
var options = new PdfRenderingOptions()
{
PageSetup =
{
AnyPage = new Page(new Size(500, 500))
}
};
using (var device = new PdfDevice(options, dataDir + "smiley_out.pdf"))
{
document.RenderTo(device);
}
}
Примеры кода преобразования SVG в XPS и SVG в изображение см. на странице Преобразование файлов SVG в C#.
Узнайте больше о .NET SVG API
Вы можете оценить возможности API, загрузив примеры проекта. Дополнительные сведения см. в документации API. Если у вас возникнут какие-либо вопросы или вопросы, сообщите нам об этом через наш форум.