iOS:创建PDF时独立修改字体高度、宽度和间距

标签 ios pdf fonts

在 iOS 应用程序中,我需要使用特定的字体,但每个字符都需要更高、更细,并且间距要缩小才能正确适合。是否可以通过编程方式拉伸(stretch)/挤压字体?

最佳答案

当您向 PDF 文件添加文本时,有多种方法可以影响文本的显示方式。最通用的方法(以及可能对您来说实际上足够的方法)是缩放文本矩阵:

void CGContextSetTextMatrix ( CGContextRef c, CGAffineTransform t );

正如@mkl 在评论中提到的,您可以提供一个矩阵,该矩阵将在 Y 方向放大,同时在 X 方向缩小。效果是字母在垂直方向拉伸(stretch)并在水平方向被压扁。

通常我希望您在这种情况下不必触摸间距,因为间距会像其他字符一样被“挤压”在一起。

以防万一,PDF 实际上也提供了一种更改字符间距的方法:

void CGContextSetCharacterSpacing ( CGContextRef context, CGFloat spacing );

虽然 Apple 的描述谈到要在字符之间添加“额外空间”,但 PDF 规范和我怀疑 Apple 的实现结果允许间距值既可以是正数也可以是负数。负值会使字符靠得更近。

关于iOS:创建PDF时独立修改字体高度、宽度和间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30225043/

相关文章:

ios - 如何将按钮添加到 Apple WatchKit Long Look 通知

iphone - 继承 QLPreviewController,在单击 "Home"后重置 navigationItem 上更改的按钮

ios - 不使用renderInContext捕获UIView :

ios - 当我缩放 GMaps 自定义标记 View 时更改位置

pdf - 如何使用pdfbox api根据数字签名的有效性显示不同的图像?

pdf - 用光栅图像替换 PDF 中的矢量图像

ios - 将自定义字体添加到我的 native 应用程序时,iOS 上的 Thin & Light fontWeight 没有区别

php - 在 PHP 中创建 PDF 缩略图并缓存它

java - 如何一次更改已分配字体的多个组件中的字体?

delphi - 通过 installaware 安装我的应用程序后,我必须打开 windows 字体文件夹