为有中文需求的客户提供多渠道中文技术支持.

Tue Dec 10, 2024 6:19 am

如果我要在Spire.PDF for Python中添加自定义字体库,对应的字体文件要放在哪里,如何使用

yoki_9980
 
Posts: 2
Joined: Tue Dec 10, 2024 6:15 am

Tue Dec 10, 2024 7:08 am

您好,

感谢您的咨询。

请参考下面的代码:
Code: Select all
from spire.pdf.common import *
from spire.pdf import *

#Create a pdf document
doc= PdfDocument()
#Create one page
page = doc.Pages.Add()
s = "Hello, World"
x = 10.0
y = 10.0

inputFontFile = "/fonts/PT_Serif-Caption-Web-Regular.ttf"
font = PdfTrueTypeFont(inputFontFile, 20.0)

color = PdfRGBColor(Color.get_Black())
textBrush = PdfSolidBrush(color)
#Draw the text
page.Canvas.DrawString(s, font, textBrush, x, y)
#Save the document
doc.SaveToFile(outputFile)
doc.Close()


Sincerely,
Amy
E-iceblue support team
User avatar

amy.zhao
 
Posts: 3050
Joined: Wed Jun 27, 2012 8:50 am

Tue Dec 10, 2024 11:37 am

我尝试引用‘ALIBABA-PUHUITI-HEAVY’字体,但是似乎失败了,我的‘ALIBABA-PUHUITI-HEAVY.TTF’文件应该放在哪个文件目录下,以下是我的代码:
def replace_text1():
pdf = PdfDocument()
# 从指定路径加载一个PDF文件
pdf.LoadFromFile(dir1+"GP00000000001.pdf")

# 获取第一页
page = pdf.Pages.get_Item(0)

# 创建一个 PdfTextFinder 实例
finder = PdfTextFinder(page)

# 创建一个 PdfTextFindOptions 实例并设置搜索选项
options = PdfTextFindOptions()
options.CaseSensitive = True
options.WholeWords = True
finder.Options = options

text = "AB00000000001"
fragments = finder.Find(text)

fragment = fragments[0]
backColor = page.BackgroundColor
if backColor.ToArgb() == 0:
backColor = Color.get_White()

for i in range(len(fragment.Bounds)):
page.Canvas.DrawRectangle(PdfSolidBrush(PdfRGBColor(backColor)), fragment.Bounds[i])


inputFontFile = "ALIBABA-PUHUITI-HEAVY.TTF"
font = PdfTrueTypeFont(inputFontFile, 4.0, PdfFontStyle.Italic, True)
brush = PdfBrushes.get_Black()

stringFormat = PdfStringFormat()
stringFormat.Alignment = PdfTextAlignment.Left
point = fragment.Bounds[0].Location
size = SizeF(fragment.Bounds[-1].Right, fragment.Bounds[-1].Bottom)
rect = RectangleF(point, size)
page.Canvas.DrawString('AB00000000002', font, brush, rect, stringFormat)

pdf.SaveToFile('AB00000000002'.pdf')
pdf.Close()

yoki_9980
 
Posts: 2
Joined: Tue Dec 10, 2024 6:15 am

Wed Dec 11, 2024 2:10 am

您好,

感谢您的反馈。

请问失败只指抛出异常?还是字体在结果PDF文档中没有应用成功?

字体文件的路径是这个字体在您磁盘的地址,比如字体文件在D盘,那这个路径应该是 "D:\\ALIBABA-PUHUITI-HEAVY.TTF"。

我看您定义字体对象font = PdfTrueTypeFont(inputFontFile, 4.0, PdfFontStyle.Italic, True)时设置了斜体样式,请确保您在用的字体文件是支持斜体样式的,这样样式才会有效果。

如果您的字体路径配置正确还是失败的话,请提供下您的字体文件帮助我们调查下这个问题。

Sincerely,
Amy
E-iceblue support team
User avatar

amy.zhao
 
Posts: 3050
Joined: Wed Jun 27, 2012 8:50 am

Thu Dec 19, 2024 9:59 am

您好,

请问您的问题已经解决了吗?如果没有的话,请提供下您的字体文援助我们调查下这个问题。谢谢!

Sincerely,
Amy
E-iceblue support team
User avatar

amy.zhao
 
Posts: 3050
Joined: Wed Jun 27, 2012 8:50 am

Return to 中文技术支持