CustomPart

CustomPart class

Representa una pieza personalizada (contenido arbitrario), que no está definida por el estándar ISO/IEC 29500.

Para obtener más información, visite elEtiquetas de documentos estructurados o control de contenido artículo de documentación.

public class CustomPart

Constructores

NombreDescripción
CustomPart()Constructor predeterminado

Propiedades

NombreDescripción
ContentType { get; set; }Especifica el tipo de contenido de esta parte personalizada.
Data { get; set; }Contiene los datos de esta pieza personalizada.
IsExternal { get; set; }Falso si esta parte personalizada está almacenada dentro del paquete OOXML. Verdadero si esta pieza personalizada es un destino externo.
Name { get; set; }Obtiene o establece el nombre absoluto de esta parte dentro del paquete OOXML o la URL de destino.
RelationshipType { get; set; }Obtiene o establece el tipo de relación del artículo principal con este artículo personalizado.

Métodos

NombreDescripción
Clone()Hace una copia “suficientemente profunda” del objeto. No duplica los bytes delData valor.

Observaciones

Esta clase representa una parte OOXML que es el objetivo de una “relación desconocida”. Todas las relaciones no definidas en ISO/IEC 29500 se consideran “relaciones desconocidas”. Las relaciones desconocidas se permiten dentro de un documento Office Open XML siempre que cumplan con a las pautas de marcado de relaciones.

Microsoft Word conserva las partes personalizadas durante los ciclos de abrir/guardar. Puede encontrar información adicional aquí http://blogs.msdn.com/dmahugh/archive/2006/11/25/arbitrary-content-in-an-opc-package.aspx

Aspose.Words también recorre partes personalizadas y, además, permite acceder mediante programación a dichas partes a través delCustomPart yCustomPartCollection objetos.

No confunda partes personalizadas con datos XML personalizados. UsarCustomXmlPart si necesita para acceder a datos XML personalizados.

Ejemplos

Muestra cómo acceder a la colección de piezas personalizadas arbitrarias de un documento.

Document doc = new Document(MyDir + "Custom parts OOXML package.docx");

Assert.AreEqual(2, doc.PackageCustomParts.Count);

// Clona la segunda parte y luego agrega el clon a la colección.
CustomPart clonedPart = doc.PackageCustomParts[1].Clone();
doc.PackageCustomParts.Add(clonedPart);
Assert.AreEqual(3, doc.PackageCustomParts.Count);

// Enumerar la colección e imprimir cada parte.
using (IEnumerator<CustomPart> enumerator = doc.PackageCustomParts.GetEnumerator())
{
    int index = 0;
    while (enumerator.MoveNext())
    {
        Console.WriteLine($"Part index {index}:");
        Console.WriteLine($"\tName:\t\t\t\t{enumerator.Current.Name}");
        Console.WriteLine($"\tContent type:\t\t{enumerator.Current.ContentType}");
        Console.WriteLine($"\tRelationship type:\t{enumerator.Current.RelationshipType}");
        Console.WriteLine(enumerator.Current.IsExternal ?
            "\tSourced from outside the document" :
            $"\tStored within the document, length: {enumerator.Current.Data.Length} bytes");
        index++;
    }
}

// Podemos eliminar elementos de esta colección individualmente o todos a la vez.
doc.PackageCustomParts.RemoveAt(2);

Assert.AreEqual(2, doc.PackageCustomParts.Count);

doc.PackageCustomParts.Clear();

Assert.AreEqual(0, doc.PackageCustomParts.Count);

Ver también