Есть ли способ избежать пустых страниц с разрывами страниц, используя interop.word? - PullRequest
0 голосов
/ 23 января 2019

Мне поручено создать приложение на C #, которое генерирует многостраничный документ. Я использовал interop.word для генерации своих страниц. Хотя с генерацией страниц все в порядке, иногда я получаю дикую пустую страницу, от которой я не могу избавиться во время генерации.

Мои страницы различаются по длине; у некоторых есть страница, полная текста, и у некоторых есть четверть страницы, заполненной текстом. Как я могу сделать так, чтобы я не получал ненужные пустые страницы в моих сгенерированных документах?

Я пытался использовать функцию ниже. Все, что он делает, это вставляет разрыв страницы.

    private void newPage(Word._Document doc)
    {
        doc.Words.Last.InsertBreak(Word.WdBreakType.wdPageBreak);
    }

Пример создания новой страницы:

    else if (iter == "Bedrijfsinformatie")
    {
        createParagraphIntro(oDoc, oMissing, paragraph, 16, "Cambria", 0, 0, Word.WdParagraphAlignment.wdAlignParagraphLeft, true, false, true);
        createParagraphIntro(oDoc, oMissing, paragraph1, 9, "Cambria", 1, 0, Word.WdParagraphAlignment.wdAlignParagraphLeft, false, false, true);
        createParagraphIntro(oDoc, oMissing, paragraph2, 9, "Cambria", 1, 0, Word.WdParagraphAlignment.wdAlignParagraphLeft, false, false, true);
        createParagraphIntro(oDoc, oMissing, paragraph3, 9, "Cambria", 1, 0, Word.WdParagraphAlignment.wdAlignParagraphLeft, false, false, true);
        createParagraphIntro(oDoc, oMissing, paragraph4, 9, "Cambria", 1, 0, Word.WdParagraphAlignment.wdAlignParagraphLeft, false, false, true);
        createParagraphIntro(oDoc, oMissing, paragraph5, 9, "Cambria", 1, 0, Word.WdParagraphAlignment.wdAlignParagraphLeft, false, false, true);
        createParagraphIntro(oDoc, oMissing, paragraph6, 9, "Cambria", 1, 0, Word.WdParagraphAlignment.wdAlignParagraphLeft, false, false, true);
        createParagraphIntro(oDoc, oMissing, paragraph7, 9, "Cambria", 6, 0, Word.WdParagraphAlignment.wdAlignParagraphLeft, false, false, true);
        //newPage(oDoc);
    }

и метод createParagraphIntro:

private void createParagraphIntro(Word._Document oDoc, object oMissing, string paragraphcontent, int fontsize, string fontname, int SpaceAfter,int spaceBefore, Word.WdParagraphAlignment alignment, bool bold, bool header,bool insertparagraph)
    {
        Word.Paragraph oPara;
        oPara = oDoc.Content.Paragraphs.Add(ref oMissing);
        object oStyleName = Word.WdBuiltinStyle.wdStyleHeading1;
        object oStyleName1 = Word.WdBuiltinStyle.wdStyleNormal;
        // to set the heading
        if (header == true)
            oPara.Range.set_Style(ref oStyleName);
        else
            oPara.Range.set_Style(ref oStyleName1);
        // to make the text bold
        if (bold == true)
            oPara.Range.Font.Bold = 1;
        else
            oPara.Range.Font.Bold = 0;
        oPara.Range.Text = paragraphcontent;
        oPara.Format.SpaceBefore = spaceBefore * 10;
        oPara.Format.SpaceAfter = SpaceAfter*10;    // spacing after paragraph.
        oPara.Range.Font.Size = fontsize;
        oPara.Range.Font.Name = fontname;
        oPara.Range.ParagraphFormat.Alignment = alignment; 
        oPara.Range.InsertParagraphAfter();
    }

Я ожидаю, что мое приложение сгенерирует текстовый документ без пустых страниц. На данный момент это не так.

Я надеюсь, что кто-нибудь может мне помочь с этой проблемой.

Edit: Не обращайте внимания на язык, я голландец.

изображение 1: enter image description here

Изображение 2: enter image description here

1 Ответ

0 голосов
/ 23 января 2019

Благодаря Синатру я разобрался в своей проблеме.Я забыл добавить абзац во время создания новой страницы, в результате чего пустая страница.Моя собственная глупость поражает меня ...

...