Trabalhando com Cabeçalhos em PDF

Aplicar Estilo de Numeração no Cabeçalho

Qualquer texto em um documento começa com um cabeçalho. Os cabeçalhos são uma parte integral do conteúdo, independentemente do estilo e tema. Os cabeçalhos ajudam a chamar a atenção para o texto e ajudam os usuários a encontrar a informação de que precisam no documento, melhorando a legibilidade e a percepção visual. Usando estilos de cabeçalho, você também pode criar rapidamente um índice, alterar a estrutura do documento. Então, vamos ver como trabalhar com cabeçalhos usando a biblioteca Aspose.PDF para C++.

Aspose.PDF para C++ oferece muitos estilos de numeração pré-definidos. Estas estilos de numeração pré-definidos são armazenados em uma enumeração, NumberingStyle. Os valores pré-definidos da enumeração NumberingStyle e suas descrições são fornecidos abaixo:

Tipos de Cabeçalho Descrição
NumeralsArabic Tipo árabe, por exemplo, 1,1.1,…
NumeralsRomanUppercase Tipo romano maiúsculo, por exemplo, I,I.II, …
NumeralsRomanLowercase Tipo romano minúsculo, por exemplo, i,i.ii, …
LettersUppercase Tipo inglês maiúsculo, por exemplo, A,A.B, …
LettersLowercase Tipo inglês minúsculo, por exemplo, a,a.b, …
A propriedade Style da classe Aspose.PDF.Heading é usada para definir os estilos de numeração dos cabeçalhos.
Figura: Estilos de numeração pré-definidos
O código-fonte, para obter a saída mostrada na figura acima, é fornecido abaixo no exemplo.
void WorkingWithHeadingsInPDF() {
    // String para o nome do caminho
    String _dataDir("C:\\Samples\\");

    // String para o nome do arquivo 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"o valor, na data efetiva do plano, da propriedade a ser distribuída sob o plano em razão de cada permitido");
    heading3->set_Style(NumberingStyle::LettersLowercase);
    heading3->set_IsAutoSequence(true);

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

    // Salvar arquivo de saída concatenado
    document->Save(_dataDir + outputFileName);
}