Propiedades de Presentación

Propiedades del Documento en PowerPoint

Microsoft PowerPoint 2007 permite gestionar las propiedades del documento de los archivos de presentación. Todo lo que tienes que hacer es hacer clic en el ícono de Office y luego en el elemento del menú Preparar | Propiedades | Propiedades Avanzadas de Microsoft PowerPoint 2007 como se muestra a continuación:

Seleccionando el elemento del menú Propiedades Avanzadas ** 
todo:image_alt_text  
Después de seleccionar el elemento del menú Propiedades Avanzadas, aparecerá un diálogo que te permitirá gestionar las propiedades del documento del archivo de PowerPoint como se muestra a continuación en la figura:
Diálogo de Propiedades ** 
todo:image_alt_text  
En el anterior Diálogo de Propiedades, puedes ver que hay muchas pestañas como General, Resumen, Estadísticas, Contenido y Personalizadas. Todas estas pestañas permiten configurar diferentes tipos de información relacionada con los archivos de PowerPoint. La pestaña Personalizadas se usa para gestionar las propiedades personalizadas de los archivos de PowerPoint.

Trabajando con Propiedades del Documento Usando Aspose.Slides para Android a través de Java

Como hemos descrito anteriormente, Aspose.Slides para Android a través de Java soporta dos tipos de propiedades del documento, que son propiedades Integradas y Personalizadas. Así que, los desarrolladores pueden acceder a ambos tipos de propiedades con el uso de la API de Aspose.Slides para Android a través de Java. Aspose.Slides para Android a través de Java proporciona una clase IDocumentProperties que representa las propiedades del documento asociadas con un archivo de presentación a través de la propiedad Presentation.DocumentProperties.

Los desarrolladores pueden utilizar la propiedad IDocumentProperties expuesta por el objeto Presentation para acceder a las propiedades del documento de los archivos de presentación como se describe a continuación:

Acceder a las Propiedades Integradas

Estas propiedades expuestas por el objeto IDocumentProperties incluyen: Creador (Autor), Descripción, Palabras clave, Creado (Fecha de Creación), Modificado (Fecha de Modificación), Impreso (Fecha de Última Impresión), Último Modificado Por, Palabras clave, Documento Compartido (¿Está compartido entre diferentes productores?), Formato de Presentación, Asunto y Título

// Instanciar la clase Presentation que representa la presentación
Presentation pres = new Presentation("Presentation.pptx");
try {
    // Crear una referencia al objeto IDocumentProperties asociado con la Presentación
    IDocumentProperties dp = pres.getDocumentProperties();
    
    // Mostrar las propiedades integradas
    System.out.println("Categoría : " + dp.getCategory());
    System.out.println("Estado Actual : " + dp.getContentStatus());
    System.out.println("Fecha de Creación : " + dp.getCreatedTime());
    System.out.println("Autor : " + dp.getAuthor());
    System.out.println("Descripción : " + dp.getComments());
    System.out.println("Palabras Clave : " + dp.getKeywords());
    System.out.println("Último Modificado Por : " + dp.getLastSavedBy());
    System.out.println("Supervisor : " + dp.getManager());
    System.out.println("Fecha de Modificación : " + dp.getLastSavedTime());
    System.out.println("Formato de Presentación : " + dp.getPresentationFormat());
    System.out.println("Fecha de Última Impresión : " + dp.getLastPrinted());
    System.out.println("Está Compartido entre productores : " + dp.getSharedDoc());
    System.out.println("Asunto : " + dp.getSubject());
    System.out.println("Título : " + dp.getTitle());
} finally {
    if (pres != null) pres.dispose();
}

Modificar Propiedades Integradas

Modificar las propiedades integradas de los archivos de presentación es tan fácil como acceder a ellas. Simplemente puedes asignar un valor de cadena a cualquier propiedad deseada y el valor de la propiedad será modificado. En el ejemplo dado a continuación, hemos demostrado cómo podemos modificar las propiedades del documento integradas del archivo de presentación usando Aspose.Slides para Android a través de Java.

