Я использую PdfSharp/MigraDoc из нескольких недель и перед тем, как ответить именно на ваш вопрос, я прочитал его исходный код, свободно предоставляемый.
Короткий ответ: НЕВОЗМОЖНО
долго ответ: Единственная часть по стилю рассмотренном AddFormattedText(string text, string style)
является частью характера. Тогда Shading
, который является частью ParagraphFormat
, не может быть применен и визуализирован PdfSharp/MigraDoc.
Кодируемое Ответ:
public FormattedText AddFormattedText(string text, string style)
{
FormattedText formattedText = AddFormattedText(text);
formattedText.Style = style;
return formattedText;
}
internal class FormattedTextRenderer : RendererBase
...
/// <summary>
/// Renders the style if it is a character style and the font of the formatted text.
/// </summary>
void RenderStyleAndFont()
{
bool hasCharacterStyle = false;
if (!this.formattedText.IsNull("Style"))
{
Style style = this.formattedText.Document.Styles[this.formattedText.Style];
if (style != null && style.Type == StyleType.Character)
hasCharacterStyle = true;
}
object font = GetValueAsIntended("Font");
if (font != null)
{
if (hasCharacterStyle)
this.rtfWriter.WriteControlWithStar("cs", this.docRenderer.GetStyleIndex(this.formattedText.Style));
RendererFactory.CreateRenderer(this.formattedText.Font, this.docRenderer).Render();
}
}
Я надеюсь, что это может помочь вам. Davide.
Это добавляет новый абзац. Я ищу способ изменить затенение для части абзаца, а не всего абзаца. – theburningmonk
Решили проблему? Вы можете просто использовать обходной путь и попытаться создать новый абзац, содержащий одно слово или просто «ваш раздел», а затем соответствующим образом вписать новый абзац. – f1v3