在 PDF 中旋转文本使用 Python

使用旋转属性在PDF中旋转文本

通过使用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("rotated text");
// 设置文本属性
textFragment1.TextState.FontSize = 12;
textFragment1.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// 设置旋转
textFragment1.TextState.Rotation = 45;
// 创建文本片段
TextFragment textFragment2 = new TextFragment("main text");
// 设置文本属性
textFragment2.TextState.FontSize = 12;
textFragment2.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// 创建文本片段
TextFragment textFragment3 = new TextFragment("another rotated text");
// 设置文本属性
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("main text");
// 设置文本属性
textFragment1.TextState.FontSize = 12;
textFragment1.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// 创建文本片段
TextFragment textFragment2 = new TextFragment("rotated text");
// 设置文本属性
textFragment2.TextState.FontSize = 12;
textFragment2.TextState.Font = FontRepository.FindFont("TimesNewRoman");
// 设置旋转
textFragment2.TextState.Rotation = 315;
// 创建文本片段
TextFragment textFragment3 = new TextFragment("rotated text");
// 设置文本属性
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");