Rotacionar Texto Dentro de PDF usando C#

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

Rotacionar Texto Dentro do PDF Usando a Propriedade de Rotação

Ao usar a propriedade de Rotação 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

// Para exemplos completos e arquivos de dados, por favor, vá até https://github.com/aspose-pdf/Aspose.PDF-for-.NET
string dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Inicializa o objeto documento
Document pdfDocument = new Document();
// Obter página específica
Page pdfPage = (Page)pdfDocument.Pages.Add();
// Criar fragmento de texto
TextFragment textFragment1 = new TextFragment("texto principal");
textFragment1.Position = new Position(100, 600);
// Definir propriedades do texto
textFragment1.TextState.FontSize = 12;
textFragment1.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Criar fragmento de texto rotacionado
TextFragment textFragment2 = new TextFragment("texto rotacionado");
textFragment2.Position = new Position(200, 600);
// Definir propriedades do texto
textFragment2.TextState.FontSize = 12;
textFragment2.TextState.Font = FontRepository.FindFont("TimesNewRoman");
textFragment2.TextState.Rotation = 45;
// Criar fragmento de texto rotacionado
TextFragment textFragment3 = new TextFragment("texto rotacionado");
textFragment3.Position = new Position(300, 600);
// Definir propriedades do texto
textFragment3.TextState.FontSize = 12;
textFragment3.TextState.Font = FontRepository.FindFont("TimesNewRoman");
textFragment3.TextState.Rotation = 90;
// criar objeto TextBuilder
TextBuilder textBuilder = new TextBuilder(pdfPage);
// Anexar o fragmento de texto à página PDF
textBuilder.AppendText(textFragment1);
textBuilder.AppendText(textFragment2);
textBuilder.AppendText(textFragment3);
// Salvar documento
pdfDocument.Save(dataDir + "TextFragmentTests_Rotated1_out.pdf");

Implementação de Rotação usando TextParagraph e TextBuilder (Fragmentos Rotacionados)

// Para exemplos completos e arquivos de dados, por favor, acesse https://github.com/aspose-pdf/Aspose.PDF-for-.NET
string dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Inicializa o objeto do documento
Document pdfDocument = new Document();
// Obtém uma página específica
Page pdfPage = (Page)pdfDocument.Pages.Add();
TextParagraph paragraph = new TextParagraph();
paragraph.Position = new Position(200, 600);
// Cria um fragmento de texto
TextFragment textFragment1 = new TextFragment("texto rotacionado");
// Define as propriedades do texto
textFragment1.TextState.FontSize = 12;
textFragment1.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Define a rotação
textFragment1.TextState.Rotation = 45;
// Cria um fragmento de texto
TextFragment textFragment2 = new TextFragment("texto principal");
// Define as propriedades do texto
textFragment2.TextState.FontSize = 12;
textFragment2.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Cria um fragmento de texto
TextFragment textFragment3 = new TextFragment("outro texto rotacionado");
// Define as propriedades do texto
textFragment3.TextState.FontSize = 12;
textFragment3.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Define a rotação
textFragment3.TextState.Rotation = -45;
// Anexa os fragmentos de texto ao parágrafo
paragraph.AppendLine(textFragment1);
paragraph.AppendLine(textFragment2);
paragraph.AppendLine(textFragment3);
// Cria objeto TextBuilder
TextBuilder textBuilder = new TextBuilder(pdfPage);
// Anexa o parágrafo de texto à página PDF
textBuilder.AppendParagraph(paragraph);
// Salva o documento
pdfDocument.Save(dataDir + "TextFragmentTests_Rotated2_out.pdf");

Implementar Rotação usando TextFragment e Page.Paragraphs

// Para exemplos completos e arquivos de dados, por favor acesse https://github.com/aspose-pdf/Aspose.PDF-for-.NET
string dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Inicializar objeto documento
Document pdfDocument = new Document();
// Obter página específica
Page pdfPage = (Page)pdfDocument.Pages.Add();
// Criar fragmento de texto
TextFragment textFragment1 = new TextFragment("texto principal");
// Definir propriedades do texto
textFragment1.TextState.FontSize = 12;
textFragment1.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Criar fragmento de texto
TextFragment textFragment2 = new TextFragment("texto rotacionado");
// Definir propriedades do texto
textFragment2.TextState.FontSize = 12;
textFragment2.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Definir rotação
textFragment2.TextState.Rotation = 315;
// Criar fragmento de texto
TextFragment textFragment3 = new TextFragment("texto rotacionado");
// Definir propriedades do texto
textFragment3.TextState.FontSize = 12;
textFragment3.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Definir rotação
textFragment3.TextState.Rotation = 270;
pdfPage.Paragraphs.Add(textFragment1);
pdfPage.Paragraphs.Add(textFragment2);
pdfPage.Paragraphs.Add(textFragment3);
// Salvar documento
pdfDocument.Save(dataDir + "TextFragmentTests_Rotated3_out.pdf");

Implementar Rotação usando TextParagraph e TextBuilder (Parágrafo Inteiro Rotacionado)

// Para exemplos completos e arquivos de dados, por favor acesse https://github.com/aspose-pdf/Aspose.PDF-for-.NET
string dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Inicializa o objeto documento
Document pdfDocument = new Document();
// Obtém uma página específica
Page pdfPage = (Page)pdfDocument.Pages.Add();
for (int i = 0; i < 4; i++)
{
    TextParagraph paragraph = new TextParagraph();
    paragraph.Position = new Position(200, 600);
    // Especifica a rotação
    paragraph.Rotation = i * 90 + 45;
    // Cria um fragmento de texto
    TextFragment textFragment1 = new TextFragment("Texto do Parágrafo");
    // Cria um fragmento de texto
    textFragment1.TextState.FontSize = 12;
    textFragment1.TextState.Font = FontRepository.FindFont("TimesNewRoman");
    textFragment1.TextState.BackgroundColor = Aspose.Pdf.Color.LightGray;
    textFragment1.TextState.ForegroundColor = Aspose.Pdf.Color.Blue;
    // Cria um fragmento de texto
    TextFragment textFragment2 = new TextFragment("Segunda linha do texto");
    // Define as propriedades do texto
    textFragment2.TextState.FontSize = 12;
    textFragment2.TextState.Font = FontRepository.FindFont("TimesNewRoman");
    textFragment2.TextState.BackgroundColor = Aspose.Pdf.Color.LightGray;
    textFragment2.TextState.ForegroundColor = Aspose.Pdf.Color.Blue;
    // Cria um fragmento de texto
    TextFragment textFragment3 = new TextFragment("E mais um pouco de texto...");
    // Define as propriedades do texto
    textFragment3.TextState.FontSize = 12;
    textFragment3.TextState.Font = FontRepository.FindFont("TimesNewRoman");
    textFragment3.TextState.BackgroundColor = Aspose.Pdf.Color.LightGray;
    textFragment3.TextState.ForegroundColor = Aspose.Pdf.Color.Blue;
    textFragment3.TextState.Underline = true;
    paragraph.AppendLine(textFragment1);
    paragraph.AppendLine(textFragment2);
    paragraph.AppendLine(textFragment3);
    // Cria objeto TextBuilder
    TextBuilder textBuilder = new TextBuilder(pdfPage);
    // Anexa o fragmento de texto à página do PDF
    textBuilder.AppendParagraph(paragraph);
}
// Salva o documento
pdfDocument.Save(dataDir + "TextFragmentTests_Rotated4_out.pdf");