gpt4 book ai didi

java - 调整 iText 中的 TextMatrix

转载 作者:行者123 更新时间:2023-12-01 14:06:29 26 4
gpt4 key购买 nike

我生成了一个包含一行字符M的PDF。每个M都有一致的宽度,但每个M之间的距离在变化:第一对是2px,第五个是3px,然后接下来的四个是2px,第十个是3px,等等

由于我的代码中的任何 M 或中间的任何空格绝对没有差异,因此唯一的结论是某些宽度值无法在坐标系中正确缩放,经常生成额外的像素。

这就是 PDF 计算绘制字形时水平移动的距离的方法:

enter image description here

计算标准 96DPI 显示器时,每个像素由 0.75 个单位表示(经过彻底检查和测试)。

考虑到这一点,我需要确保 Tx 值可以被 0.75 整除。

这是我所知道的:

  1. w0 是一个源自 widths 数组 (widths[]) 的整数
  2. Tfs 是一个能被 0.75 整除的数字(由我设置)
  3. Th 为 100(默认)
  4. Tc 和 Tw 均为 0(默认)

因此 Tj/1000 需要是一个整数,这意味着 Tj 需要能被 1000 整除。

一种方法是获取并调整 Tj 值。另一种方法是在计算出 Tx 值后将其更改为可被 0.75 整除的最接近值。

如何在 iText 中执行此操作?

或者我的整个假设都是错误的?

来源:link (page 252)

最佳答案

我之前见过这个问题,我真的不明白你想要实现什么目标。如果您以相等的距离绘制 M 字母,那么它们将以相等的距离显示。您遇到的问题是显示技术的限制,是由像素拟合引起的。
创建以 96dpi 完美显示像素的 PDF 文件并不是 PDF 格式的设计目的。即使您创建的 PDF 文件在一个查看器中按预期显示,您也不能保证它在另一个查看器中也能以相同的方式显示。

关于java - 调整 iText 中的 TextMatrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18860450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com