Поворот текста внутри PDF с использованием Python

Поворот текста внутри PDF с использованием свойства вращения

Используя свойство Rotation класса TextFragment, вы можете поворачивать текст под различными углами. Поворот текста может быть использован в различных сценариях генерации документа. Вы можете указать угол поворота в градусах, чтобы повернуть текст по вашему требованию. Пожалуйста, ознакомьтесь со следующими различными сценариями, в которых вы можете реализовать поворот текста.

Реализация поворота с использованием TextFragment и TextBuilder

// Для полных примеров и файлов данных, пожалуйста, посетите https://github.com/aspose-pdf/Aspose.PDF-for-.NET
string dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Инициализировать объект документа
Document pdfDocument = new Document();
// Получить конкретную страницу
Page pdfPage = (Page)pdfDocument.Pages.Add();
// Создать текстовый фрагмент
TextFragment textFragment1 = new TextFragment("main text");
textFragment1.Position = new Position(100, 600);
// Установить свойства текста
textFragment1.TextState.FontSize = 12;
textFragment1.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Создать повернутый текстовый фрагмент
TextFragment textFragment2 = new TextFragment("rotated text");
textFragment2.Position = new Position(200, 600);
// Установить свойства текста
textFragment2.TextState.FontSize = 12;
textFragment2.TextState.Font = FontRepository.FindFont("TimesNewRoman");
textFragment2.TextState.Rotation = 45;
// Создать повернутый текстовый фрагмент
TextFragment textFragment3 = new TextFragment("rotated text");
textFragment3.Position = new Position(300, 600);
// Установить свойства текста
textFragment3.TextState.FontSize = 12;
textFragment3.TextState.Font = FontRepository.FindFont("TimesNewRoman");
textFragment3.TextState.Rotation = 90;
// создать объект TextBuilder
TextBuilder textBuilder = new TextBuilder(pdfPage);
// Добавить текстовый фрагмент на страницу PDF
textBuilder.AppendText(textFragment1);
textBuilder.AppendText(textFragment2);
textBuilder.AppendText(textFragment3);
// Сохранить документ
pdfDocument.Save(dataDir + "TextFragmentTests_Rotated1_out.pdf");

Реализация вращения с использованием TextParagraph и TextBuilder (Вращаемые фрагменты)

// Для полных примеров и файлов данных, пожалуйста, перейдите на https://github.com/aspose-pdf/Aspose.PDF-for-.NET
string dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Инициализация объекта документа
Document pdfDocument = new Document();
// Получить конкретную страницу
Page pdfPage = (Page)pdfDocument.Pages.Add();
TextParagraph paragraph = new TextParagraph();
paragraph.Position = new Position(200, 600);
// Создать текстовый фрагмент
TextFragment textFragment1 = new TextFragment("повернутый текст");
// Установить свойства текста
textFragment1.TextState.FontSize = 12;
textFragment1.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Установить вращение
textFragment1.TextState.Rotation = 45;
// Создать текстовый фрагмент
TextFragment textFragment2 = new TextFragment("основной текст");
// Установить свойства текста
textFragment2.TextState.FontSize = 12;
textFragment2.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Создать текстовый фрагмент
TextFragment textFragment3 = new TextFragment("другой повернутый текст");
// Установить свойства текста
textFragment3.TextState.FontSize = 12;
textFragment3.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Установить вращение
textFragment3.TextState.Rotation = -45;
// Добавить текстовые фрагменты в параграф
paragraph.AppendLine(textFragment1);
paragraph.AppendLine(textFragment2);
paragraph.AppendLine(textFragment3);
// Создать объект TextBuilder
TextBuilder textBuilder = new TextBuilder(pdfPage);
// Добавить текстовый параграф на страницу PDF
textBuilder.AppendParagraph(paragraph);
// Сохранить документ
pdfDocument.Save(dataDir + "TextFragmentTests_Rotated2_out.pdf");

Реализация вращения с использованием TextFragment и Page.Paragraphs

// Для полного примера и файлов данных, пожалуйста, посетите https://github.com/aspose-pdf/Aspose.PDF-for-.NET
string dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Инициализировать объект документа
Document pdfDocument = new Document();
// Получить конкретную страницу
Page pdfPage = (Page)pdfDocument.Pages.Add();
// Создать текстовый фрагмент
TextFragment textFragment1 = new TextFragment("основной текст");
// Установить свойства текста
textFragment1.TextState.FontSize = 12;
textFragment1.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Создать текстовый фрагмент
TextFragment textFragment2 = new TextFragment("повернутый текст");
// Установить свойства текста
textFragment2.TextState.FontSize = 12;
textFragment2.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Установить вращение
textFragment2.TextState.Rotation = 315;
// Создать текстовый фрагмент
TextFragment textFragment3 = new TextFragment("повернутый текст");
// Установить свойства текста
textFragment3.TextState.FontSize = 12;
textFragment3.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Установить вращение
textFragment3.TextState.Rotation = 270;
pdfPage.Paragraphs.Add(textFragment1);
pdfPage.Paragraphs.Add(textFragment2);
pdfPage.Paragraphs.Add(textFragment3);
// Сохранить документ
pdfDocument.Save(dataDir + "TextFragmentTests_Rotated3_out.pdf");

Реализация Вращения с использованием TextParagraph и TextBuilder (Вращение всего абзаца)

// Для полноценных примеров и файлов данных, пожалуйста, перейдите на https://github.com/aspose-pdf/Aspose.PDF-for-.NET
string dataDir = RunExamples.GetDataDir_AsposePdf_Text();
// Инициализация объекта документа
Document pdfDocument = new Document();
// Получить конкретную страницу
Page pdfPage = (Page)pdfDocument.Pages.Add();
for (int i = 0; i < 4; i++)
{
    TextParagraph paragraph = new TextParagraph();
    paragraph.Position = new Position(200, 600);
    // Указать вращение
    paragraph.Rotation = i * 90 + 45;
    // Создать текстовый фрагмент
    TextFragment textFragment1 = new TextFragment("Текст абзаца");
    // Создать текстовый фрагмент
    textFragment1.TextState.FontSize = 12;
    textFragment1.TextState.Font = FontRepository.FindFont("TimesNewRoman");
    textFragment1.TextState.BackgroundColor = Aspose.Pdf.Color.LightGray;
    textFragment1.TextState.ForegroundColor = Aspose.Pdf.Color.Blue;
    // Создать текстовый фрагмент
    TextFragment textFragment2 = new TextFragment("Вторая строка текста");
    // Установить свойства текста
    textFragment2.TextState.FontSize = 12;
    textFragment2.TextState.Font = FontRepository.FindFont("TimesNewRoman");
    textFragment2.TextState.BackgroundColor = Aspose.Pdf.Color.LightGray;
    textFragment2.TextState.ForegroundColor = Aspose.Pdf.Color.Blue;
    // Создать текстовый фрагмент
    TextFragment textFragment3 = new TextFragment("И еще немного текста...");
    // Установить свойства текста
    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);
    // Создать объект TextBuilder
    TextBuilder textBuilder = new TextBuilder(pdfPage);
    // Добавить текстовый фрагмент на страницу PDF
    textBuilder.AppendParagraph(paragraph);
}
// Сохранить документ
pdfDocument.Save(dataDir + "TextFragmentTests_Rotated4_out.pdf");