Aspose.PDF for .NET是一种高PDF处理和解析API,用于在跨平台应用程序中执行文档管理和操作任务。API可以轻松用于生成、修改、转换、渲染、保护和打印PDF文档,而无需使用AdobeAcrobat。此外,API还提供PDF压缩选项,表格创建和操作,图形和图像功能,广泛的超链接功能,印章和水印任务,扩展的安全控制和自定义字体处理。
>>Aspose.PDF for .NET更新至最新版v20.11,欢迎下载体验。
17周年庆来啦!整合所有格式API处理控件Aspose.Total永久授权火热促销中,新购乐享85折起!联系客服立马1分钟了解全部!
在现有的PDF文件中添加文本
要将文本添加到现有的PDF文件中,需要以下步骤:
- 使用文档对象打开输入的PDF。
- 获取要向其添加文本的特定页面。
- 使用输入文本以及其他文本属性创建一个TextFragment对象。从特定页面创建的TextBuilder对象(要向其添加文本)允许您使用AppendText方法将TextFragment对象添加到页面。
- 调用Document对象的Save方法并保存输出的PDF文件。
添加文字
以下代码段显示了如何在现有的PDF文件中添加文本。
// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_Text();// Open documentDocument pdfDocument = new Document(dataDir + "input.pdf");// Get particular pagePage pdfPage = (Page)pdfDocument.Pages[1];// 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.FromRgb(System.Drawing.Color.LightGray);textFragment.TextState.ForegroundColor = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);// Create TextBuilder objectTextBuilder textBuilder = new TextBuilder(pdfPage);// Append the text fragment to the PDF pagetextBuilder.AppendText(textFragment); dataDir = dataDir + "AddText_out.pdf";// Save resulting PDF document.pdfDocument.Save(dataDir);
从流中加载字体
以下代码片段显示了在将文本添加到PDF文档时如何从Stream对象加载Font。
// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_Text();string fontFile = "";// Load input PDF fileDocument doc = new Document( dataDir + "input.pdf");// Create text builder object for first page of documentTextBuilder textBuilder = new TextBuilder(doc.Pages[1]);// Create text fragment with sample stringTextFragment textFragment = new TextFragment("Hello world");if (fontFile != ""){ // Load the TrueType font into stream object using (FileStream fontStream = File.OpenRead(fontFile)) { // Set the font name for text string textFragment.TextState.Font = FontRepository.OpenFont(fontStream, FontTypes.TTF); // Specify the position for Text Fragment textFragment.Position = new Position(10, 10); // Add the text to TextBuilder so that it can be placed over the PDF file textBuilder.AppendText(textFragment); } dataDir = dataDir + "LoadingFontFromStream_out.pdf"; // Save resulting PDF document. doc.Save(dataDir);}
使用TextParagraph添加文本
以下代码段显示了如何使用TextParagraph类在PDF文档中添加文本。
// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_Text();// Open documentDocument doc = new Document();// Add page to pages collection of Document objectPage page = doc.Pages.Add();TextBuilder builder = new TextBuilder(page);// Create text paragraphTextParagraph paragraph = new TextParagraph();// Set subsequent lines indentparagraph.SubsequentLinesIndent = 20;// Specify the location to add TextParagraphparagraph.Rectangle = new Aspose.Pdf.Rectangle(100, 300, 200, 700);// Specify word wraping modeparagraph.FormattingOptions.WrapMode = TextFormattingOptions.WordWrapMode.ByWords;// Create text fragmentTextFragment fragment1 = new TextFragment("the quick brown fox jumps over the lazy dog");fragment1.TextState.Font = FontRepository.FindFont("Times New Roman");fragment1.TextState.FontSize = 12;// Add fragment to paragraphparagraph.AppendLine(fragment1);// Add paragraphbuilder.AppendParagraph(paragraph);dataDir = dataDir + "AddTextUsingTextParagraph_out.pdf";// Save resulting PDF document.doc.Save(dataDir);
将超链接添加到TextSegment
PDF页面可以包含一个或多个TextFragment对象,其中每个TextFragment对象可以具有一个或多个TextSegment实例。为了设置TextSegment的超链接,可以在提供Aspose.Pdf.WebHyperlink实例的对象时使用TextSegment类的Hyperlink属性。请尝试使用以下代码段来满足此要求。
// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_Text();// Create document instanceDocument doc = new Document();// Add page to pages collection of PDF filePage page1 = doc.Pages.Add();// Create TextFragment instanceTextFragment tf = new TextFragment("Sample Text Fragment");// Set horizontal alignment for TextFragmenttf.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Right;// Create a textsegment with sample textTextSegment segment = new TextSegment(" ... Text Segment 1...");// Add segment to segments collection of TextFragmenttf.Segments.Add(segment);// Create a new TextSegmentsegment = new TextSegment("Link to Google");// Add segment to segments collection of TextFragmenttf.Segments.Add(segment);// Set hyperlink for TextSegmentsegment.Hyperlink = new Aspose.Pdf.WebHyperlink("www.google.com");// Set forground color for text segmentsegment.TextState.ForegroundColor = Aspose.Pdf.Color.Blue;// Set text formatting as italicsegment.TextState.FontStyle = FontStyles.Italic;// Create another TextSegment objectsegment = new TextSegment("TextSegment without hyperlink");// Add segment to segments collection of TextFragmenttf.Segments.Add(segment);// Add TextFragment to paragraphs collection of page objectpage1.Paragraphs.Add(tf);dataDir = dataDir + "AddHyperlinkToTextSegment_out.pdf";// Save resulting PDF document.doc.Save(dataDir);
使用OTF字体
用于.NET的Aspose.PDF提供了在创建/处理PDF文件内容时使用Custom / TrueType字体的功能,以便使用默认系统字体以外的内容显示文件内容。从.NET 10.3.0的Aspose.PDF版本开始,我们提供了对Open Type Fonts的支持。
// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_Text();// Create new document instanceDocument pdfDocument = new Document();// Add page to pages collection of PDF fileAspose.Pdf.Page page = pdfDocument.Pages.Add();// Create TextFragment instnace with sample textTextFragment fragment = new TextFragment("Sample Text in OTF font");// Find font inside system font directory// Fragment.TextState.Font = FontRepository.FindFont("HelveticaNeueLT Pro 45 Lt");// Or you can even specify the path of OTF font in system directoryfragment.TextState.Font = FontRepository.OpenFont(dataDir + "space age.otf");// Specify to emend font inside PDF file, so that its displayed properly,// Even if specific font is not installed/present over target machinefragment.TextState.Font.IsEmbedded = true;// Add TextFragment to paragraphs collection of Page instancepage.Paragraphs.Add(fragment);dataDir = dataDir + "OTFFont_out.pdf";// Save resulting PDF document.pdfDocument.Save(dataDir);
还想要更多吗可以点击阅读【2020 · Aspose最新资源整合】,查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(),我们很高兴为您提供查询和咨询。
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!