Конвертировать SVG-поток в png или jpg

Я хотел бы использовать iText для добавления изображений в некоторые PDF-документы с помощью C#.

Моя проблема в том, что изображения сохраняются в виде потока (fx. M47,33 L47,34 L47,37 L47,40 L47 и т. д.) в базе данных.

Я не могу понять, как преобразовать это в PNG или JPEG, чтобы я мог добавить их в PDF-документы.

Может ли кто-нибудь сказать мне, как сделать это преобразование, или если это можно сделать непосредственно в iText?


person Christian Tang    schedule 26.03.2012    source источник
comment
Этот вопрос связан: stackoverflow.com/questions/1525421/drawing-svg-in-net-c   -  person Andre    schedule 26.03.2012


Ответы (2)


Преобразование изображений SVG в png в c#

person daryal    schedule 26.03.2012
comment
В связанной статье описывается интересный способ преобразования, если вы не возражаете против вызова Inkscape через его интерфейс командной строки (что создает дополнительные точки отказа для вашего приложения). - person Andre; 26.03.2012
comment
Как описано в комментарии ниже, я не могу установить стороннее программное обеспечение на сервер клиента. Насколько я понимаю, это исключает InkScape? - person Christian Tang; 26.03.2012

Вы можете использовать http://librsvg.sourceforge.net/

Насколько я вижу, у него нет привязки C#, но его можно использовать через P/Invoke.

РЕДАКТИРОВАТЬ: у iText, похоже, тоже есть некоторое преобразование: http://itextpdf.com/examples/iia.php?id=263

person Andre    schedule 26.03.2012
comment
Как упоминалось в вопросе, я использую С# для своего приложения. Пример из iText написан на Java. - person Christian Tang; 26.03.2012
comment
На данный момент мне просто нужно что-то запустить на моем настольном ПК (доказательство концепции). Окончательная программа будет работать в приложении ASP.NET на сервере заказчика. Я также не смогу установить какое-либо стороннее программное обеспечение на сервер, поэтому я думаю, что InkScape (упомянутый во многих руководствах) не вариант. - person Christian Tang; 26.03.2012
comment
Извините за образец Java ;-) А как насчет использования librsvg с P/Invoke? - person Andre; 26.03.2012
comment
Еще не добрался до librsvg. Librsvg кажется большой работой для достижения простой цели. Я нашел несколько руководств, в которых для преобразования используется C# MemoryStream. Я не могу заставить ни один из этих примеров работать. Это странно, потому что я даже нашел это в MSDN. - person Christian Tang; 26.03.2012