[C#] [原创] Aspose.wordでWordファイルのフォント名とサイズを変更するにはどうすればよいですか?

単語ファイルがあるので、aspose.wordを使用してすべてのテキストフォントサイズとフォント名を変更したいのですが、どうすればよいですか?この状況ではDocumentBuilderを使用できないと思います。DocumentBuilderはテキストを生成するときにフォントを設定できます。しかし今、私はワードファイルを持っています、それは汚染されたテキストを持っています!

 

次のコードに基づいてロジックを構築し、Word文書全体のフォント名とフォントサイズを変更できます。

Document doc = new Document("C:\\temp\\input.docx");
FontChanger changer = new FontChanger();
doc.Accept(changer);
doc.Save("C:\\temp\\21.1.docx");

class FontChanger : DocumentVisitor
{
    ///
    /// Called when a FieldEnd node is encountered in the document.
    ///
    public override VisitorAction VisitFieldEnd(FieldEnd fieldEnd)
    {
        //Simply change font name
        ResetFont(fieldEnd.Font);
        return VisitorAction.Continue;
    }

    ///
    /// Called when a FieldSeparator node is encountered in the document.
    ///
    public override VisitorAction VisitFieldSeparator(FieldSeparator fieldSeparator)
    {
        ResetFont(fieldSeparator.Font);
        return VisitorAction.Continue;
    }

    ///
    /// Called when a FieldStart node is encountered in the document.
    ///
    public override VisitorAction VisitFieldStart(FieldStart fieldStart)
    {
        ResetFont(fieldStart.Font);
        return VisitorAction.Continue;
    }

    ///
    /// Called when a Footnote end is encountered in the document.
    ///
    public override VisitorAction VisitFootnoteEnd(Footnote footnote)
    {
        ResetFont(footnote.Font);
        return VisitorAction.Continue;
    }

    ///
    /// Called when a FormField node is encountered in the document.
    ///
    public override VisitorAction VisitFormField(FormField formField)
    {
        ResetFont(formField.Font);
        return VisitorAction.Continue;
    }

    ///
    /// Called when a Paragraph end is encountered in the document.
    ///
    public override VisitorAction VisitParagraphEnd(Paragraph paragraph)
    {
        ResetFont(paragraph.ParagraphBreakFont);
        return VisitorAction.Continue;
    }

    ///
    /// Called when a Run node is encountered in the document.
    ///
    public override VisitorAction VisitRun(Run run)
    {
        ResetFont(run.Font);
        return VisitorAction.Continue;
    }

    ///
    /// Called when a SpecialChar is encountered in the document.
    ///
    public override VisitorAction VisitSpecialChar(SpecialChar specialChar)
    {
        ResetFont(specialChar.Font);
        return VisitorAction.Continue;
    }

    private void ResetFont(Aspose.Words.Font font)
    {
        font.Name = mNewFontName;
        font.Size = mNewFontSize;
    }

    private string mNewFontName = "Times New Roman";
    private double mNewFontSize = 8;
}

おすすめ

転載: blog.csdn.net/FL1623863129/article/details/113124222