计算字节数组

时间:2017-03-14 22:06:13

标签: c# .net visual-studio outsystems

  

抱歉我的英文

我在字节数组中有word文档的内容,我想知道它有多少页。

我已使用此代码使用pdf文件执行此操作:

public void MssGetNumberOfPages(byte[] ssFileBinaryData, out int ssNumberOfPages) {

        int pageCount;
        MemoryStream stream = new MemoryStream(ssFileBinaryData);
        using (var r = new StreamReader(stream))
        {
            string pdfText = r.ReadToEnd();
            System.Text.RegularExpressions.Regex regx = new Regex(@"/Type\s*/Page[^s]");
            System.Text.RegularExpressions.MatchCollection matches = regx.Matches(pdfText);
            pageCount = matches.Count;
            ssNumberOfPages = pageCount;
        }


        // TODO: Write implementation for action
    }

如何使用word文档执行类似操作?

在pdf中,我只需在正则表达式中搜索与此匹配的文本:

Regex(@"/Type\s*/Page[^s]")

我需要在正则表达式中添加什么才能匹配word文档的页面?

2 个答案:

答案 0 :(得分:1)

好吧,我自己通过将文档转换为带有Aspose.dll的pdf

来解决这个问题
public void MssGet_Word_NumberOfPages(byte[] ssFileBinaryData, out int ssNumberOfPages) {

        // Load Word Document from this byte array
        Document loadedFromBytes = new Document(new MemoryStream(ssFileBinaryData));

        // Save Word to PDF byte array
        MemoryStream pdfStream = new MemoryStream();
        loadedFromBytes.Save(pdfStream, SaveFormat.Pdf);
        byte[] pdfBytes = pdfStream.ToArray();

        int pageCount;
        MemoryStream stream = new MemoryStream(pdfBytes);
        using (var r = new StreamReader(stream))
        {
            string pdfText = r.ReadToEnd();
            System.Text.RegularExpressions.Regex regx = new Regex(@"/Type\s*/Page[^s]");
            System.Text.RegularExpressions.MatchCollection matches = regx.Matches(pdfText);
            pageCount = matches.Count;
            ssNumberOfPages = pageCount;
        }
    }

答案 1 :(得分:0)

您是否可以详细说明用于将单词doc转换为PDF的工具?