Administrar porciones de texto en presentaciones usando C++

Obtener coordenadas de una porción de texto

GetCoordinates() method ha sido añadido a IPortion y a la clase Portion, lo que permite recuperar las coordenadas del inicio de la porción:

auto presentation = System::MakeObject<Presentation>(u"Shapes.pptx");
auto shape = System::ExplicitCast<IAutoShape>(presentation->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0));
auto textFrame = shape->get_TextFrame();

for (const auto& paragraph : textFrame->get_Paragraphs())
{
    for (const auto& portion : paragraph->get_Portions())
    {
        PointF point = portion->GetCoordinates();
        Console::WriteLine(String(u"Coordinates X =") + point.get_X() + u" Coordinates Y =" + point.get_Y());
    }
}

FAQ

¿Puedo aplicar un hipervínculo solo a una parte del texto dentro de un mismo párrafo?

Sí, puedes asignar un hipervínculo a una porción individual; solo ese fragmento será clicable, no todo el párrafo.

¿Cómo funciona la herencia de estilos: qué sobrescribe una Portion y qué se toma del Paragraph/TextFrame?

Las propiedades a nivel de Portion tienen la mayor precedencia. Si una propiedad no está establecida en el Portion, el motor la toma del Paragraph; si tampoco está establecida allí, la toma del TextFrame o del estilo del theme.

¿Qué ocurre si la fuente especificada para una Portion no está disponible en la máquina/servidor de destino?

Se aplican las reglas de sustitución de fuentes. El texto puede refluirse: métricas, guionado y ancho pueden cambiar, lo que afecta a la posición precisa.

¿Puedo establecer una transparencia o degradado de relleno de texto específico para una Portion, independiente del resto del párrafo?

Sí, el color, relleno y transparencia del texto a nivel del Portion pueden diferir de los fragmentos vecinos.