Spire.PDF is a professional PDF library applied to creating, writing, editing, handling and reading PDF files without any external dependencies. Get free and professional technical support for Spire.PDF for .NET, Java, Android, C++, Python.

Tue Feb 11, 2025 2:46 am

请问:当字体不包含斜体样式时,如何实现伪斜体?

donpps00
 
Posts: 4
Joined: Mon Feb 10, 2025 3:42 am

Tue Feb 11, 2025 3:49 am

你好,

如果你系统安装的字体没有包含斜体样式,或者你无法提供此字体斜体样式文件,使用我们的产品无法实现此字体的伪斜体。你可以考虑使用下面的方式使用Spire内置的字体(ST-Song),这可以实现斜体。
Code: Select all
PdfCjkStandardFont cjkFont = new PdfCjkStandardFont(PdfCjkFontFamily.SinoTypeSongLight, 20, PdfFontStyle.Italic);
page.Canvas.DrawString("这是字体测试", cjkFont, PdfBrushes.Red, new PointF(20, 60));

Sincerely,
Nina
E-iceblue support
User avatar

Nina.Tang
 
Posts: 1290
Joined: Tue Sep 27, 2016 1:06 am

Tue Feb 11, 2025 9:54 am

deepseek给出的建议
Code: Select all
var pointF = New PointF(474.22f, 174.43f);
var pdfTrueTypeFont = new PdfTrueTypeFont(new Font("FangSong", 14.04f, FontStyle.Italic), true);
var brush = new PdfSolidBrush(new PdfRGBColor(128, 128, 128));
var pdfStringFormat = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);

page.Canvas.Save();
page.Canvas.TranslateTransform(pointF.X, pointF.Y); //平移画布
page.Canvas.SkewTransform(0f, -10f); //方法的第一个参数控制水平方向的倾斜角度,第二个参数控制垂直方向的倾斜角度。通过调整这些参数,可以模拟出斜体的效果
page.Canvas.DrawString(content, pdfTrueTypeFont, brush, 0, 0, pdfStringFormat);
page.Canvas.Restore();

donpps00
 
Posts: 4
Joined: Mon Feb 10, 2025 3:42 am

Wed Feb 12, 2025 2:07 am

对的,通过倾斜画布可以实现你想要的效果,感谢你提供的解决方案 :)

Sincerely,
Nina
E-iceblue support team
User avatar

Nina.Tang
 
Posts: 1290
Joined: Tue Sep 27, 2016 1:06 am

Return to Spire.PDF