Вращение текста внутри PDF с использованием C#
Contents
[
Hide
]
Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.
Поворот текста внутри PDF с использованием свойства Rotation
Используя свойство 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("основной текст");
textFragment1.Position = new Position(100, 600);
// Установка свойств текста
textFragment1.TextState.FontSize = 12;
textFragment1.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// Создание повернутого фрагмента текста
TextFragment textFragment2 = new TextFragment("повернутый текст");
textFragment2.Position = new Position(200, 600);
// Установка свойств текста
textFragment2.TextState.FontSize = 12;
textFragment2.TextState.Font = FontRepository.FindFont("TimesNewRoman");
textFragment2.TextState.Rotation = 45;
// Создание повернутого фрагмента текста
TextFragment textFragment3 = new TextFragment("повернутый текст");
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");