翻譯|使用教程|編輯:李顯亮|2020-11-20 09:46:08.257|閱讀 682 次
概述:在本系列教程中,將為開發者帶來Aspose.PDF for .NET的一系列使用教程,例如進行文檔間的轉換,如何標記PDF文件,如何使用表單和圖表等等。本文將介紹如何在設置文本格式,如行縮進、下劃線、換行等等。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Aspose.PDF for .NET是一種高PDF處理和解析API,用于在跨平臺應用程序中執行文檔管理和操作任務。API可以輕松用于生成、修改、轉換、渲染、保護和打印PDF文檔,而無需使用Adobe Acrobat。此外,API還提供PDF壓縮選項,表格創建和操作,圖形和圖像功能,廣泛的超鏈接功能,印章和水印任務,擴展的安全控制和自定義字體處理。
在接下來的系列教程中,將為開發者帶來Aspose.PDF for .NET的一系列使用教程,例如進行文檔間的轉換,如何標記PDF文件,如何使用表單和圖表等等。本文將介紹如何在設置文本格式,如行縮進、下劃線、換行等等。
>>Aspose.PDF for .NET更新至最新版v20.11,歡迎下載體驗。
TextState類提供了設置放置在PDF文檔中的TextFragments格式的功能。您可以使用此類將文本格式設置為粗體,斜體,下劃線,并在此版本開始時,API提供了將文本格式標記為Strikeout的功能。請嘗試使用以下代碼片段添加具有Strikeout格式的TextFragment。請使用完整的代碼段:
// The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_Text(); // Open document Document pdfDocument = new Document(); // Get particular page Page pdfPage = (Page)pdfDocument.Pages.Add(); // Create text fragment TextFragment textFragment = new TextFragment("main text"); textFragment.Position = new Position(100, 600); // Set text properties textFragment.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 property textFragment.TextState.StrikeOut = true; // Mark text as Bold textFragment.TextState.FontStyle = FontStyles.Bold; // Create TextBuilder object TextBuilder textBuilder = new TextBuilder(pdfPage); // Append the text fragment to the PDF page textBuilder.AppendText(textFragment); dataDir = dataDir + "AddStrikeOutText_out.pdf"; // Save resulting PDF document. pdfDocument.Save(dataDir);
在用于文本編輯方案的API中,文本格式得到了進一步增強,現在您可以在PDF文檔中添加帶有圖案色彩空間的文本。通過引入PatternColorSpace的新屬性進一步增強了Aspose.Pdf.Color類,該屬性可用于指定文本的底紋顏色。此新屬性在文本中添加了不同的漸變底紋,例如“軸向底紋”,“徑向(類型3)”底紋,如以下代碼片段所示:
// 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 object Aspose.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 value text.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 object Document pdfDocument = new Document(); // Get particular page Page pdfPage = (Page)pdfDocument.Pages.Add(); // Create text fragment TextFragment textFragment = new TextFragment("main text"); textFragment.Position = new Position(100, 600); // Set text properties textFragment.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 rectangle textFragment.TextState.StrokingColor = Aspose.Pdf.Color.DarkRed; // Set DrawTextRectangleBorder property value to true textFragment.TextState.DrawTextRectangleBorder = true; TextBuilder tb = new TextBuilder(pdfPage); tb.AppendText(textFragment); // Save the document pdfDocument.Save(dataDir + "PDFWithTextBorder_out.pdf");
以下代碼段顯示了如何在創建新的PDF文件時添加下劃線文本。
// The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_Text(); // Create documentation object Document pdfDocument = new Document(); // Add age page to PDF document pdfDocument.Pages.Add(); // Create TextBuilder for first page TextBuilder tb = new TextBuilder(pdfDocument.Pages[1]); // TextFragment with sample text TextFragment fragment = new TextFragment("Test message"); // Set the font for TextFragment fragment.TextState.Font = FontRepository.FindFont("Arial"); fragment.TextState.FontSize = 10; // Set the formatting of text as Underline fragment.TextState.Underline = true; // Specify the position where TextFragment needs to be placed fragment.Position = new Position(10, 800); // Append TextFragment to PDF file tb.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:
// 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 markers Aspose.Pdf.Text.TextFragment textFragment = new Aspose.Pdf.Text.TextFragment("Applicant Name: " + Environment.NewLine + " Joe Smoe"); // Set text fragment properties if necessary textFragment.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 object TextParagraph par = new TextParagraph(); // Add new TextFragment to paragraph par.AppendLine(textFragment); // Set paragraph position par.Position = new Aspose.Pdf.Text.Position(100, 600); // Create TextBuilder object TextBuilder textBuilder = new TextBuilder(applicationFirstPage); // Add the TextParagraph using TextBuilder textBuilder.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");
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn