创建 .doc 文件并向其中写入文本时出现问题

问题描述 投票:0回答:1

任务:
任务是将任意长度的字符串插入到新的

.doc
(不是
.docx
)文件中。这意味着创建一个新的
.doc
文件并将我的字符串写入其中。我尝试使用 NuGet 包
NPOI.HWPF
来完成此任务(示例如下)。

我遇到这样的问题:为了创建新文件,需要打开一个现有文件作为模板写入文本,然后将文件另存为新文件。但是,如果模板中没有文本空间,则不会写入任何内容。

此外,我在尝试运行程序时不断收到消息:

一处房产声称在开始前就结束了(29)!重新开始,并希望有最好的结果。

你能帮我弄清楚如何解决这个任务吗?我愿意使用其他库,但它们不需要许可证。

using NPOI.HWPF;
namespace ConsoleApp4;

class Program
{
    static void Main(string[] args)
    {
        string filePathEmptyDoc = "/home/evgeniy/test/empty.doc";
        string filePathNewDoc = "/home/evgeniy/test/newDoc.doc";
        string content = "test text";

        using (FileStream fs = new FileStream(filePathEmptyDoc, FileMode.Open, FileAccess.Read))
        {
            NPOI.HWPF.HWPFDocument doc = new HWPFDocument(fs);
            
            NPOI.HWPF.UserModel.Range range = doc.GetRange();

            range.InsertBefore(content);

            using (FileStream ofs = new FileStream(filePathNewDoc, FileMode.Create, FileAccess.Write))
            {
                doc.Write(ofs);
            }
        }
    }
}

我尝试使用 NuGet 包 NPOI.HWPF 创建一个新的 .doc 文件并在其中插入任意长度的字符串

c# document doc npoi
1个回答
0
投票

下面是另一种方法。但我不确定这是否需要许可证。

Nuget:DotNetCore.NPOI

源代码:

using NPOI.XWPF.UserModel;
using System.Text;
class Program
{
static void Main(string[] args)
{
    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
    string filePathEmptyDoc = "/home/evgeniy/test/empty.doc";
    string filePathNewDoc = "/home/evgeniy/test/newDoc.doc";
    string content = "test text";

    using (FileStream fsOpen = new FileStream(filePathEmptyDoc, FileMode.Open, FileAccess.Read))
    {
        XWPFDocument doc = new XWPFDocument(fsOpen);
        var para0 = doc.CreateParagraph();
        para0.Alignment = ParagraphAlignment.LEFT;
        XWPFRun run0 = para0.CreateRun();
        run0.SetText(content);

        using (var fs = new FileStream(filePathNewDoc, FileMode.Create, FileAccess.Write))
        {
            doc.Write(fs);
        }
        Console.WriteLine("Word  Done");
    }
}
}

参考:示例代码

希望这对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.