Rotate Text Inside PDF using C#
Contents
[
Hide
]
The following code snippet also work with Aspose.PDF.Drawing library.
Rotate Text Inside PDF using Rotation Property
By using the Rotation property of TextFragment Class, you can rotate text at various angles. The text rotation can be used in different scenarios of document generation. You can specify the rotation angle in degrees to rotate the text as per your requirement. Please check the following different scenarios, in which you can implement text rotation.
Implement Rotation using TextFragment and TextBuilder
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RotateTextInsidePDF()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Get particular page
var page = document.Pages.Add();
// Create text fragment
var textFragment1 = new Aspose.Pdf.Text.TextFragment("main text");
textFragment1.Position = new Aspose.Pdf.Text.Position(100, 600);
// Set text properties
textFragment1.TextState.FontSize = 12;
textFragment1.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman");
// Create rotated text fragment
var textFragment2 = new Aspose.Pdf.Text.TextFragment("rotated text");
textFragment2.Position = new Aspose.Pdf.Text.Position(200, 600);
// Set text properties
textFragment2.TextState.FontSize = 12;
textFragment2.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman");
textFragment2.TextState.Rotation = 45;
// Create rotated text fragment
var textFragment3 = new Aspose.Pdf.Text.TextFragment("rotated text");
textFragment3.Position = new Aspose.Pdf.Text.Position(300, 600);
// Set text properties
textFragment3.TextState.FontSize = 12;
textFragment3.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman");
textFragment3.TextState.Rotation = 90;
// create TextBuilder object
var textBuilder = new Aspose.Pdf.Text.TextBuilder(page);
// Append the text fragment to the PDF page
textBuilder.AppendText(textFragment1);
textBuilder.AppendText(textFragment2);
textBuilder.AppendText(textFragment3);
// Save PDF document
document.Save(dataDir + "RotateTextInsidePDF_out.pdf");
}
}
Implement Rotation using TextParagraph and TextBuilder (Rotated Fragments)
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RotateTextInsidePDF()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Get particular page
var page = document.Pages.Add();
var paragraph = new Aspose.Pdf.Text.TextParagraph();
paragraph.Position = new Aspose.Pdf.Text.Position(200, 600);
// Create text fragment
var textFragment1 = new Aspose.Pdf.Text.TextFragment("rotated text");
// Set text properties
textFragment1.TextState.FontSize = 12;
textFragment1.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman");
// Set rotation
textFragment1.TextState.Rotation = 45;
// Create text fragment
var textFragment2 = new Aspose.Pdf.Text.TextFragment("main text");
// Set text properties
textFragment2.TextState.FontSize = 12;
textFragment2.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman");
// Create text fragment
var textFragment3 = new Aspose.Pdf.Text.TextFragment("another rotated text");
// Set text properties
textFragment3.TextState.FontSize = 12;
textFragment3.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman");
// Set rotation
textFragment3.TextState.Rotation = -45;
// Append the text fragments to the paragraph
paragraph.AppendLine(textFragment1);
paragraph.AppendLine(textFragment2);
paragraph.AppendLine(textFragment3);
// Create TextBuilder object
var textBuilder = new Aspose.Pdf.Text.TextBuilder(page);
// Append the text paragraph to the PDF page
textBuilder.AppendParagraph(paragraph);
// Save PDF document
document.Save(dataDir + "RotateTextInsidePDF_out.pdf");
}
}
Implement Rotation using TextFragment and Page.Paragraphs
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RotateTextInsidePDF()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Get particular page
var page = document.Pages.Add();
// Create text fragment
var textFragment1 = new Aspose.Pdf.Text.TextFragment("main text");
// Set text properties
textFragment1.TextState.FontSize = 12;
textFragment1.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman");
// Create text fragment
var textFragment2 = new Aspose.Pdf.Text.TextFragment("rotated text");
// Set text properties
textFragment2.TextState.FontSize = 12;
textFragment2.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman");
// Set rotation
textFragment2.TextState.Rotation = 315;
// Create text fragment
var textFragment3 = new Aspose.Pdf.Text.TextFragment("rotated text");
// Set text properties
textFragment3.TextState.FontSize = 12;
textFragment3.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman");
// Set rotation
textFragment3.TextState.Rotation = 270;
page.Paragraphs.Add(textFragment1);
page.Paragraphs.Add(textFragment2);
page.Paragraphs.Add(textFragment3);
// Save PDF document
document.Save(dataDir + "RotateTextInsidePDF_out.pdf");
}
}
Implement Rotation using TextParagraph and TextBuilder (Whole Paragraph Rotated)
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RotateTextInsidePDF()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Get particular page
var page = document.Pages.Add();
for (int i = 0; i < 4; i++)
{
var paragraph = new Aspose.Pdf.Text.TextParagraph();
paragraph.Position = new Aspose.Pdf.Text.Position(200, 600);
// Specify rotation
paragraph.Rotation = i * 90 + 45;
// Create text fragment
var textFragment1 = new Aspose.Pdf.Text.TextFragment("Paragraph Text");
// Create text fragment
textFragment1.TextState.FontSize = 12;
textFragment1.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman");
textFragment1.TextState.BackgroundColor = Aspose.Pdf.Color.LightGray;
textFragment1.TextState.ForegroundColor = Aspose.Pdf.Color.Blue;
// Create text fragment
var textFragment2 = new Aspose.Pdf.Text.TextFragment("Second line of text");
// Set text properties
textFragment2.TextState.FontSize = 12;
textFragment2.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman");
textFragment2.TextState.BackgroundColor = Aspose.Pdf.Color.LightGray;
textFragment2.TextState.ForegroundColor = Aspose.Pdf.Color.Blue;
// Create text fragment
var textFragment3 = new Aspose.Pdf.Text.TextFragment("And some more text...");
// Set text properties
textFragment3.TextState.FontSize = 12;
textFragment3.TextState.Font = Aspose.Pdf.Text.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);
// Create TextBuilder object
var textBuilder = new Aspose.Pdf.Text.TextBuilder(page);
// Append the text fragment to the PDF page
textBuilder.AppendParagraph(paragraph);
}
// Save PDF document
document.Save(dataDir + "RotateTextInsidePDF_out.pdf");
}
}