Estudio visual 2019 Cartas de esmalte OpenXML

Estoy tratando de cambiar la fuente básica a "Arial" pero si es cualquier símbolo de pulido su cambio de regreso a Calibri como en la imagen. ¿Es alguna manera de aplicarlo para símbolos de pulido?

        Run run = new Run();
    RunProperties runProp = new RunProperties();
    Text textRun = new Text()
    {
        Text = text,
        Space = SpaceProcessingModeValues.Preserve
    };
    runProp.Append(new RunFonts() { Ascii = EnumFonts.Arial.ToString() }, new FontSize());
        run.Append(runProp);
        run.Append(textRun);

enter image description here

Pregunta hecha hace 3 años, 4 meses, 29 días - Por rubyrogue


2 Respuestas:

  • El problema que estás experimentando se debe a que estás asignando la fuente "Arial" únicamente para el conjunto de caracteres ASCII en el código que proporcionas. Para asegurarte de que la fuente "Arial" se aplique a todos los caracteres, incluidos los símbolos de puntuación, puedes usar la propiedad ComplexScript en lugar de Ascii al configurar la fuente en la clase RunFonts.

    Aquí te dejo una versión modificada de tu código para lograr esto:

    csharp
    Run run = new Run();
    RunProperties runProp = new RunProperties();
    Text textRun = new Text()
    {
        Text = text,
        Space = SpaceProcessingModeValues.Preserve
    };
    
    // Utilizamos la propiedad ComplexScript en lugar de Ascii para aplicar la fuente Arial a todos los caracteres
    runProp.Append(new RunFonts() { ComplexScript = "Arial" }, new FontSize());
    run.Append(runProp);
    run.Append(textRun);
    

    Con este cambio, la fuente "Arial" se aplicará a todos los caracteres, incluidos los símbolos de puntuación, en lugar de volver a la fuente predeterminada "Calibri". Espero que esta solución sea de ayuda para ti. ¡Déjame saber si tienes alguna otra pregunta!

    Respondida el Dec 18, 2020 a las 13:40 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Entiendo que estás intentando cambiar la fuente de las cartas de esmalte en un documento Word de OpenXML usando C

    , pero los símbolos de esmalte vuelven a cambiar a Calibri. Aquí tienes una solución para aplicar la fuente Arial a los símbolos de esmalte:

    
    using DocumentFormat.OpenXml.Wordprocessing;
    
    namespace OpenXMLPlayground
    {
        class Program
        {
            static void Main(string[] args)
            {
                // Create a new WordprocessingDocument.
                using (WordprocessingDocument document = WordprocessingDocument.Create("output.docx", WordprocessingDocumentType.Document))
                {
                    // Add a new paragraph to the document.
                    Paragraph paragraph = new Paragraph();
    
                    // Create a new run for the text.
                    Run run = new Run();
    
                    // Create a new RunProperties object and set the font to Arial.
                    RunProperties runProperties = new RunProperties();
                    runProperties.RunFonts = new RunFonts() { Ascii = "Arial" };
    
                    // Create a new Text object and set the text.
                    Text text = new Text();
                    text.Text = "This is some text with esmalte symbols, like ♡ and ©.";
    
                    // Add the run properties and text to the run.
                    run.Append(runProperties);
                    run.Append(text);
    
                    // Add the run to the paragraph.
                    paragraph.Append(run);
    
                    // Add the paragraph to the document.
                    document.MainDocumentPart.Document.Body.Append(paragraph);
    
                    // Save the document.
                    document.Save();
                }
            }
        }
    }
    

    Explicación:

    La clave para aplicar la fuente Arial a los símbolos de esmalte es establecer la propiedad Ascii del elemento RunFonts en "Arial". Esto sobrescribirá la fuente predeterminada (Calibri) para todos los caracteres ASCII, incluidos los símbolos de esmalte. El código crea un nuevo documento Word, agrega un párrafo, un run y establece las propiedades del run para usar la fuente Arial. El texto incluye símbolos de esmalte (♡ y ©) que se mostrarán en Arial. El documento se guarda con el nombre "output.docx".

    Nota:

    • Este código solo cambiará la fuente de los símbolos de esmalte incorporados en Word. Si estás utilizando símbolos de esmalte personalizados o de fuentes de terceros, es posible que debas aplicar la fuente manualmente a cada símbolo.

    Respondida el Dec 18, 2020 a las 13:42 - por Gemini

    Votos positivos: 0 | Votos negativos: 0