Working with Headings in PDF

Aplicar Estilo de Numeración en el Encabezado

Cualquier texto en un documento comienza con un encabezado. Los encabezados son una parte integral del contenido, independientemente del estilo y tema. Los encabezados ayudan a llamar la atención sobre el texto y ayudan a los usuarios a encontrar la información que necesitan en el documento, mejorando la legibilidad y la percepción visual. Usando estilos de encabezado, también puede crear rápidamente una tabla de contenido, cambiar la estructura del documento. Entonces, veamos cómo trabajar con encabezados usando la biblioteca Aspose.PDF para C++.

Aspose.PDF para C++ ofrece muchos estilos de numeración predefinidos. Estas estilos de numeración predefinidos están almacenados en una enumeración, NumberingStyle. Los valores predefinidos de la enumeración NumberingStyle y sus descripciones se dan a continuación:

Tipos de encabezado Descripción
NumeralsArabic Tipo árabe, por ejemplo, 1,1.1,…
NumeralsRomanUppercase Tipo romano mayúsculas, por ejemplo, I,I.II, …
NumeralsRomanLowercase Tipo romano minúsculas, por ejemplo, i,i.ii, …
LettersUppercase Tipo inglés mayúsculas, por ejemplo, A,A.B, …
LettersLowercase Tipo inglés minúsculas, por ejemplo, a,a.b, …
La propiedad Style de la clase Aspose.PDF.Heading se utiliza para establecer los estilos de numeración de los encabezados.
Figura: Estilos de numeración predefinidos
El código fuente, para obtener la salida mostrada en la figura anterior, se proporciona a continuación en el ejemplo.
void WorkingWithHeadingsInPDF() {
    // String para nombre de ruta
    String _dataDir("C:\\Samples\\");

    // String para nombre de archivo de entrada
    String outputFileName("ApplyNumberStyle_out.pdf");

    // Abrir documento
    auto document = MakeObject<Document>();

    document->get_PageInfo()->set_Width(612.0);
    document->get_PageInfo()->set_Height(792.0);
    document->get_PageInfo()->set_Margin (MakeObject<MarginInfo>());
    document->get_PageInfo()->get_Margin()->set_Left(72);
    document->get_PageInfo()->get_Margin()->set_Right(72);
    document->get_PageInfo()->get_Margin()->set_Top (72);
    document->get_PageInfo()->get_Margin()->set_Bottom (72);
            
    auto pdfPage = document->get_Pages()->Add();
    pdfPage->get_PageInfo()->set_Width (612.0);
    pdfPage->get_PageInfo()->set_Height (792.0);
    pdfPage->get_PageInfo()->set_Margin(MakeObject<MarginInfo>());
    pdfPage->get_PageInfo()->get_Margin()->set_Left(72);
    pdfPage->get_PageInfo()->get_Margin()->set_Right(72);
    pdfPage->get_PageInfo()->get_Margin()->set_Top(72);
    pdfPage->get_PageInfo()->get_Margin()->set_Bottom(72);

    auto floatBox = MakeObject<FloatingBox>();
    floatBox->set_Margin(pdfPage->get_PageInfo()->get_Margin());

    pdfPage->get_Paragraphs()->Add(floatBox);

    auto textFragment = MakeObject<TextFragment>();
    auto segment = MakeObject<TextSegment>();

    auto heading = MakeObject<Heading>(1);
    heading->set_IsInList(true);
    heading->set_StartNumber(1);
    heading->set_Text (u"List 1");
    heading->set_Style(NumberingStyle::NumeralsRomanLowercase);
    heading->set_IsAutoSequence(true);

    floatBox->get_Paragraphs()->Add(heading);

    auto heading2 = MakeObject<Heading>(1);
    heading2->set_IsInList (true);
    heading2->set_StartNumber(13);
    heading2->set_Text (u"List 2");
    heading2->set_Style(NumberingStyle::NumeralsRomanLowercase);
    heading2->set_IsAutoSequence(true);;

    floatBox->get_Paragraphs()->Add(heading2);

    auto heading3 = MakeObject<Heading>(2);
    heading3->set_IsInList (true);
    heading3->set_StartNumber(1);
    heading3->set_Text (u"el valor, a partir de la fecha efectiva del plan, de la propiedad que se distribuirá bajo el plan debido a cada permitido");
    heading3->set_Style(NumberingStyle::LettersLowercase);
    heading3->set_IsAutoSequence(true);

    floatBox->get_Paragraphs()->Add(heading3); 

    // Guardar archivo de salida concatenado
    document->Save(_dataDir + outputFileName);
}