OpenXML (.NET): SimpleField no está formado -- # campo con .net campo con ms-word campo con openxml camp Relacionados El problema

OpenXml (.net): SimpleField is not formated


1
vote

problema

Español

Intenté crear un documento de Word con el número de página en el encabezado. Utilicé SimpleField para insertar el número de página y el recuento de páginas. Pero, estos campos no se ven afectados por el color y el tamaño de la fuente definidos en las direcciones de ejecución, a diferencia del texto (como se muestra en la imagen de abajo).

¿Cómo formatear SimpleField?

gracias

Word Document

      private static void CreateReport(string filename)     {         using (var mem = new MemoryStream())         {              using (var wordDocument = WordprocessingDocument.Create(mem, WordprocessingDocumentType.Document, true))             {                 // Add a main document part.                  MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();                  // Create the document structure                 mainPart.Document = new Document();                 mainPart.Document.Body = new Body();                  //Create paragraph for header                 var paragraph = new Paragraph();                  var run = paragraph.AppendChild(new Run());                 run.Append(new RunProperties()                 {                     Bold = new Bold(),                     FontSize = new FontSize() { Val = "48" },                     Color = new Color() { Val = "FF0000" /*red*/ }                 }                     );                 run.Append(new Text() { Text = "Page:" });                 run.Append(new SimpleField() { Instruction = @"PAGE" });                 run.Append(new Text() { Text = "/" });                 run.Append(new SimpleField() { Instruction = @"SECTIONPAGES" });                  //Add paragraph to header                 AddParagraphToHeader(mainPart, paragraph);                  //Save document                 wordDocument.SaveAs(filename);             }         }     }      private static void AddParagraphToHeader(MainDocumentPart mainPart, Paragraph paragraph)     {         var part = mainPart.AddNewPart<HeaderPart>();          var header = new Header() { MCAttributes = new MarkupCompatibilityAttributes() { Ignorable = "w14 wp14" } };         header.AddNamespaceDeclaration("wpc", "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas");         header.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");         header.AddNamespaceDeclaration("o", "urn:schemas-microsoft-com:office:office");         header.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");         header.AddNamespaceDeclaration("m", "http://schemas.openxmlformats.org/officeDocument/2006/math");         header.AddNamespaceDeclaration("v", "urn:schemas-microsoft-com:vml");         header.AddNamespaceDeclaration("wp14", "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing");         header.AddNamespaceDeclaration("wp", "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing");         header.AddNamespaceDeclaration("w10", "urn:schemas-microsoft-com:office:word");         header.AddNamespaceDeclaration("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main");         header.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml");         header.AddNamespaceDeclaration("wpg", "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup");         header.AddNamespaceDeclaration("wpi", "http://schemas.microsoft.com/office/word/2010/wordprocessingInk");         header.AddNamespaceDeclaration("wne", "http://schemas.microsoft.com/office/word/2006/wordml");         header.AddNamespaceDeclaration("wps", "http://schemas.microsoft.com/office/word/2010/wordprocessingShape");          paragraph.RsidParagraphAddition = "00164C17";         paragraph.RsidRunAdditionDefault = "00164C17";         header.Append(paragraph);         part.Header = header;          var headerPartId = mainPart.GetIdOfPart(part);         mainPart.Document.PrependChild<HeaderReference>((new HeaderReference() { Id = headerPartId }));     }   
Original en ingles

I tried to create a word document with page number in Header. I used SimpleField to insert Page number and page count. But, these fields are not impacted by Color and font size defined in the RunProperties, unlike the text (as it's showed in the picture below).

How to format SimpleField??

Thanks

Word document

    private static void CreateReport(string filename)     {         using (var mem = new MemoryStream())         {              using (var wordDocument = WordprocessingDocument.Create(mem, WordprocessingDocumentType.Document, true))             {                 // Add a main document part.                  MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();                  // Create the document structure                 mainPart.Document = new Document();                 mainPart.Document.Body = new Body();                  //Create paragraph for header                 var paragraph = new Paragraph();                  var run = paragraph.AppendChild(new Run());                 run.Append(new RunProperties()                 {                     Bold = new Bold(),                     FontSize = new FontSize() { Val = "48" },                     Color = new Color() { Val = "FF0000" /*red*/ }                 }                     );                 run.Append(new Text() { Text = "Page:" });                 run.Append(new SimpleField() { Instruction = @"PAGE" });                 run.Append(new Text() { Text = "/" });                 run.Append(new SimpleField() { Instruction = @"SECTIONPAGES" });                  //Add paragraph to header                 AddParagraphToHeader(mainPart, paragraph);                  //Save document                 wordDocument.SaveAs(filename);             }         }     }      private static void AddParagraphToHeader(MainDocumentPart mainPart, Paragraph paragraph)     {         var part = mainPart.AddNewPart<HeaderPart>();          var header = new Header() { MCAttributes = new MarkupCompatibilityAttributes() { Ignorable = "w14 wp14" } };         header.AddNamespaceDeclaration("wpc", "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas");         header.AddNamespaceDeclaration("mc", "http://schemas.openxmlformats.org/markup-compatibility/2006");         header.AddNamespaceDeclaration("o", "urn:schemas-microsoft-com:office:office");         header.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships");         header.AddNamespaceDeclaration("m", "http://schemas.openxmlformats.org/officeDocument/2006/math");         header.AddNamespaceDeclaration("v", "urn:schemas-microsoft-com:vml");         header.AddNamespaceDeclaration("wp14", "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing");         header.AddNamespaceDeclaration("wp", "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing");         header.AddNamespaceDeclaration("w10", "urn:schemas-microsoft-com:office:word");         header.AddNamespaceDeclaration("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main");         header.AddNamespaceDeclaration("w14", "http://schemas.microsoft.com/office/word/2010/wordml");         header.AddNamespaceDeclaration("wpg", "http://schemas.microsoft.com/office/word/2010/wordprocessingGroup");         header.AddNamespaceDeclaration("wpi", "http://schemas.microsoft.com/office/word/2010/wordprocessingInk");         header.AddNamespaceDeclaration("wne", "http://schemas.microsoft.com/office/word/2006/wordml");         header.AddNamespaceDeclaration("wps", "http://schemas.microsoft.com/office/word/2010/wordprocessingShape");          paragraph.RsidParagraphAddition = "00164C17";         paragraph.RsidRunAdditionDefault = "00164C17";         header.Append(paragraph);         part.Header = header;          var headerPartId = mainPart.GetIdOfPart(part);         mainPart.Document.PrependChild<HeaderReference>((new HeaderReference() { Id = headerPartId }));     } 
           
 
 

Lista de respuestas


Relacionados problema

5  Comenzar OpenXML y PowerPoint  ( Getting started openxml and powerpoint ) 
Me gustaría desarrollar una biblioteca de clases que pueda procesar las plantillas de PowerPoint y rellenar los datos formateados. Principalmente involucrando...

0  Obtenga texto con la fuente correcta de PPTX con OpenXML  ( Get text with correct font from pptx with openxml ) 
Utilizo estos métodos para obtener el texto: public static string[] GetAllTextInSlide(SlidePart slidePart) { // Verify that the slide part exis...

4  Lista de bala XML Open Office  ( Office open xml bullet list ) 
Estoy tratando de crear un documento XML abierto de oficina con una lista de balas en ella. Pero en lugar de mostrar las balas, el documento muestra una lista...

9  Obtenga una casilla de verificación en Word usando OpenXML  ( Get a checkbox in word using openxml ) 
¿Cómo se envía uno a un control a un control de casilla de verificación que está incrustado en un documento de Word usando OpenXML? Pensaría que cualquiera ...

0  Lea Excel, busque y reemplace piezas de texto en la aplicación web C #  ( Read excel search for and replace pieces of text in web c sharp application ) 
Tengo un archivo de Excel, necesita acceso, reemplace las partes del texto y descargue el archivo modificado. Pero no puedo guardar los cambios, siempre deber...

7  Problema utilizando un segmento binario grande en OOXML  ( Problem using large binary segment in ooxml ) 
Descripción del sistema Un componente de trazado que utiliza OOXML para generar un documento. componente de trazado consiste en varias partes. Todas las...

3  Open XML para obtener imágenes de archivo .pptx  ( Open xml getting images from pptx file ) 
Tengo una aplicación de Windows Forms en .NET 4.0. Yo trabajo en C #. Quiero tomar una imagen de una diapositiva determinada en un archivo .pptx. Este códig...

7  Inserte HTML en Documento de Word OpenXML (.NET)  ( Insert html into openxml word document net ) 
Usando OpenXML SDK, quiero insertar fragmentos HTML básicos en un documento de Word. ¿Cómo harías esto: Manipulando XML directamente? usando un xslt? ...

4  Analizar los datos de MATHTYPE MTEF de OLE Binary String  ( Parse mathtype mtef data from ole binary string ) 
Hay la necesidad de convertir las ecuaciones de MathType en la MS-Word 2003 o por debajo de MathML para que lo haga muy bien en la Web. La función incorporada...

4  Utilice Open XML para leer Documentos de Word ya abiertos?  ( Use open xml to read already opened word documents ) 
Todos los ejemplos e implementaciones que he visto emplear algún tipo de código como: //filePath is some path to a docx file using (WordprocessingDocument ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos