问题标签 [kerning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
682 浏览

c# - Silverlight 字母间距

在 Silverlight 中管理字母间距、字距调整或跟踪的最简单方法是什么?

我目前在 Arial 中有大标题,只是字母之间的空间太大。

谢谢

0 投票
3 回答
1313 浏览

java - 逐字符绘制文本时的字距问题

我正在尝试逐个字符地绘制字符串以向由文本组成的形状添加照明效果。

问题是,当这两个字符作为字符串打印时,一个字符的宽度并不是它与另一个字符的实际距离。有没有办法在graphics2d中获得正确的距离?

0 投票
7 回答
1541 浏览

.net - 用于排版文档(PDF 或类似文件)的 .NET 库?

编辑:更好的解释: 在为这个问题设置赏金之前,我想更清楚地说明我需要什么:

我需要 .NET 库来生成可打印文档。用户应该能够使用我的应用程序或使用外部工具(如 Adob​​e Acrobat 阅读器)打印他们看到的完全相同的文档。它不一定是生成PDF文档的库,任何满足上述条件的文档格式都可以。

我需要该库来支持以下场景:

场景一:

  1. 我以某种字体和颜色创建文本。
  2. 如果打印此文本,我向图书馆询问宽度。
  3. 我根据来自 2. 的信息计算此文本的位置(页面上的 [X,Y] 坐标),并让库在页面上的此位置打印。

场景二:

  1. 我创建了一个文本,其中的某些部分用上标表示。文本的所有部分(正常和上标)都使用相同(但可变)的字体。
  2. 我问图书馆如果这个文本在打印时的宽度是多少。我得到了正确的答案,它也考虑了普通文本和上标之间的字距调整。
  3. 我在应打印此文本的页面上计算位置([X,Y] 坐标)(使用步骤 2 中的宽度)。我让图书馆在这个位置打印它。打印在页面上的宽度与上一步中库返回的宽度完全相同。

第二种情况的注意事项:我有一些上标部分的文本 - 示例AAA{v-superscript text}BBB{}大括号中的文本是上标)。库需要能够使用正确的kerning打印此文本。A如果没有正确的字距调整,last和 first superscript之间的间距将与vlast superscriptt和 first之间的间距相同B。对于用户来说,看起来A和上标之间有一个空格,v但在最后一个上标字母之后没有空格。所以文字看起来很难看。如果库要正确处理此问题,它将有方法AAA{v-superscript text}BBB一次打印整个文本,并指定其中一部分为上标。然后它将在普通文本和上标之间使用正确的字距调整。

场景 3:

  1. 我想在页面的确切点上打印由线条、圆圈、实心圆圈、字母和贝塞尔曲线组成的图片。我需要指定线条和圆圈的宽度。所有形状都需要以像素精度打印。

该库应该是免费的,而不是 GPL(LGPL 可以)。有什么可以让我做我需要的事情吗?可以用 iTextSharp(LGPL 而非 AGPL 的 4.1.6 版)来完成吗?或者也许是固定文件?感谢您的任何建议。


原始问题:

我需要在 .NET (C#) 应用程序中为用户排版复杂的文档。这些文件的主要用途是打印。

文档将包含文本和简单生成的图形。文本和图形的布局将很复杂,需要计算(换句话说,文档中的文本位置需要由我的代码控制,它不会由所选库自动完成)。

这是我的 API 要求:

  1. 返回给定字符串和给定字体的确切宽度的函数,其中文本应该出现
  2. 将文本定位到页面上的确切位置的能力
  3. 在超级脚本中包含部分文本
  4. 获取某些文本的确切宽度的函数,该文本的某些部分在上标中
  5. 添加图片的能力甚至更好的选择来绘制简单的图形(给定厚度的线,给定半径/直径的实心圆)

它不必是用于创建 PDF 文档的库 - 任何其他“所见即所得”的文档格式也可以。如果有可以显示此类文档的 WPF 组件,那将是一个优势。我知道有 iTextSharp,但用 iTextSharp 实现 4. 要求并不容易。当然,一些满足上述要求的 PDF 生成库也将是很好的解决方案。

感谢您的任何建议,我也很乐意提供详细信息或更清晰的解释。

0 投票
0 回答
829 浏览

.net - 获取.NET中给定字符对和字体的字距偏移值

如何char在 .NET 中对 2 个给定 s 之间的空间进行字距调整?在 WPF 应用程序中?

例如,假设我的字体Times New Roman大小22bold. A字符和将使用什么字距调整v?如何在我的 WPF 应用程序中获取此值?

如果你徘徊我为什么需要它:我想让HB 回答我的问题Create guitar chords editor in WPF to work with kerning

0 投票
4 回答
20795 浏览

wpf - 如何在 WPF 文本框中指定字母间距或字距?

我想修改 WPF TextBox 中字符之间的间距。
类似于letter-spacing: 5pxCSS 中可用的东西。
我认为在 XAML 中是可能的;最简单的方法是什么?

我找到了“ GlyphRun 对象和字形元素简介”文档,发现它非常无用。

这是该页面的代码示例:

相同的文档页面对属性的作用给出了这个“解释” Indices

在此处输入图像描述

我不知道这意味着什么。我也不确定索引是正确的——代码中的注释谈到了我不关心的“字符宽度”。我想调整字符之间的宽度。

此外,没有关于如何将Glyphs元素应用于 TextBox 的示例。当我尝试它时,我的 WPF 测试应用程序崩溃了。


我想要做的是稍微增加 WPF 文本框中绘制的字符之间出现的空白空间。文本的长度和内容会有所不同。Indicies每次有新角色时我都必须修改属性吗?有没有办法说“每个角色都比平时多 20% 的空间”。

有谁能够帮助我?

0 投票
1 回答
1088 浏览

php - GD 和 php 5.3 中的字距问题

知道这个问题之前已经在 PHP 更新字距调整问题中解决了 imagettftext() 和 imagefttext() 函数 ,但没有解决方案;

PHP5.3 在打印文本时似乎有字距问题:

查看以下示例中的“x”(字体:Ubuntu-M.ttf):

PHP5.2,ubuntu(好)

在此处输入图像描述

PHP5.3.2,ubuntu(更糟糕的是,x 是肥大的)

在此处输入图像描述

PHP5.3.2,MAMP OSX(可怕)

在此处输入图像描述

有什么解决办法吗?

安装了 5.3.6 的任何人都可以尝试一下吗?

问候,//t

0 投票
2 回答
1287 浏览

font-face - 你能用 Cufon 调整单个字母之间的字距吗?

嘿所有.. 就像听起来一样。

目前使用 @fontface、lettering.js 和 kern.js 来使这个词变得漂亮和可扩展。

很乐意做所有这些,并在上面扔一个漂亮的渐变。

谢谢!

0 投票
2 回答
16553 浏览

wpf - 如何在文本框中更改 XAML 中的字符间距?

如何更改文本块内 WPF 应用程序中的字符间距。也称为字距调整或字符跟踪。

0 投票
2 回答
683 浏览

vb.net - 在 vb.net 中更改控制台文本字距

我试图让每个字母本质上都是一个“正方形”,所以在 vb.net 中,每个字母的高不比它的宽高。这可能吗?如果是这样,怎么做?我似乎找不到任何东西,我一直在努力寻找。

谢谢您的帮助!

0 投票
1 回答
2839 浏览

c# - Winform 字符间距

我正在尝试使用 Graphics.DrawString 和 TextRenderer.DrawText 在固定矩形上放置一些具有可变字符数的字符串。

然而,即使使用 GDI+ 包装方法,我对结果也不满意:我需要控制字体字距调整(或字符串字符间距),以便有机会包装大量字符串。

我阅读了有关 FontStretches 的信息,但我不知道如何在 winform 中使用。另一种方法是 Typography.SetKerning 但我再次对使用它一无所知。

有人可以帮忙吗?!

第 2 轮:我知道这可能很难,Win32 API 支持自由类型,这可能是问题的解决方案。实际上,我的目标是在 .NET 中做类似于“http://stackoverflow.com/questions/4582545/kerning-problems-when-drawing-text-character-by-character”的事情。请注意,我正在研究预先形成的阿拉伯语字符串,而不是用户字符输入。我的问题是:(1)确定哪个库具有所需的字距调整函数(很可能是 gdi32.dll),(2)构建 ac# 安全环境来处理 dll 调用,(3)实现对在 c# 中工作的 dll 的调用。

有人可以帮忙吗?

谢谢你的回答。