Mono.Cairo rysowanie z zapisem do pdf

Wynalazłem taką bibliotekę do grafiki wektorowej,
jakaś ważna w linuxach w ogóle i wrapper .net robi do niej mono.
http://www.mono-project.com/Mono.Cairo
http://www.mono-project.com/Mono.Cairo_Cookbook
http://www.mono-project.com/Mono.Cairo_Tutorial

łatwo z jej pomocą coś narysować np. na pdf,
działa też w Visual Studio z .net40
nawet miałem ją w referencjach widzianych z Visual Studio
nie wiem już z jakiej okazji

Zrzuty z projektem Visual Studio generującym pdf:

cairo-proj

using Cairo;

namespace CairoPdf
{
class PdfDrawProg
{

static void Main()
{
using (var surface = new PdfSurface("out.pdf", 595.275, 841.889))
{
using (var gr = new Context(surface))
{
Draw(gr);
gr.ShowPage();
}
surface.Finish();
}

}

private static void Draw(Context gr)
{
gr.Translate(0,20);
gr.MoveTo(new PointD(100, 200));
gr.CurveTo(new PointD(100, 100), new PointD(100, 100),
new PointD(200, 100));
gr.CurveTo(new PointD(200, 200), new PointD(200, 200),
new PointD(100, 200));
gr.ClosePath();

gr.Save();
var pat = new LinearGradient(100, 200, 200, 100);
pat.AddColorStop(0, new Color(0, 0, 0, 1));
pat.AddColorStop(1, new Color(1, 0, 0, 1));
gr.Pattern = pat;

gr.FillPreserve();
gr.Restore();

gr.Color = new Color(0, 0, 0);

gr.LineWidth = 3;
gr.Stroke();
}

}
}


cairo-pdf

Leave a comment