使用微软word.interop在word文档中的空白页删除

时间:2013-05-23 09:53:25

标签: c# office-interop

我创建了一个Word文档,使用 word.interop 生成动态内容。它之间有一些分页符。我面临的问题是,此分页会创建空白页面,我不想向用户显示。

在某些情况下,我需要那些分页符以保持页面布局,因此我无法考虑删除这些分页符。但我想要的是另一个解决方案,如果除了分页符之外的特定页面中没有内容,请删除该页面。

我怎样才能做到这一点,请帮忙.. 提前谢谢..

2 个答案:

答案 0 :(得分:0)

啊,非常简单:只需查看页面,如果那里唯一的段落只包含分页符 - 删除页面(或更准确:将空白页面保存到列表中,在故事结尾处一步删除): 我无法为您提供代码,因为没有示例代码。

答案 1 :(得分:0)

    private bool RemoveBlankPage()
    {
        Word.Application wordapp = null;
        Word.Document doc = null;
        Word.Paragraphs paragraphs=null;
        try
        {
            // Start Word APllication and set it be invisible
            wordapp = new Word.Application();
            wordapp.Visible = false;
            doc = wordapp.Documents.Open(wordPath);
            paragraphs = doc.Paragraphs;
            foreach (Word.Paragraph paragraph in paragraphs)
            {
                if (paragraph.Range.Text.Trim() == string.Empty)
                {
                    paragraph.Range.Select();
                    wordapp.Selection.Delete();
                }
            }

            // Save the document and close document
            doc.Save();
            ((Word._Document)doc).Close();

            // Quit the word application
            ((Word._Application)wordapp).Quit();

        }
        catch(Exception ex)
        {
            MessageBox.Show("Exception Occur, error message is: "+ex.Message);
            return false;
        }
        finally
        { 
            // Clean up the unmanaged Word COM resources by explicitly
            // call Marshal.FinalReleaseComObject on all accessor objects
            if (paragraphs != null)
            {
                Marshal.FinalReleaseComObject(paragraphs);
                paragraphs = null;
            }
            if (doc != null)
            {
                Marshal.FinalReleaseComObject(doc);
                doc = null;
            }
            if (wordapp != null)
            {
                Marshal.FinalReleaseComObject(wordapp);
                wordapp = null;
            }
        }

        return true;
    }

此链接帮助我完成了我的项目

https://code.msdn.microsoft.com/office/How-to-remove-blank-pages-e200755d