Presentation pres = new Presentation("Presentation.pptx");
try {
    // Crear una referencia al objeto IDocumentProperties asociado con la Presentación
    IDocumentProperties dp = pres.getDocumentProperties();
    
    // Establecer las propiedades integradas
    dp.setAuthor("Aspose.Slides para Android a través de Java");
    dp.setTitle("Modificar Propiedades de Presentación");
    dp.setSubject("Asunto de Aspose");
    dp.setComments("Descripción de Aspose");
    dp.setManager("Gerente de Aspose");
    
    // Guardar tu presentación en un archivo
    pres.save("DocProps.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Este ejemplo modifica las propiedades integradas de la presentación que se pueden ver como se muestra a continuación:

Propiedades del documento integradas después de la modificación ** 
todo:image_alt_text  

Agregar Propiedades de Documento Personalizadas

Aspose.Slides para Android a través de Java también permite a los desarrolladores agregar los valores personalizados para las propiedades del documento de presentación. A continuación se da un ejemplo que muestra cómo establecer las propiedades personalizadas para una presentación.

Presentation pres = new Presentation();
try {
    // Obtener Propiedades del Documento
    IDocumentProperties dProps = pres.getDocumentProperties();
    
    // Agregar propiedades Personalizadas
    dProps.set_Item("Nueva Personalizada", 12);
    dProps.set_Item("Mi Nombre", "Mudassir");
    dProps.set_Item("Personalizada", 124);
    
    // Obtener el nombre de la propiedad en un índice particular
    String getPropertyName = dProps.getCustomPropertyName(2);
    
    // Eliminar la propiedad seleccionada
    dProps.removeCustomProperty(getPropertyName);
    
    // Guardando la presentación
    pres.save("CustomDemo.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}
Propiedades de Documento Personalizadas Agregadas ** 
todo:image_alt_text  

Acceder y Modificar Propiedades Personalizadas

Aspose.Slides para Android a través de Java también permite a los desarrolladores acceder a los valores de las propiedades personalizadas. A continuación se da un ejemplo que muestra cómo puedes acceder y modificar todas estas propiedades personalizadas para una presentación.

Presentation pres = new Presentation("Presentation.pptx");
try {
    // Crear una referencia al objeto DocumentProperties asociado con la Presentación
    IDocumentProperties dp = pres.getDocumentProperties();
    
    // Acceder y modificar propiedades personalizadas
    for (int i = 0; i < dp.getCountOfCustomProperties(); i++) {
        // Mostrar nombres y valores de las propiedades personalizadas
        System.out.println("Nombre de Propiedad Personalizada : " + dp.getCustomPropertyName(i));
        System.out.println("Valor de Propiedad Personalizada : " + dp.get_Item(dp.getCustomPropertyName(i)));
    
        // Modificar valores de las propiedades personalizadas
        dp.set_Item(dp.getCustomPropertyName(i), "Nuevo Valor " + (i + 1));
    }
    
    // Guardar tu presentación en un archivo
    pres.save("CustomDemoModified.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Este ejemplo modifica las propiedades personalizadas de la presentación PPTX . Las siguientes figuras muestran las propiedades personalizadas de la presentación antes y después de la modificación:

Propiedades Personalizadas antes de la Modificación ** 
todo:image_alt_text  
Propiedades Personalizadas después de la Modificación ** 
todo:image_alt_text  

Propiedades Avanzadas del Documento

Los dos nuevos métodos ReadDocumentProperties y UpdateDocumentProperties se han añadido a la interfaz IPresentationInfo. Proporcionan acceso rápido a las propiedades del documento y permiten cambiar y actualizar propiedades sin cargar una presentación completa.

El escenario típico de cargar las propiedades, cambiar algún valor y actualizar el documento se puede implementar de la siguiente manera:

// leer la información de la presentación
IPresentationInfo info = PresentationFactory.getInstance().getPresentationInfo("presentation.pptx");

// obtener las propiedades actuales
IDocumentProperties props = info.readDocumentProperties();

// establecer los nuevos valores de los campos Autor y Título
props.setAuthor("Nuevo Autor");
props.setTitle("Nuevo Título");

// actualizar la presentación con nuevos valores
info.updateDocumentProperties(props);
info.writeBindedPresentation("presentation.pptx");

Hay otra forma de usar las propiedades de una presentación particular como plantilla para actualizar propiedades en otras presentaciones:

IPresentationInfo info = PresentationFactory.getInstance().getPresentationInfo("template.pptx");
DocumentProperties template = (DocumentProperties) info.readDocumentProperties();

template.setAuthor("Autor de Plantilla");
template.setTitle("Título de Plantilla");
template.setCategory("Categoría de Plantilla");
template.setKeywords("PalabraClave1, PalabraClave2, PalabraClave3");
template.setCompany("Nuestra Empresa");
template.setComments("Creado a partir de una plantilla");
template.setContentType("Contenido de Plantilla");
template.setSubject("Asunto de Plantilla");

updateByTemplate("doc1.pptx", template);
updateByTemplate("doc2.odp", template);
updateByTemplate("doc3.ppt", template);
private static void updateByTemplate(String path, IDocumentProperties template) 
{
    IPresentationInfo toUpdate = PresentationFactory.getInstance().getPresentationInfo(path);
    toUpdate.updateDocumentProperties(template);
    toUpdate.writeBindedPresentation(path);
}

Se puede crear una nueva plantilla desde cero y luego utilizarse para actualizar múltiples presentaciones:

DocumentProperties template = new DocumentProperties();\

template.setAuthor("Autor de Plantilla");
template.setTitle("Título de Plantilla");
template.setCategory("Categoría de Plantilla");
template.setKeywords("PalabraClave1, PalabraClave2, PalabraClave3");
template.setCompany("Nuestra Empresa");
template.setComments("Creado a partir de una plantilla");
template.setContentType("Contenido de Plantilla");
template.setSubject("Asunto de Plantilla");

updateByTemplate("doc1.pptx", template);
updateByTemplate("doc2.odp", template);
updateByTemplate("doc3.ppt", template);
private static void updateByTemplate(String path, IDocumentProperties template) 
{
    IPresentationInfo toUpdate = PresentationFactory.getInstance().getPresentationInfo(path);
    toUpdate.updateDocumentProperties(template);
    toUpdate.writeBindedPresentation(path);
}

Verificar si la Presentación está Modificada o Creada

Aspose.Slides para Android a través de Java proporciona la facilidad de verificar si una presentación está modificada o creada. A continuación se da un ejemplo que muestra cómo verificar si la presentación fue creada o modificada.

IPresentationInfo info=PresentationFactory.getInstance().getPresentationInfo("props.pptx");

IDocumentProperties props = info.readDocumentProperties();
String app = props.getNameOfApplication();
String ver = props.getAppVersion();

System.out.println("Nombre de la Aplicación: " + app);
System.out.println("Versión de la Aplicación: " + ver);

Establecer Idioma de Corrección

Aspose.Slides proporciona la propiedad LanguageId (expuesta por la clase PortionFormat) para permitirte establecer el idioma de corrección para un documento de PowerPoint. El idioma de corrección es el idioma para el cual se verifican las ortografías y la gramática en el PowerPoint.

Este código Java te muestra cómo establecer el idioma de corrección para un PowerPoint: xxx ¿Por qué falta LanguageId en la clase Java PortionFormat?

Presentation pres = new Presentation(pptxFileName);
try {
    AutoShape autoShape = (AutoShape)pres.getSlides().get_Item(0).getShapes().get_Item(0);

    IParagraph paragraph = autoShape.getTextFrame().getParagraphs().get_Item(0);
    paragraph.getPortions().clear();

    Portion newPortion = new Portion();

    IFontData font = new FontData("SimSun");
    IPortionFormat portionFormat = newPortion.getPortionFormat();
    portionFormat.setComplexScriptFont(font);
    portionFormat.setEastAsianFont(font);
    portionFormat.setLatinFont(font);

    portionFormat.setLanguageId("zh-CN"); // establecer el Id de un idioma de corrección

    newPortion.setText("1。");
    paragraph.getPortions().add(newPortion);
} finally {
    if (pres != null) pres.dispose();
}

Establecer Idioma Predeterminado

Este código Java te muestra cómo establecer el idioma predeterminado para toda la presentación de PowerPoint:

LoadOptions loadOptions = new LoadOptions();
loadOptions.setDefaultTextLanguage("en-US");

Presentation pres = new Presentation(loadOptions);
try {
    // Agrega una nueva forma rectangular con texto
    IAutoShape shp = pres.getSlides().get_Item(0).getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 150, 50);
    shp.getTextFrame().setText("Nuevo Texto");

    // Verifica el idioma de la primera porción
    System.out.println(shp.getTextFrame().getParagraphs().get_Item(0).getPortions().get_Item(0).getPortionFormat().getLanguageId());
} finally {
    if (pres != null) pres.dispose();
}