gpt4 book ai didi

java - 添加到 PDF 的文本显示为粗体/粗糙

转载 作者:行者123 更新时间:2023-12-01 13:49:47 24 4
gpt4 key购买 nike

我在现有 PDF 内容页面上添加/替换了一些页码,但文本显示为粗体或粗糙。无论如何都是不对的,而且我似乎无法修复它!

这就是我的意思:

enter image description here

右边的数字是我要替换的现有页码,文本很好。左边的数字是我在 Java 中使用 iText 添加的页码。

这是代码:

private static void fixTOCPageNumbers(int i, PdfContentByte content, List<Section> sections)
throws DocumentException, IOException {

int xPositionRec;
int yPositionRec;
int xPositionText;
int yPositionText;
int xOffset = 0;
int yOffset = 0;

content.saveState();
content.setColorStroke(new Color(77,77,77));

content.beginText();
content.setFontAndSize(BaseFont.createFont("fonts/LTe50327.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED), 10f);

int count = 5;

for(int j = 4; j <= sections.size() - 2; j++)
{
int startPageIndex = sections.get(j).GetStartPageIndex();
int endPageIndex = sections.get(j).GetEndPageIndex();

xPositionRec = 281;
yPositionRec = 385;
xPositionText = 266;
yPositionText = 386;

if(j > 6)
{
yPositionRec = 195;
yPositionText = 196;
}

for(int k = startPageIndex; k <= endPageIndex; k++)
{
content.rectangle(xPositionRec+xOffset,yPositionRec-yOffset,12,12);
content.setRGBColorFill(255,255,255);
content.showTextAligned(PdfContentByte.ALIGN_CENTER, String.format("%d", count), xPositionText+xOffset, yPositionText-yOffset, 0);
content.setRGBColorFill(77,77,77);
//content.fillStroke();
yOffset += 18;

count++;
}

yOffset = 0;

if(j > 6)
{
xOffset += 229;
}
else if(j == 6)
{
xOffset = 0;
}
else
{
xOffset += 230;
}
}

xOffset = 0;
yOffset = 0;

content.restoreState();
content.endText();
}

我做错了什么吗?这是我第一次使用 iText,并且代码库最初不是我的。

任何帮助将不胜感激!

最佳答案

您可以像这样模拟粗体:

C#

cb.BeginText();
cb.SetFontAndSize(font, 11F);

cb.SetCharacterSpacing(1F);
// Fill color (stroke fill)
cb.SetRGBColorFill(0, 0, 0);
cb.SetLineWidth(0.5F);
// Fill stroke simulate bold
cb.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE);

cb.SetTextMatrix(x, pageSize.Height - y);
cb.ShowTextAligned(PdfContentByte.ALIGN_CENTER, s, (pageSize.Width / 2F), pageSize.Height - y, 0);

cb.EndText();

关于java - 添加到 PDF 的文本显示为粗体/粗糙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20051530/

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