PDF管理控件Aspose.PDF for .Net使用教程(三十五):添加表格
Aspose.PDF for .NET是一种高PDF处理和解析API,用于在跨平台应用程序中执行文档管理和操作任务。API可以轻松用于生成、修改、转换、渲染、保护和打印PDF文档,而无需使用Adobe Acrobat。此外,API还提供PDF压缩选项,表格创建和操作,图形和图像功能,广泛的超链接功能,印章和水印任务,扩展的安全控制和自定义字体处理。
在接下来的系列教程中,将为开发者带来Aspose.PDF for .NET的一系列使用教程,例如进行文档间的转换,如何标记PDF文件,如何使用表单和图表等等。本文将介绍如何添加表格。
>>Aspose.PDF for .NET更新至最新版v20.5,欢迎下载体验。
使用PDF文档时,表格很重要。它们提供了用于以系统方式显示信息的强大功能。该Aspose.PDF.Generator命名空间包含同名的类Table,Cell并且Row它从头开始生成PDF文档时创建表提供的功能。
在现有的PDF文档中添加表格
要将表格添加到带有.NET for Aspose.PDF的现有PDF文件中,请执行以下步骤:
- 加载源文件
- 初始化表并设置其列和行
- 设置表格设置(我们已经设置了边框)
- 填充表格
- 将表添加到页面
- 保存文件
以下代码段显示了如何在现有的PDF文件中添加文本。
// The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_Tables(); // Load source PDF document Aspose.Pdf.Document doc = new Aspose.Pdf.Document(dataDir+ "AddTable.pdf"); // Initializes a new instance of the Table Aspose.Pdf.Table table = new Aspose.Pdf.Table(); // Set the table border color as LightGray table.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .5f, Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray)); // Set the border for table cells table.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, .5f, Aspose.Pdf.Color.FromRgb(System.Drawing.Color.LightGray)); // Create a loop to add 10 rows for (int row_count = 1; row_count < 10; row_count++) { // Add row to table Aspose.Pdf.Row row = table.Rows.Add(); // Add table cells row.Cells.Add("Column (" + row_count + ", 1)"); row.Cells.Add("Column (" + row_count + ", 2)"); row.Cells.Add("Column (" + row_count + ", 3)"); } // Add table object to first page of input document doc.Pages[1].Paragraphs.Add(table); dataDir = dataDir + "document_with_table_out.pdf"; // Save updated document containing table object doc.Save(dataDir);
ColumnAdjustmentType枚举中的AutoFitToWindow属性
// The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_Tables(); // Instntiate the Pdf object by calling its empty constructor Document doc = new Document(); // Create the section in the Pdf object Page sec1 = doc.Pages.Add(); // Instantiate a table object Aspose.Pdf.Table tab1 = new Aspose.Pdf.Table(); // Add the table in paragraphs collection of the desired section sec1.Paragraphs.Add(tab1); // Set with column widths of the table tab1.ColumnWidths = "50 50 50"; tab1.ColumnAdjustment = ColumnAdjustment.AutoFitToWindow; // Set default cell border using BorderInfo object tab1.DefaultCellBorder = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 0.1F); // Set table border using another customized BorderInfo object tab1.Border = new Aspose.Pdf.BorderInfo(Aspose.Pdf.BorderSide.All, 1F); // Create MarginInfo object and set its left, bottom, right and top margins Aspose.Pdf.MarginInfo margin = new Aspose.Pdf.MarginInfo(); margin.Top = 5f; margin.Left = 5f; margin.Right = 5f; margin.Bottom = 5f; // Set the default cell padding to the MarginInfo object tab1.DefaultCellPadding = margin; // Create rows in the table and then cells in the rows Aspose.Pdf.Row row1 = tab1.Rows.Add(); row1.Cells.Add("col1"); row1.Cells.Add("col2"); row1.Cells.Add("col3"); Aspose.Pdf.Row row2 = tab1.Rows.Add(); row2.Cells.Add("item1"); row2.Cells.Add("item2"); row2.Cells.Add("item3"); dataDir = dataDir + "AutoFitToWindow_out.pdf"; // Save updated document containing table object doc.Save(dataDir);
获取表格宽度
有时,需要动态获取表宽度。Aspose.PDF.Table类具有用于此目的的GetWidth()方法。例如,您尚未显式设置表列的宽度并将ColumnAdjustment设置为AutoFitToContent。在这种情况下,您可以按以下方式获取表格宽度。
// Create a new document Document doc = new Document(); // Add page in document Page page = doc.Pages.Add(); // Initialize new table Table table = new Table { ColumnAdjustment = ColumnAdjustment.AutoFitToContent }; // Add row in table Row row = table.Rows.Add(); // Add cell in table Cell cell = row.Cells.Add("Cell 1 text"); cell = row.Cells.Add("Cell 2 text"); // Get table width Console.WriteLine(table.GetWidth());
将SVG对象添加到表单元格
用于.NET的Aspose.PDF支持将表格单元格添加到PDF文件中的功能。创建表格时,可以将文本或图像添加到单元格中。此外,API还提供了将SVG文件转换为PDF格式的功能。结合使用这些功能,可以加载SVG图像并将其添加到表格单元格中。
以下代码段显示了创建表实例并在表单元格内添加SVG图像的步骤。
// The path to the documents directory. string dataDir = RunExamples.GetDataDir_AsposePdf_Tables(); // Instantiate Document object Document doc = new Document(); // Create an image instance Aspose.Pdf.Image img = new Aspose.Pdf.Image(); // Set image type as SVG img.FileType = Aspose.Pdf.ImageFileType.Svg; // Path for source file img.File = dataDir + "SVGToPDF.svg"; // Set width for image instance img.FixWidth = 50; // Set height for image instance img.FixHeight = 50; // Create table instance Aspose.Pdf.Table table = new Aspose.Pdf.Table(); // Set width for table cells table.ColumnWidths = "100 100"; // Create row object and add it to table instance Aspose.Pdf.Row row = table.Rows.Add(); // Create cell object and add it to row instance Aspose.Pdf.Cell cell = row.Cells.Add(); // Add textfragment to paragraphs collection of cell object cell.Paragraphs.Add(new TextFragment("First cell")); // Add another cell to row object cell = row.Cells.Add(); // Add SVG image to paragraphs collection of recently added cell instance cell.Paragraphs.Add(img); // Create page object and add it to pages collection of document instance Page page = doc.Pages.Add(); // Add table to paragraphs collection of page object page.Paragraphs.Add(table); dataDir = dataDir + "AddSVGObject_out.pdf"; // Save PDF file doc.Save(dataDir);
Aspose是目前国内外非常火爆且功能强大的文件格式敏捷开发控件,但因为产品众多、技术问题复杂等因素,也常常遭受开发人员吐槽。如果您也正在使用Aspose相关产品,点击下方按钮,来谈谈Aspose的优劣,您的感受对我们相当宝贵哦~