PDF管理控件Aspose.PDF for .Net使用教程(四十九):设置文本格式样式

Aspose.PDF for .NET是一种高PDF处理和解析API,用于在跨平台应用程序中执行文档管理和操作任务。API可以轻松用于生成、修改、转换、渲染、保护和打印PDF文档,而无需使用AdobeAcrobat。此外,API还提供PDF压缩选项,表格创建和操作,图形和图像功能,广泛的超链接功能,印章和水印任务,扩展的安全控制和自定义字体处理。

>>Aspose.PDF for .NET更新至最新版v20.11,欢迎下载体验。

17周年庆来啦!整合所有格式API处理控件Aspose.Total永久授权火热促销中,新购乐享85折起!联系客服立马1分钟了解全部!


添加删除线文本

TextState类提供了设置放置在PDF文档中的TextFragments格式的功能。您可以使用此类将文本格式设置为粗体,斜体,下划线,并在此版本开始时,API提供了将文本格式标记为Strikeout的功能。请尝试使用以下代码片段添加具有Strikeout格式的TextFragment。请使用完整的代码段:

// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_Text();// Open documentDocument pdfDocument = new Document();// Get particular pagePage pdfPage = (Page)pdfDocument.Pages.Add();// Create text fragmentTextFragment textFragment = new TextFragment("main text");textFragment.Position = new Position(100, 600);// Set text propertiestextFragment.TextState.FontSize = 12;textFragment.TextState.Font = FontRepository.FindFont("TimesNewRoman");textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.LightGray;textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.Red;// Set StrikeOut propertytextFragment.TextState.StrikeOut = true;// Mark text as BoldtextFragment.TextState.FontStyle = FontStyles.Bold;// Create TextBuilder objectTextBuilder textBuilder = new TextBuilder(pdfPage);// Append the text fragment to the PDF pagetextBuilder.AppendText(textFragment);dataDir = dataDir + "AddStrikeOutText_out.pdf";// Save resulting PDF document.pdfDocument.Save(dataDir);

对文本应用渐变底纹

// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_Text();    using (Document pdfDocument = new Document(dataDir + "text_sample4.pdf")){    TextFragmentAbsorber absorber = new TextFragmentAbsorber("Lorem ipsum");    pdfDocument.Pages.Accept(absorber);    TextFragment textFragment = absorber.TextFragments[1];    // Create new color with pattern colorspace    textFragment.TextState.ForegroundColor = new Aspose.Pdf.Color()    {        PatternColorSpace = new Aspose.Pdf.Drawing.GradientAxialShading(Color.Red, Color.Blue)    };    textFragment.TextState.Underline = true;    pdfDocument.Save(dataDir + "text_out.pdf");}

添加行缩进

用于.NET的Aspose.PDF将SubsequentLinesIndent属性提供给TextFormattingOptions类。在具有TextFragment和Paragraphs集合的PDF生成方案中,可用于指定行缩进。请使用以下代码段使用该属性:

// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_Text();// Create new document objectAspose.Pdf.Document document = new Aspose.Pdf.Document();Aspose.Pdf.Page page = document.Pages.Add();Aspose.Pdf.Text.TextFragment text = new Aspose.Pdf.Text.TextFragment("A quick brown fox jumped over the lazy dog. A quick brown fox jumped over the lazy dog. A quick brown fox jumped over the lazy dog. A quick brown fox jumped over the lazy dog. A quick brown fox jumped over the lazy dog. A quick brown fox jumped over the lazy dog. A quick brown fox jumped over the lazy dog. A quick brown fox jumped over the lazy dog.");// Initilize TextFormattingOptions for the text fragment and specify SubsequentLinesIndent valuetext.TextState.FormattingOptions = new Aspose.Pdf.Text.TextFormattingOptions(){    SubsequentLinesIndent = 20};page.Paragraphs.Add(text);text = new Aspose.Pdf.Text.TextFragment("Line2");page.Paragraphs.Add(text);text = new Aspose.Pdf.Text.TextFragment("Line3");page.Paragraphs.Add(text);text = new Aspose.Pdf.Text.TextFragment("Line4");page.Paragraphs.Add(text);text = new Aspose.Pdf.Text.TextFragment("Line5");page.Paragraphs.Add(text);document.Save(dataDir + "SubsequentIndent_out.pdf", Aspose.Pdf.SaveFormat.Pdf);

添加文字边框

以下代码段显示了如何使用TextBuilder和设置TextState的DrawTextRectangleBorder属性为文本添加边框:

// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_Text();// Create new document objectDocument pdfDocument = new Document();// Get particular pagePage pdfPage = (Page)pdfDocument.Pages.Add();// Create text fragmentTextFragment textFragment = new TextFragment("main text");textFragment.Position = new Position(100, 600);// Set text propertiestextFragment.TextState.FontSize = 12;textFragment.TextState.Font = FontRepository.FindFont("TimesNewRoman");textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.LightGray;textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.Red;// Set StrokingColor property for drawing border (stroking) around text rectangletextFragment.TextState.StrokingColor = Aspose.Pdf.Color.DarkRed;// Set DrawTextRectangleBorder property value to truetextFragment.TextState.DrawTextRectangleBorder = true;TextBuilder tb = new TextBuilder(pdfPage);tb.AppendText(textFragment);// Save the documentpdfDocument.Save(dataDir + "PDFWithTextBorder_out.pdf");

