2009-10-12 19 views
6

Me dieron un archivo que tiene alguna fuente de otro idioma. No pueden descargar la fuente, por lo que quieren que la incruste en el pdf.pdfsharp - font embed?

Ahora, solo tengo un lector de PDF, por lo que no puedo editar ni crear un archivo pdf. así que decidí hacerlo rápidamente en C# .NET usando la biblioteca PDFSharp, pero no puedo entender cómo incorporar fuentes usando pdfSharp?

Además, solo tengo que procesar 1 archivo, así que si conoces una forma de hacerlo manualmente, eso también sería genial.

Respuesta

14

Hay dos formas de hacerlo. Para cada fuente que desea incrustar la siguiente manera:

var options = new XPdfFontOptions(PdfFontEmbedding.Always); 
var font = new XFont("Times New Roman", 12, XFontStyle.Regular, options); 

Entonces, si se utiliza el tipo de letra, que conseguirá incrustado.

Si desea utilizar todas las fuentes en una página para ser embebido puede hacerlo de esta manera:

var page = new PdfPage(); 
var gfx = XGraphics.FromPdfPage(page); 
gfx.MFEH = PdfFontEmbedding.Automatic; 

El segundo enfoque también funciona para todos los tipos que se utilizan en código MigraDoc.

+0

¿Esto significa que las fuentes deben instalarse en el servidor? ¿Hay alguna manera de señalar un archivo de fuente en el FS? –

+0

@JamesReategui Eche un vistazo a la siguiente muestra, ya que se trata de "fuentes privadas": http://www.pdfsharp.net/wiki/PrivateFonts-sample.ashx – ChrFin

+7

¿Qué es 'esto 'en ese ejemplo? –