Tag: fonts

C#中的嵌入式资源字体无法正常工作

我在我的资源中嵌入了一个.ttf字体文件(特别是“Amatic Bold”),我使用下面的代码来获取Font。 我试过这篇文章的代码: 如何在我的C#应用​​程序中嵌入字体? (使用Visual Studio 2005) 这是我的实现: static public Font GetCustomFont (byte[] fontData, float size, FontStyle style) { if (_fontCollection == null) _fontCollection = new PrivateFontCollection(); IntPtr fontPtr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(fontData.Length); System.Runtime.InteropServices.Marshal.Copy(fontData, 0, fontPtr, fontData.Length); _fontCollection.AddMemoryFont(fontPtr, fontData.Length); System.Runtime.InteropServices.Marshal.FreeCoTaskMem(fontPtr); return new Font(_fontCollection.Families[0], size, style); } 我这样使用它: Font font = GetCustomFont(Properties.MainResources.Amatic_Bold, 25, System.Drawing.FontStyle.Bold); 字体应如下所示: 问题是字体正在加载但在使用时没有正确显示; 它看起来像一个“Arial”或其他标准字体而不是它应该是什么。 如果我在Windows中安装该字体,它可以工作(我想很明显…) […]

如何使用iTextSharp设置monospaced字体?

这是我到目前为止管理我的字体的方式: BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1250, BaseFont.EMBEDDED, false); Font titleFont = new Font(bf, 20); 现在,我想设置monospaced(固定宽度)字体用于字符串格式化。 我是否必须下载一些ttf文件(正如我正在阅读的那样)或iTextSharp中已包含等宽字体

如何在WinRT应用程序中获取字体的大小(以像素为单位)?

正如标题所述,在.NET 4.5中我们有一个字体类可以给你像素的高度,但在WinRT中怎么样? 我可以使用任何API来获取它使用的像素吗?

计算字符串宽度(以像素为单位)时的奇怪行为,以模拟自动换行

试图在C#中获取字符串宽度来模拟wordwrap和文本的位置(现在用richTextBox编写)。 richTextBox的大小是555×454像素,我使用等宽字体Courier New 12pt。 我尝试了TextRenderer.MeasureText()以及Graphics.MeasureString()方法。 TextRenderer返回的值大于Graphics所以文本通常适合一行,我的代码确定应该包装到其他行。 但是,另一方面,使用Graphics ,我的代码确定特定字符串比原始richTextBox中打印的要短,因此它被错误地包装到下一行。 在调试过程中,我发现计算出的宽度不同,这很奇怪,因为我使用的是等宽字体,所以所有字符的宽度应相同。 但是我从Graphics.MeasureString()得到类似的东西(例如:” – 5.33333254,’S’ – 15.2239571,’\ r’ – 5.328125)。 如何使用C#精确计算字符串宽度,从而模拟自动换行并确定特定的文本位置(以像素为单位)? 使用等宽字体时,为什么不同字符的宽度不同? 注意:我正在开展个人眼动追踪项目,我想确定在实验期间放置特定文本的部分,以便我可以判断用户正在查看哪些文字。 对于前者 在时间t用户正在查看点[256,350] px,我知道在这个地方有方法WriteLine调用。 我的目标视觉刺激是源代码,带有缩进,制表符,行结尾,放置在一些可编辑的文本区域(将来可能是一些简单的在线源代码编辑器)。 这是我的代码: //before method call var font = new Font(“Courier New”, 12, GraphicsUnit.Point); var graphics = this.CreateGraphics(); var wrapped = sourceCode.WordWrap(font, 555, graphics); public static List WordWrap(this string sourceCode, Font font, int […]

C#控制台字体

我无法找出控制台应用程序默认使用哪种字体? 是否保证每个人都有这种字体(运行这个.NET应用程序时)? 想要显示一些unicode字符,并且需要确保它们存在于该字体中。 谢谢

如何在Windows Universal应用程序中使用自定义字体?