添加下划线文字

以下代码段显示了如何在创建新的PDF文件时添加下划线文本。

// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_Text();// Create documentation objectDocument pdfDocument = new Document();// Add age page to PDF documentpdfDocument.Pages.Add();// Create TextBuilder for first pageTextBuilder tb = new TextBuilder(pdfDocument.Pages[1]);// TextFragment with sample textTextFragment fragment = new TextFragment("Test message");// Set the font for TextFragmentfragment.TextState.Font = FontRepository.FindFont("Arial");fragment.TextState.FontSize = 10;// Set the formatting of text as Underlinefragment.TextState.Underline = true;// Specify the position where TextFragment needs to be placedfragment.Position = new Position(10, 800);// Append TextFragment to PDF filetb.AppendText(fragment);dataDir = dataDir + "AddUnderlineText_out.pdf";// Save resulting PDF document.pdfDocument.Save(dataDir);

在添加的文本周围添加边框

可以控制所添加文本的外观。下例显示了如何在您添加的文本周围绘制边框,方法是在该文本周围绘制一个矩形。

// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_Text();PdfContentEditor editor = new PdfContentEditor();editor.BindPdf(dataDir + "input.pdf");LineInfo lineInfo = new LineInfo();lineInfo.LineWidth = 2;lineInfo.VerticeCoordinate = new float[] { 0, 0, 100, 100, 50, 100 };lineInfo.Visibility = true;editor.CreatePolygon(lineInfo, 1, new System.Drawing.Rectangle(0, 0, 0, 0), "");dataDir = dataDir + "AddingBorderAroundAddedText_out.pdf";// Save resulting PDF document.editor.Save(dataDir);

添加换行

TextFragment不支持文本内的换行。但是,为了通过换行符添加文本,请使用TextFragment和TextParagraph:

  • 在TextFragment中使用“ r n”或Environment.NewLine而不是单个“ n”;
  • 创建TextParagraph对象。它将添加带有行拆分的文本;
  • 使用TextParagraph.AppendLine添加TextFragment;
  • 使用TextBuilder.AppendParagraph添加TextParagraph。
// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_Text();Aspose.Pdf.Document pdfApplicationDoc = new Aspose.Pdf.Document();Aspose.Pdf.Page applicationFirstPage = (Aspose.Pdf.Page)pdfApplicationDoc.Pages.Add();// Initialize new TextFragment with text containing required newline markersAspose.Pdf.Text.TextFragment textFragment = new Aspose.Pdf.Text.TextFragment("Applicant Name: " + Environment.NewLine + " Joe Smoe");// Set text fragment properties if necessarytextFragment.TextState.FontSize = 12;textFragment.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("TimesNewRoman");textFragment.TextState.BackgroundColor = Aspose.Pdf.Color.LightGray;textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.Red;// Create TextParagraph objectTextParagraph par = new TextParagraph();// Add new TextFragment to paragraphpar.AppendLine(textFragment);// Set paragraph positionpar.Position = new Aspose.Pdf.Text.Position(100, 600);// Create TextBuilder objectTextBuilder textBuilder = new TextBuilder(applicationFirstPage);// Add the TextParagraph using TextBuildertextBuilder.AppendParagraph(par);dataDir = dataDir + "AddNewLineFeed_out.pdf";// Save resulting PDF document.pdfApplicationDoc.Save(dataDir);

浮动框内容的文本对齐

Aspose.PDF支持为Floating Box元素内的内容设置文本对齐方式。如下面的代码示例所示,可以使用Aspose.Pdf.FloatingBox实例的对齐属性来实现此目的。

// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_Text();Aspose.Pdf.Document doc = new Document();doc.Pages.Add();Aspose.Pdf.FloatingBox floatBox = new Aspose.Pdf.FloatingBox(100, 100);floatBox.VerticalAlignment = VerticalAlignment.Bottom;floatBox.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Right;floatBox.Paragraphs.Add(new TextFragment("FloatingBox_bottom"));floatBox.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, Aspose.Pdf.Color.Blue);doc.Pages[1].Paragraphs.Add(floatBox);Aspose.Pdf.FloatingBox floatBox1 = new Aspose.Pdf.FloatingBox(100, 100);floatBox1.VerticalAlignment = VerticalAlignment.Center;floatBox1.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Right;floatBox1.Paragraphs.Add(new TextFragment("FloatingBox_center"));floatBox1.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, Aspose.Pdf.Color.Blue);doc.Pages[1].Paragraphs.Add(floatBox1);Aspose.Pdf.FloatingBox floatBox2 = new Aspose.Pdf.FloatingBox(100, 100);floatBox2.VerticalAlignment = VerticalAlignment.Top;floatBox2.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Right;floatBox2.Paragraphs.Add(new TextFragment("FloatingBox_top"));floatBox2.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, Aspose.Pdf.Color.Blue);doc.Pages[1].Paragraphs.Add(floatBox2);doc.Save(dataDir + "FloatingBox_alignment_review_out.pdf");

还想要更多吗可以点击阅读【2020 · Aspose最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群,我们很高兴为您提供查询和咨询
标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月16日
下一篇 2020年10月17日

相关推荐

发表回复

登录后才能评论