C#. Конвертация из HTML в DOCX со стилями

Нужно сгенерировать документ Word из HTML строки, для этого пробовал много вариантов, но в целом нашел такой неплохой код:

public byte[] HtmlToWord(string html)
            {
                const string filename = "request.docx";
                if (System.IO.File.Exists(filename)) System.IO.File.Delete(filename);
    
                using (MemoryStream generatedDocument = new MemoryStream())
                {
                    using (WordprocessingDocument package = WordprocessingDocument.Create(
                           generatedDocument, WordprocessingDocumentType.Document))
                    {
                        MainDocumentPart mainPart = package.MainDocumentPart;
                        if (mainPart == null)
                        {
                            mainPart = package.AddMainDocumentPart();
                            new Document(new Body()).Save(mainPart);
                        }
    
                        HtmlConverter converter = new HtmlConverter(mainPart);
                        Body body = mainPart.Document.Body;
    
                        Uri baseImageUrl = new Uri(Request.Url.Scheme + "://" + Request.Url.Authority);
                        converter.BaseImageUrl = baseImageUrl;
    
                        var paragraphs = converter.Parse(html);
                        for (int i = 0; i < paragraphs.Count; i++)
                        {
                            body.Append(paragraphs[i]);
                        }
    
                        mainPart.Document.Save();
                    }
    
                    return generatedDocument.ToArray();
                }
            }

Документ и правда генерится, но такая штука как HtmlConverter все же не идеальное решение(оно банально игнорирует css по документации, и в результате выводится только текст и картинки), других вариантов пока не нашел, сталкивались ли вы с похожей проблемой?


Ответы (0 шт):