Ich verwende Open XML, um mehrere Dokumente zusammenzuführen. Ich habe mich um Stil, Beziehungen und Bilder gekümmert, aber in der Ausgabe für jede Seite sehe ich Kopf- und Fußzeilen für alle zusammengeführten Dokumente. Was ich brauche, ist, dass die Seiten jedes zusammengeführten Dokuments ihre eigenen Kopf- und Fußzeilen haben. Zum Beispiel sollte ich für Seiten für Datei 1 nur Kopf- und Fußzeilen von Datei 1 sehen und fortfahren ...
In diesem Beispiel erhalte ich Dateien von meinem einen Laufwerk und erhalte deren Stream.< /p>
Irgendeine Idee, wie ich dieses Ziel erreichen kann?
Ich verwende Open XML, um mehrere Dokumente zusammenzuführen. Ich habe mich um Stil, Beziehungen und Bilder gekümmert, aber in der Ausgabe für jede Seite sehe ich Kopf- und Fußzeilen für alle zusammengeführten Dokumente. Was ich brauche, ist, dass die Seiten jedes zusammengeführten Dokuments ihre eigenen Kopf- und Fußzeilen haben. Zum Beispiel sollte ich für Seiten für Datei 1 nur Kopf- und Fußzeilen von Datei 1 sehen und fortfahren ... In diesem Beispiel erhalte ich Dateien von meinem einen Laufwerk und erhalte deren Stream.< /p> Irgendeine Idee, wie ich dieses Ziel erreichen kann? [code] public async Task MergeMultipleDocumentsAsync( string accessToken, string fileName, bool isByPath, IEnumerable files, int pageBreaks) { var tempFilePath = Path.Combine(Path.GetTempPath(), fileName); var outputStream = new FileStream(tempFilePath, FileMode.Create, FileAccess.ReadWrite);
using (var mergedDoc = WordprocessingDocument.Create(outputStream, WordprocessingDocumentType.Document, true)) { var mainPart = mergedDoc.AddMainDocumentPart(); mainPart.Document = new Document(); var mainBody = new Body(); mainPart.Document.AppendChild(mainBody);
bool isFirst = true;
foreach (var file in files) { var client = _clientFactory.CreateClient(); client.SetBearerToken(accessToken); string endpoint = !isByPath ? $"{baseUrl}/me/drive/items/{file}/content" : $"{baseUrl}/me{FixPath(file)}:/content";
HttpResponseMessage response = await client.GetAsync(endpoint); if (!response.IsSuccessStatusCode) { throw new Exception($"Failed to fetch the file: {response.StatusCode}"); }
using var stream = await response.Content.ReadAsStreamAsync(); using (var sourceDoc = WordprocessingDocument.Open(stream, false)) { var srcMainPart = sourceDoc.MainDocumentPart;
private void CopyBodyWithHeadersFooters(MainDocumentPart srcMainPart, MainDocumentPart targetMainPart, Body targetBody, bool isFirst) { var srcBody = srcMainPart.Document.Body;
// Create a new SectionProperties for the section var sectionProps = new SectionProperties();
// Add section type to ensure section break if (!isFirst) { sectionProps.AppendChild(new SectionType() { Val = SectionMarkValues.NextPage }); }
// Process headers for this section if (srcMainPart.HeaderParts.Any()) { foreach (var headerPart in srcMainPart.HeaderParts) { var newHeaderPart = targetMainPart.AddNewPart(); using (var stream = headerPart.GetStream()) { newHeaderPart.FeedData(stream); }
if (sourceHeaderReference != null) { var headerReference = new HeaderReference { Id = targetMainPart.GetIdOfPart(newHeaderPart), Type = sourceHeaderReference.Type }; sectionProps.AppendChild(headerReference); } } }
// Process footers for this section if (srcMainPart.FooterParts.Any()) { foreach (var footerPart in srcMainPart.FooterParts) { var newFooterPart = targetMainPart.AddNewPart(); using (var stream = footerPart.GetStream()) { newFooterPart.FeedData(stream); }
if (sourceFooterReference != null) { var footerReference = new FooterReference { Id = targetMainPart.GetIdOfPart(newFooterPart), Type = sourceFooterReference.Type }; sectionProps.AppendChild(footerReference); } } }
// Add a page break for non-first sections if (!isFirst) { targetBody.AppendChild(new Paragraph(new Run(new Break { Type = BreakValues.Page }))); }
// Copy content from source body foreach (var element in srcBody.Elements()) { if (element is not SectionProperties) { targetBody.AppendChild(element.CloneNode(true)); } }
// Add section properties at the end of each document's content targetBody.AppendChild(new Paragraph(sectionProps)); }
Ich versuche, meine Microsoft Forms -Anwendung als Einzeldateianwendung zu veröffentlichen.
Ich habe Word -Dokumente im Ordner Ressourcen. Dokument kann nicht gefunden werden. Wenn ich es lokal...
Ich versuche, ein WordPress -Thema zu erstellen. Aus verschiedenen Gründen versuche ich sofort, Barrierefreiheit zu integrieren. Eine der Möglichkeiten, wie ich dies tue, besteht darin, der...
Ich versuche, ein WordPress -Thema zu erstellen. Aus verschiedenen Gründen versuche ich sofort, Barrierefreiheit zu integrieren. Eine der Möglichkeiten, wie ich dies tue, besteht darin, der...
Ich habe zwei verknüpfte Datenrahmen, die Daten zum Status von etwas enthalten, aber beide Datenquellen sind schlecht. Ich habe den Status (z. B. 1 = verloren, 2 = gefunden, 3 = unbekannt) und das...
Ich versuche, eine signierte XML -Datei (ein Ereignis) an einen Webservice zu senden, aber wenn ich das signierte Ereignis in eine XML -Stapeldatei einfüge, wird die Signatur ungültig. Ich verwende...