在除第一页外的每一页的页眉中添加图片



我正在使用Micorosoft Word Interop从C#生成一个Word文档。

我想在每一页的标题中插入一些图片。我可以用以下代码在每一页上成功地做到这一点:

string imgHeader1 = "C:/image1.jpg";
foreach (Section section in document.Sections)
{
    HeaderFooter header = section.Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary];
    header.Range.ParagraphFormat.SpaceAfter = 96;
    header.Shapes.AddPicture(imgHeader1, 0, 1, 0, -40, 120, 20);
}

现在我想做同样的事情,但不是在第一页。我的建议如下:

document.PageSetup.DifferentFirstPageHeaderFooter = -1; //True 
string imgHeader1 = "C:/image1.jpg";
foreach (Section section in document.Sections)
{
    HeaderFooter header = section.Headers[WdHeaderFooterIndex.wdHeaderFooterPrimary];
    //wdHeaderFooterFirstPage would be for first page..
    header.Range.ParagraphFormat.SpaceAfter = 96;
    header.Shapes.AddPicture(imgHeader1, 0, 1, 0, -40, 120, 20);
}

问题是图像仍然出现在第一页而不是第二页。

如果我在c#中使用microsoft office interop单词查看文档中这个问题的答案"不同的首页",并将代码复制到我的项目中,文本会出现在右侧标题上,但它似乎不适用于图像(?)

以下对我有效。我为文档中的每个部分设置DifferentFirstPage,应用格式,插入一些测试文本,插入图像。(请注意,我的解决方案中有一个using Word = Microsoft.Office.Interop.Word,因此Word对象模型中的对象以Word.开头)

string imgHeader1 = "C:/image1.jpg";
foreach (Word.Section section in document.Sections)
{
    section.PageSetup.DifferentFirstPageHeaderFooter = -1;
    Word.HeaderFooter header = section.Headers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary];
    //wdHeaderFooterFirstPage would be for first page..
    header.Range.ParagraphFormat.SpaceAfter = 96;
    header.Range.Text = "test";
    header.Shapes.AddPicture(imgHeader1, 0, 1, 0, -40, 120, 20);
}

使用InlineShapes对象并在完成任务后应用调整大小和位置。

Shape shape = header.Range.InlineShapes.AddPicture(imgHeader1, 0, 1, header.Range).ConvertToShape();
shape.Left = -1;
shape.Top = -42;
shape.Width = 275;
shape.Height = 151;

如果是第一页,我建议使用类似check的方法。如果为true,则不执行任何其他操作,使用该图像

最新更新