I've tried several methods of embedding a font into a PDF and have had no luck so far.
I'm using a mix of MigraDoc to create a document, then using PDFSharp to draw in some images after the fact and rendering.
Code:
//page setup
var document = new Document();
style = document.Styles["Heading1"];
style.Font.Name = "Clarendon LT Bold";
style.Font.Size = 20;
style.Font.Color = Color.FromRgbColor((byte)255, Color.Parse("0x43545E"));
style.Font.Bold = true;
//page content
var sec = document.AddSection();
var p = sec.AddParagraph("Title In Clarendon", "Heading1");
p.AddLineBreak();
p = sec.AddParagraph("Normal stuff here, in Arial");
p.Style = "Normal";
//render
byte[] bytes;
var pdf = new PdfDocument();
var options = new XPdfFontOptions(PdfFontEmbedding.Always);
var font = new XFont("Clarendon LT Bold", 20, XFontStyle.Regular, options);
var docRenderer = new DocumentRenderer(doc);
docRenderer.PrepareDocument();
for (int p = 1; p <= docRenderer.FormattedDocument.PageCount; p++)
{
var page = pdf.AddPage();
page.Size = PdfSharp.PageSize.Letter;
var g = XGraphics.FromPdfPage(page);
DrawPageHeader(ref docRenderer, ref pdf, g);//draw in a header graphic
docRenderer.RenderPage(g, p);
}
using (var ms = new MemoryStream())
{
pdf.Save(ms, true);
bytes = ms.ToArray();
}
return bytes;
As I said, I've tried 2 or 3 different ways to get the Clarendon font to go with the PDF and work on any computer, but all I can get is for it to show up on a computer that has it installed. It is installed on the server running this code.
Any ideas?