es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para crear una propiedad personalizada, puedes utilizar el siguiente código:

    MemoryStream ms = new MemoryStream();
    WordStream.CopyTo(ms);
    ms.Position = 0;
    
    WordprocessingDocument word = WordprocessingDocument.Open(ms, true);
    CustomFilePropertiesPart customProps = word.CustomFilePropertiesPart;
    if (customProps == null)
    {
        customProps = word.AddCustomFilePropertiesPart();
    }
    var properties = customProps.Properties;
    
    // Comprueba si la propiedad ya existe
    bool nameExists = false;
    foreach (var property in properties)
    {
        if (property.Name == "Language")
        {
            property.VTLPWSTR = new VTLPWSTR("english");
            nameExists = true;
            break;
        }
    }
    
    // Si la propiedad no existe, créala
    if (!nameExists)
    {
        var newProp = new CustomDocumentProperty();
        newProp.Name = "Language";
        newProp.VTLPWSTR = new VTLPWSTR("english");
        newProp.FormatId = "{D5CDD505-2E9C-101B-9397-08002B2CF9AE}";
        properties.AppendChild(newProp);
    }
    customProps.Properties = properties;
    customProps.Save();
    
    word.Close();
    ms.Position = 0;
    

    Este código abre una copia del documento de Word como MemoryStream y luego comprueba si la propiedad personalizada “Language” ya existe. Si existe, se actualiza su valor a “english”. Si no existe, se crea una nueva propiedad y se le asigna el valor “english”. Por último, se guardan el archivo y las propiedades personalizadas y se restablece el MemoryStream. Es posible que necesites agregar manejo de errores adicional o modificar los valores de la propiedad y FormatId según tus necesidades.

Comments are closed.