我有一个旧的 Perl 脚本,它生成一个 .pdf 文件,可以打印在穿孔卡上(如 Avery 模板 28878)。我正在将此脚本转换为 Java,并选择使用 iTextPDF 7。到目前为止,我可以毫无问题地生成 10 张“卡片”(使用绝对位置)。
我试图在绝对位置向每个“卡片”添加文本,并根据字体大小的宽度设置该文本的字体大小。
至于字体大小部分,我在旧的 Perl 脚本中执行以下操作,它与 PDF::API2 配合得很好
# Font size 16 width = 184.832
$nameText->font($fonts->{'times'}, $nameFontSize);
while(int($nameText->advancewidth($name)) > 185){
$nameFontSize--;
$nameText->font($fonts->{'times'}, $nameFontSize);
}
Run Code Online (Sandbox Code Playgroud)
为了实际设置绝对位置,我在 Perl 中执行以下操作
my $nameText = $pdfPage->text();
$nameText->translate(($xCoord + 151), ($yCoord + 73));
$nameText->text_center($name);
Run Code Online (Sandbox Code Playgroud)
我一直无法弄清楚如何使用 iTextPDF 7 将其转换为 Java。
那么,我如何使用 iTextPDF 7 将文本设置为绝对位置?
获取该文本对象的当前宽度?