.net 如何仅在PDFsharp中加粗某些文本?
我在VB.NET上编程,并根据程序的需要使用PDFsharp库创建PDF页面。现在,我只需要加粗文本的某些部分,但我只知道如何一次加粗整个部分。我该怎么做呢 目前,我用于呈现单词的代码如下:.net 如何仅在PDFsharp中加粗某些文本?,.net,pdfsharp,.net,Pdfsharp,我在VB.NET上编程,并根据程序的需要使用PDFsharp库创建PDF页面。现在,我只需要加粗文本的某些部分,但我只知道如何一次加粗整个部分。我该怎么做呢 目前,我用于呈现单词的代码如下: Dim graph As XGraphics = XGraphics.FromPdfPage(pdfPage) graph.DrawString("Sample Text", New XFont("Arial", 12, FontStyle.Bold), New SolidBrush(Color.Black
Dim graph As XGraphics = XGraphics.FromPdfPage(pdfPage)
graph.DrawString("Sample Text", New XFont("Arial", 12, FontStyle.Bold), New SolidBrush(Color.Black), New RectangleF(X, Y, 700, 30), New XStringFormat())
为常规部分调用
DrawString
,然后为粗体部分调用DrawString
,然后为下一个常规部分调用DrawString
。始终为每个字符串提供正确的位置
您可以查看XTextFormatter
类。它实现了自动换行,但还不支持混合不同的字体样式。它可以让你开始
专业提示:您可以在一个NuGet包中获得MigraDoc和PDFsharp。MigraDoc允许在单个段落中混合使用,自动处理换行符和换页符,还带来了其他好处,如页眉和页脚。为常规部分调用
DrawString
,然后为粗体部分调用DrawString
,然后为下一个常规部分调用DrawString
。始终为每个字符串提供正确的位置
您可以查看XTextFormatter
类。它实现了自动换行,但还不支持混合不同的字体样式。它可以让你开始
专业提示:您可以在一个NuGet包中获得MigraDoc和PDFsharp。MigraDoc允许在单个段落中进行混合,自动处理换行符和分页符,还带来了其他好处,如页眉和页脚。在上面的示例中,如果您希望用粗体字“Text”编写“示例文本”,请执行以下操作:
- 包括MigraDoc+PDFsharp NuGet包,如前面的回复所述
- 用以下代码替换
行(尽管这是C#,抱歉),以使用PDFsharp中现有的graph.DrawString
graph实例,使用MigraDocXGraphics
实例呈现文本段落
var document = new Document(); var section = document.AddSection(); var paragraph = section.AddParagraph(); paragraph.Format.Alignment = ParagraphAlignment.Left; paragraph.Format.Font.Name = "Arial"; paragraph.Format.Font.Size = 12; paragraph.AddText("Sample "); paragraph.AddFormattedText("Text", TextFormat.Bold); var docRenderer = new DocumentRenderer(document); docRenderer.PrepareDocument(); docRenderer.RenderObject(graph, XUnit.FromPoint(X), XUnit.FromPoint(Y), XUnit.FromPoint(700), paragraph);
- 包括MigraDoc+PDFsharp NuGet包,如前面的回复所述
- 用以下代码替换
行(尽管这是C#,抱歉),以使用PDFsharp中现有的graph.DrawString
graph实例,使用MigraDocXGraphics
实例呈现文本段落
var document = new Document(); var section = document.AddSection(); var paragraph = section.AddParagraph(); paragraph.Format.Alignment = ParagraphAlignment.Left; paragraph.Format.Font.Name = "Arial"; paragraph.Format.Font.Size = 12; paragraph.AddText("Sample "); paragraph.AddFormattedText("Text", TextFormat.Bold); var docRenderer = new DocumentRenderer(document); docRenderer.PrepareDocument(); docRenderer.RenderObject(graph, XUnit.FromPoint(X), XUnit.FromPoint(Y), XUnit.FromPoint(700), paragraph);