就像我的其他Windows Phone 8项目一样,我想使用自定义字体。 但是使用新的通用应用程序架构,我很难将其付诸实施。 我在共享项目中创建了一个“Fonts”文件夹,我将具有Build Action属性的字体文件添加到“Content”。 我还在共享项目中创建了一个“Themes”文件夹,并为其添加了一个ResourceDictionnary(“Generic.xaml”)。 我添加了FontFamily资源: /Fonts/Rex Bold.otf#Rex Bold 我在App.xaml中引用它是这样的: 在我的Windows Phone项目的MainPage.xaml中,我试图像这样使用它: 我确定这是字体的名称,因为这适用于我的一个Windows手机应用程序。 所有这些都很好,因为它适用于色彩资源。 任何人都成功共享字体并使用它,

iTextSharp重复使用Acrofield中嵌入的字体

“iText In Action”中有一些提示,包括设置字体,以及“FontFactory.RegisterDirectories”方法(正如书中所说的那样……一个昂贵的调用)。 但是,就我而言,我想用于新字段的字体已经嵌入到文档中(在现有的Acrofield中)。 不能保证在用户的机器上(或在Web服务器上)存在相同的字体….有没有办法可以注册已经嵌入的字体,以便我可以将它重新用于其他对象? 在下面的代码中,Acrofield“TheFieldIWantTheFontFrom”具有我想要为名为“my_new_field”的字段重用的字体。 任何帮助将不胜感激! using (MemoryStream output = new MemoryStream()) { // Use iTextSharp PDF Reader, to get the fields and send to the //Stamper to set the fields in the document PdfReader pdfReader = new PdfReader(@”C:\MadScience\MSE_030414.pdf”); // Initialize Stamper (ms is a MemoryStream object) PdfStamper pdfStamper = new PdfStamper(pdfReader, output); // […]

如何在PDFSharp中使用私有字体

我试图使用私有文本添加文本到PDF文档,即没有安装在系统上,TrueType字体和麻烦。 我正在使用NuGet的PDFSharp + MigraDoc WPF版本1.32.2608.0。 我在论坛和StackOverFlow上找到了很多项目。 最新的是这篇stackoverflow文章,它引用了PdfSharp站点上的这个例子 。 但是,此示例包含以下代码: this.fontFamilies.Add(key, fontFamily); 在第22行,但我在汇编中找不到任何对fontFamilies的引用。 因此,我遵循了看起来很好的例子 ,但它对我不起作用。 当我使用这种方法时,我可以成功添加字体但是当我来使用命令时: var font = new XFont(fontStyle.Name, new XUnit(fontStyle.SizePt, XGraphicsUnit.Point), XFontStyle.Regular, _fontOptions); 其中fontStyle.Name是前面没有#的字体名称。 此时,PdfSharp在PdfSharp.Drawing命名空间内的private void Initialise()方法内部中断。 此时检查Initialise方法中的变量它具有: 找到了字体系列,即this.family != null 找到了字体,即this.typeface != null 我假设它在线上断开if (!typeface2.TryGetGlyphTypeface(out typeface))但我不能确定。 注意:我已经尝试了.ttf和.otf字体无济于事。 有人能指出我正确的方向吗? 更新 最后我换成了PDFSharp WPF 1.50 beta,因为它的字体处理要好得多。 在我的第二个问题上看到这篇SOpost ,以及解决我问题的新字体解析器的信息。 现在一切都很好。

如何将DataGridView单元格的字体设为特定颜色?

此代码适用于使单元格的背景为蓝色: DataGridViewRow dgvr = dataGridViewLifeSchedule.Rows[rowToPopulate]; dgvr.Cells[colName].Style.BackColor = Color.Blue; dgvr.Cells[colName].Style.ForeColor = Color.Yellow; …但ForeColor的效果并不是我所期望/希望的:字体颜色仍然是黑色,而不是黄色。 如何将字体颜色设置为黄色?

确定指定字体的确切字形高度

我经常搜索并尝试了很多,但我找不到合适的解决方案。 我想知道有没有办法确定指定字体的确切字形高度 ? 我的意思是在这里,当我想确定DOT字形的高度时,我应该收到较小的高度而不是带有填充或字体大小的高度。 我已经找到了确定精确字形宽度的解决方案(我已经使用了第二种方法),但它不适用于高度。 更新:我需要.NET 1.1的解决方案