簡體   English   中英

使用MigraDoc生成DOC或DOCX

[英]Generating a DOC or DOCX using MigraDoc

我正在一個需要創建Word文件的項目中工作。 為此,我將MigraDoc庫用於C#。

使用此庫,我可以通過編寫以下代碼輕松生成RTF文件:

Document document = CreateDocument();
RtfDocumentRenderer rtf = new RtfDocumentRenderer();
rtf.Render(document, "test.rtf", null);
Process.Start("test.rtf");

但是要求現在要求我獲取DOC或DOCX文件而不是RTF文件。 有沒有一種使用MigraDoc生成DOC或DOCX文件的方法? 如果是這樣,我該如何實現?

MigraDoc無法生成DOC或DOCX文件。 由於MigraDoc是開源的,因此如果您有足夠的知識和時間,則可以為DOCX添加渲染器。

MigraDoc本身不能生成DOC / DOCX,但是也許您可以在生成RTF文件后調用外部轉換工具。
我不知道任何這樣的工具。 Word可以快速打開RTF,到目前為止,我們的客戶從未抱怨過要獲得RTF,而不是DOC或DOCX。

更新(2019-07-29):該網站提到了“單詞”,但這僅指RTF。 從來沒有.DOC或.DOCX的實現。

似乎沒有任何支持DOCDOCX格式的MigraDoc渲染器。

在文檔頁面上,我們可以看到一項MigraDoc功能:

支持不同的輸出格式(PDF,Word,HTML,Windows支持的任何打印機)

但是似乎文檔說明了與Word完美配合的RTF格式。 我已經審查了MigraDoc存儲庫 ,但沒有看到任何DOC渲染圖。 我們只能將RTF轉換器用於Word支持。 因此,我們無法使用此包直接生成DOC文件。

但是我們可以使用FreeSpire.Doc nuget包輕松(免費)將RTF轉換為DOCDOCX

完整的代碼示例在這里:

using MigraDoc.DocumentObjectModel;
using MigraDoc.RtfRendering;
using Spire.Doc;
using System.IO;

namespace MigraDocTest
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var stream = new MemoryStream())
            {
                // Generate RTF (using MigraDoc)
                var migraDoc = new MigraDoc.DocumentObjectModel.Document();
                var section = migraDoc.AddSection();
                var paragraph = section.AddParagraph();
                paragraph.AddFormattedText("Hello World!", TextFormat.Bold);
                var rtfDocumentRenderer = new RtfDocumentRenderer();
                rtfDocumentRenderer.Render(migraDoc, stream, false, null);

                // Convert RTF to DOCX (using Spire.Doc)
                var spireDoc = new Spire.Doc.Document();
                spireDoc.LoadFromStream(stream, FileFormat.Auto);
                spireDoc.SaveToFile("D:\\example.docx", FileFormat.Docx );
            }
        }
    }
}

您可以使用具有NuGet包的Microsoft的DocumentFormat.OpenXML庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM