Rotacionar Texto Dentro do PDF usando C++
Contents
[
Hide
]
Rotacionar Texto Dentro do PDF usando Propriedade de Rotação
Usando a propriedade Rotation da classe TextFragment, você pode rotacionar o texto em vários ângulos. A rotação de texto pode ser usada em diferentes cenários de geração de documentos. Você pode especificar o ângulo de rotação em graus para rotacionar o texto conforme sua necessidade. Por favor, verifique os diferentes cenários a seguir, nos quais você pode implementar a rotação de texto.
Implementar Rotação usando TextFragment e TextBuilder
using namespace System;
using namespace Aspose::Pdf;
using namespace Aspose::Pdf::Text;
void ImplementRotationUsingTextFragmentAndTextBuilder() {
String _dataDir("C:\\Samples\\");
// Inicializar objeto de documento
auto document = MakeObject<Document>();
// Obter página específica
auto page = document->get_Pages()->Add();
// Criar fragmento de texto
auto textFragment1 = MakeObject<TextFragment>("main text");
textFragment1->set_Position(MakeObject<Position>(100, 600));
// Definir propriedades do texto
textFragment1->get_TextState()->set_FontSize(12);
textFragment1->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// Criar fragmento de texto rotacionado
auto textFragment2 = MakeObject<TextFragment>("rotated text");
textFragment2->set_Position(MakeObject<Position>(200, 600));
// Definir propriedades do texto
textFragment2->get_TextState()->set_FontSize(12);
textFragment2->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment2->get_TextState()->set_Rotation(45);
// Criar fragmento de texto rotacionado
auto textFragment3 = MakeObject<TextFragment>("rotated text");
textFragment3->set_Position(MakeObject<Position>(300, 600));
// Definir propriedades do texto
textFragment3->get_TextState()->set_FontSize(12);
textFragment3->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment3->get_TextState()->set_Rotation(90);
// criar objeto TextBuilder
auto textBuilder = MakeObject<TextBuilder>(page);
// Anexar o fragmento de texto à página do PDF
textBuilder->AppendText(textFragment1);
textBuilder->AppendText(textFragment2);
textBuilder->AppendText(textFragment3);
// Salvar documento
document->Save(_dataDir + u"TextFragmentTests_Rotated1_out.pdf");
}
Implementar Rotação usando TextParagraph e TextBuilder (Fragmentos Rotacionados)
void ImplementRotationUsingTextParagraphAndTextBuilder_RotatedFragments() {
String _dataDir("C:\\Samples\\");
// Inicializar objeto documento
auto document = MakeObject<Document>();
// Obter página específica
auto page = document->get_Pages()->Add();
auto paragraph = MakeObject<TextParagraph>();
paragraph->set_Position(MakeObject<Position>(200, 600));
// Criar fragmento de texto
auto textFragment1 = MakeObject<TextFragment>("texto rotacionado");
// Definir propriedades do texto
textFragment1->get_TextState()->set_FontSize(12);
textFragment1->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// Definir rotação
textFragment1->get_TextState()->set_Rotation(45);
// Criar fragmento de texto
auto textFragment2 = MakeObject<TextFragment>("texto principal");
// Definir propriedades do texto
textFragment2->get_TextState()->set_FontSize(12);
textFragment2->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// Criar fragmento de texto
auto textFragment3 = MakeObject<TextFragment>("outro texto rotacionado");
// Definir propriedades do texto
textFragment3->get_TextState()->set_FontSize(12);
textFragment3->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// Definir rotação
textFragment3->get_TextState()->set_Rotation(-45);
// Adicionar os fragmentos de texto ao parágrafo
paragraph->AppendLine(textFragment1);
paragraph->AppendLine(textFragment2);
paragraph->AppendLine(textFragment3);
// Criar objeto TextBuilder
auto textBuilder = MakeObject<TextBuilder>(page);
// Adicionar o parágrafo de texto à página PDF
textBuilder->AppendParagraph(paragraph);
// Salvar documento
document->Save(_dataDir + u"TextFragmentTests_Rotated2_out.pdf");
}
Implementar Rotação usando TextFragment e Page.Paragraphs
void ImplementRotationUsingTextFragmentAndPageParagraphs() {
String _dataDir("C:\\Samples\\");
// Inicializar objeto do documento
auto document = MakeObject<Document>();
// Obter página específica
auto page = document->get_Pages()->Add();
// Criar fragmento de texto
auto textFragment1 = MakeObject<TextFragment>("texto principal");
// Definir propriedades do texto
textFragment1->get_TextState()->set_FontSize(12);
textFragment1->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// Criar fragmento de texto
auto textFragment2 = MakeObject<TextFragment>("texto rotacionado");
// Definir propriedades do texto
textFragment2->get_TextState()->set_FontSize(12);
textFragment2->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// Definir rotação
textFragment2->get_TextState()->set_Rotation(315);
// Criar fragmento de texto
auto textFragment3 = MakeObject<TextFragment>("texto rotacionado");
// Definir propriedades do texto
textFragment3->get_TextState()->set_FontSize(12);
textFragment3->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// Definir rotação
textFragment3->get_TextState()->set_Rotation(270);
page->get_Paragraphs()->Add(textFragment1);
page->get_Paragraphs()->Add(textFragment2);
page->get_Paragraphs()->Add(textFragment3);
// Salvar documento
document->Save(_dataDir + u"TextFragmentTests_Rotated3_out.pdf");
}
Implementar Rotação usando TextParagraph e TextBuilder (Parágrafo Inteiro Rotacionado)
void ImplementRotationUsingTextParagraphAndTextBuilder() {
String _dataDir("C:\\Samples\\");
// Inicializar objeto do documento
auto document = MakeObject<Document>();
// Obter página específica
auto page = document->get_Pages()->Add();
for (int i = 0; i < 4; i++) {
auto paragraph = MakeObject<TextParagraph>();
paragraph->set_Position(MakeObject<Position>(200, 600));
// Especificar rotação
paragraph->set_Rotation(i * 90 + 45);
// Criar fragmento de texto
auto textFragment1 = MakeObject<TextFragment>("Texto do Parágrafo");
// Criar fragmento de texto
textFragment1->get_TextState()->set_FontSize(12);
textFragment1->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment1->get_TextState()->set_BackgroundColor(Color::get_LightGray());
textFragment1->get_TextState()->set_ForegroundColor(Color::get_Blue());
// Criar fragmento de texto
auto textFragment2 = MakeObject<TextFragment>("Segunda linha de texto");
// Definir propriedades do texto
textFragment2->get_TextState()->set_FontSize(12);
textFragment2->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment2->get_TextState()->set_BackgroundColor(Color::get_LightGray());
textFragment2->get_TextState()->set_ForegroundColor(Color::get_Blue());
// Criar fragmento de texto
auto textFragment3 = MakeObject<TextFragment>("E um pouco mais de texto...");
// Definir propriedades do texto
textFragment3->get_TextState()->set_FontSize(12);
textFragment3->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment3->get_TextState()->set_BackgroundColor(Color::get_LightGray());
textFragment3->get_TextState()->set_ForegroundColor(Color::get_Blue());
textFragment3->get_TextState()->set_Underline(true);
paragraph->AppendLine(textFragment1);
paragraph->AppendLine(textFragment2);
paragraph->AppendLine(textFragment3);
// Criar objeto TextBuilder
auto textBuilder = MakeObject<TextBuilder>(page);
// Anexar o fragmento de texto à página PDF
textBuilder->AppendParagraph(paragraph);
}
// Salvar documento
document->Save(_dataDir + u"TextFragmentTests_Rotated4_out.pdf");
}