2016-06-01 14 views
0

Ich verwende die AddHeaderFromTo-Funktion von https://msdn.microsoft.com/en-us/library/office/cc546917.aspx. Das Problem besteht darin, dass keine Bilder oder Tabellen im Kopfbereich des Dokuments gefunden werden. Gibt es eine Möglichkeit, alles vom Header in das andere Dokument zu bekommen?Hinzufügen komplexer Kopfzeile von einem Word-Dokument zu einem anderen

+0

Leider haben Sie manuell einzeln kopieren, um auf der Grundlage der Art von Inhalt, den Ihr Header enthält. – Flowerking

Antwort

0

Mit OpenXMLPowerTools konnte ich den folgenden Code verwenden, um die Header aus einer Datei zu nehmen und fügen Sie sie in eine andere:

var to = @"C:\Users\dheale\Desktop\Word Docs\_Blank_Skeleton.DOCX"; 
var from = @"C:\Users\dheale\Desktop\Word Docs\Letterheads\StandardLetterhead3.DOCX"; 
var outDoc = @"C:\Users\dheale\Desktop\Word Docs\test.DOCX"; 

var sources = new List<Source> 
{ 
    new Source(new WmlDocument(to), false), 
    new Source(new WmlDocument(from), true) 
}; 

DocumentBuilder.BuildDocument(sources, outDoc); 
0

Das folgende VBA-Skript sollte es für Sie tun. Führen Sie ein Word-Dokument aus. Ändern, um zu passen.

Sub editAll() 
    Dim Doc 
    Dim i As Integer 
    Dim docToOpen As FileDialog 
    Set docToOpen = Application.FileDialog(msoFileDialogFilePicker) 
    docToOpen.Show 
    For i = 1 To docToOpen.SelectedItems.Count 
     'Open each document 
     Set Doc = Documents.Open(FileName:=docToOpen.SelectedItems(i)) 

     With ActiveDocument.Sections(1) 
      'insert new headers 
      Call editheader 
     End With 
    Next i 
End Sub 


Sub editheader() 

    If ActiveWindow.View.SplitSpecial <> wdPaneNone Then 
     ActiveWindow.Panes(2).Close 
    End If 
    If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _ 
     ActivePane.View.Type = wdOutlineView Then 
     ActiveWindow.ActivePane.View.Type = wdPrintView 
    End If 
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader 
    With Selection.PageSetup 
     .LineNumbering.Active = False 
     .Orientation = wdOrientPortrait 
     .TopMargin = InchesToPoints(1) 
     .BottomMargin = InchesToPoints(1) 
     .LeftMargin = InchesToPoints(1) 
     .RightMargin = InchesToPoints(1) 
     .Gutter = InchesToPoints(0) 
     .HeaderDistance = InchesToPoints(0.1) 
     .FooterDistance = InchesToPoints(0.5) 
     .PageWidth = InchesToPoints(8.5) 
     .PageHeight = InchesToPoints(11) 
     .FirstPageTray = wdPrinterDefaultBin 
     .OtherPagesTray = wdPrinterDefaultBin 
     .SectionStart = wdSectionNewPage 
     .OddAndEvenPagesHeaderFooter = False 
     .DifferentFirstPageHeaderFooter = False 
     .VerticalAlignment = wdAlignVerticalTop 
     .SuppressEndnotes = False 
     .MirrorMargins = False 
     .TwoPagesOnOne = False 
     .BookFoldPrinting = False 
     .BookFoldRevPrinting = False 
     .BookFoldPrintingSheets = 1 
     .GutterPos = wdGutterPosLeft 
    End With 
    Selection.HeaderFooter.LinkToPrevious = Not Selection.HeaderFooter. _ 
     LinkToPrevious 
    Selection.HeaderFooter.LinkToPrevious = Not Selection.HeaderFooter. _ 
     LinkToPrevious 
    Selection.InlineShapes.AddPicture FileName:= _ 
     "C:\Users\rshuell001\Desktop\test\asher.jpg", LinkToFile:=False, _ 
     SaveWithDocument:=True 
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument 
End Sub 
+0

Danke, aber ich kann es nicht über VBA-Skript ausführen, es muss Server-Seite in C# sein. –

Verwandte Themen