Aspose.PDF for .NET是一种高PDF处理和解析API,用于在跨平台应用程序中执行文档管理和操作任务。API可以轻松用于生成、修改、转换、渲染、保护和打印PDF文档,而无需使用AdobeAcrobat。此外,API还提供PDF压缩选项,表格创建和操作,图形和图像功能,广泛的超链接功能,印章和水印任务,扩展的安全控制和自定义字体处理。
- 在带标签的PDF中创建表格
- 样式表元素
- 样式表行
- 样式表单元
>>Aspose.PDF for .NET更新至最新版v20.7,欢迎下载体验。
在带标签的PDF中创建表格
用于.NET的Aspose.PDF允许在带标签的PDF文档中创建表格。为了处理表,API提供了TableElement类。为了创建表,可以使用ITaggedContent接口的CreateTableElement()方法。此外,可以使用 TableElement类的CreateTHead(),CreateTBody()和CreateTFoot()方法分别创建Table Head,Table Body和Table Foot。若要创建表行,可以使用TableRowCollectionElement的 CreateTR()方法 类。您还可以使用Document类的Validate()方法检查创建的PDF文档是否符合PDF / UA。以下代码段显示了如何在“带标签的PDF”文档中创建表格:
// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();// Create documentDocument document = new Document();ITaggedContent taggedContent = document.TaggedContent;taggedContent.SetTitle("Example table");taggedContent.SetLanguage("en-US");// Get root structure elementStructureElement rootElement = taggedContent.RootElement;TableElement tableElement = taggedContent.CreateTableElement();rootElement.AppendChild(tableElement);tableElement.Border = new BorderInfo(BorderSide.All, 1.2F, Color.DarkBlue);TableTHeadElement tableTHeadElement = tableElement.CreateTHead();TableTBodyElement tableTBodyElement = tableElement.CreateTBody();TableTFootElement tableTFootElement = tableElement.CreateTFoot();int rowCount = 50;int colCount = 4;int rowIndex;int colIndex;TableTRElement headTrElement = tableTHeadElement.CreateTR();headTrElement.AlternativeText = "Head Row";headTrElement.BackgroundColor = Color.LightGray;for (colIndex = 0; colIndex < colCount; colIndex++){ TableTHElement thElement = headTrElement.CreateTH(); thElement.SetText(String.Format("Head {0}", colIndex)); thElement.BackgroundColor = Color.GreenYellow; thElement.Border = new BorderInfo(BorderSide.All, 4.0F, Color.Gray); thElement.IsNoBorder = true; thElement.Margin = new MarginInfo(16.0, 2.0, 8.0, 2.0); thElement.Alignment = HorizontalAlignment.Right;}for (rowIndex = 0; rowIndex < rowCount; rowIndex++){ TableTRElement trElement = tableTBodyElement.CreateTR(); trElement.AlternativeText = String.Format("Row {0}", rowIndex); for (colIndex = 0; colIndex < colCount; colIndex++) { int colSpan = 1; int rowSpan = 1; if (colIndex == 1 && rowIndex == 1) { colSpan = 2; rowSpan = 2; } else if (colIndex == 2 && (rowIndex == 1 || rowIndex == 2)) { continue; } else if (rowIndex == 2 && (colIndex == 1 || colIndex == 2)) { continue; } TableTDElement tdElement = trElement.CreateTD(); tdElement.SetText(String.Format("Cell [{0}, {1}]", rowIndex, colIndex)); tdElement.BackgroundColor = Color.Yellow; tdElement.Border = new BorderInfo(BorderSide.All, 4.0F, Color.Gray); tdElement.IsNoBorder = false; tdElement.Margin = new MarginInfo(8.0, 2.0, 8.0, 2.0); tdElement.Alignment = HorizontalAlignment.Center; TextState cellTextState = new TextState(); cellTextState.ForegroundColor = Color.DarkBlue; cellTextState.FontSize = 7.5F; cellTextState.FontStyle = FontStyles.Bold; cellTextState.Font = FontRepository.FindFont("Arial"); tdElement.DefaultCellTextState = cellTextState; tdElement.IsWordWrapped = true; tdElement.VerticalAlignment = VerticalAlignment.Center; tdElement.ColSpan = colSpan; tdElement.RowSpan = rowSpan; }}TableTRElement footTrElement = tableTFootElement.CreateTR();footTrElement.AlternativeText = "Foot Row";footTrElement.BackgroundColor = Color.LightSeaGreen;for (colIndex = 0; colIndex < colCount; colIndex++){ TableTDElement tdElement = footTrElement.CreateTD(); tdElement.SetText(String.Format("Foot {0}", colIndex)); tdElement.Alignment = HorizontalAlignment.Center; tdElement.StructureTextState.FontSize = 7F; tdElement.StructureTextState.FontStyle = FontStyles.Bold;}StructureAttributes tableAttributes = tableElement.Attributes.GetAttributes(AttributeOwnerStandard.Table);StructureAttribute summaryAttribute = new StructureAttribute(AttributeKey.Summary);summaryAttribute.SetStringValue("The summary text for table");tableAttributes.SetAttribute(summaryAttribute);// Save Tagged Pdf Documentdocument.Save(dataDir + "CreateTableElement.pdf");// Checking PDF/UA compliancedocument = new Document(dataDir + "CreateTableElement.pdf");bool isPdfUaCompliance = document.Validate(dataDir + "table.xml", PdfFormat.PDF_UA_1);Console.WriteLine(String.Format("PDF/UA compliance: {0}", isPdfUaCompliance));
样式表元素
用于.NET的Aspose.PDF允许样式化Tagged PDF文档中的表格。为了给表设置样式,可以使用ITaggedContent 接口的CreateTableElement() 方法 创建表, 并使用TableElement 类的属性设置样式表。以下是可用于设置表格样式的列表属性:
- BackgroundColor
- Border
- Alignment
- CornerStyle
- Broken
- ColumnAdjustment
- ColumnWidths
- DefaultCellBorder
- DefaultCellPadding
- DefaultCellTextState
- DefaultColumnWidth
- IsBroken
- IsBordersIncluded
- Left
- Top
以下代码段显示了如何在“带标签的PDF”文档中设置表格样式:
// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();// Create documentDocument document = new Document();ITaggedContent taggedContent = document.TaggedContent;taggedContent.SetTitle("Example table style");taggedContent.SetLanguage("en-US");// Get root structure elementStructureElement rootElement = taggedContent.RootElement;// Create table structure elementTableElement tableElement = taggedContent.CreateTableElement();rootElement.AppendChild(tableElement);tableElement.BackgroundColor = Color.Beige;tableElement.Border = new BorderInfo(BorderSide.All, 0.80F, Color.Gray);tableElement.Alignment = HorizontalAlignment.Center;tableElement.Broken = TableBroken.Vertical;tableElement.ColumnAdjustment = ColumnAdjustment.AutoFitToWindow;tableElement.ColumnWidths = "80 80 80 80 80";tableElement.DefaultCellBorder = new BorderInfo(BorderSide.All, 0.50F, Color.DarkBlue);tableElement.DefaultCellPadding = new MarginInfo(16.0, 2.0, 8.0, 2.0);tableElement.DefaultCellTextState.ForegroundColor = Color.DarkCyan;tableElement.DefaultCellTextState.FontSize = 8F;tableElement.DefaultColumnWidth = "70";tableElement.IsBroken = false;tableElement.IsBordersIncluded = true;tableElement.Left = 0F;tableElement.Top = 40F;tableElement.RepeatingColumnsCount = 2;tableElement.RepeatingRowsCount = 3;TextState rowStyle = new TextState();rowStyle.BackgroundColor = Color.LightCoral;tableElement.RepeatingRowsStyle = rowStyle;TableTHeadElement tableTHeadElement = tableElement.CreateTHead();TableTBodyElement tableTBodyElement = tableElement.CreateTBody();TableTFootElement tableTFootElement = tableElement.CreateTFoot();int rowCount = 10;int colCount = 5;int rowIndex;int colIndex;TableTRElement headTrElement = tableTHeadElement.CreateTR();headTrElement.AlternativeText = "Head Row";for (colIndex = 0; colIndex < colCount; colIndex++){ TableTHElement thElement = headTrElement.CreateTH(); thElement.SetText(String.Format("Head {0}", colIndex));}for (rowIndex = 0; rowIndex < rowCount; rowIndex++){ TableTRElement trElement = tableTBodyElement.CreateTR(); trElement.AlternativeText = String.Format("Row {0}", rowIndex); for (colIndex = 0; colIndex < colCount; colIndex++) { TableTDElement tdElement = trElement.CreateTD(); tdElement.SetText(String.Format("Cell [{0}, {1}]", rowIndex, colIndex)); }}TableTRElement footTrElement = tableTFootElement.CreateTR();footTrElement.AlternativeText = "Foot Row";for (colIndex = 0; colIndex < colCount; colIndex++){ TableTDElement tdElement = footTrElement.CreateTD(); tdElement.SetText(String.Format("Foot {0}", colIndex));}// Save Tagged Pdf Documentdocument.Save(dataDir + "StyleTableElement.pdf"); // Checking PDF/UA compliancedocument = new Document(dataDir + "StyleTableElement.pdf");bool isPdfUaCompliance = document.Validate(dataDir + "StyleTableElement.xml", PdfFormat.PDF_UA_1);Console.WriteLine(String.Format("PDF/UA compliance: {0}", isPdfUaCompliance));
样式表行
用于.NET的Aspose.PDF允许在标记的PDF文档中设置表格行的样式。为了设置表格行的样式,可以使用TableTRElement 类的属性。以下是可用于设置表格行样式的列表属性:
- BackgroundColor
- Border
- DefaultCellBorder
- MinRowHeight
- FixedRowHeight
- IsInNewPage
- IsRowBroken
- DefaultCellTextState
- DefaultCellPadding
- VerticalAlignment
以下代码段显示了如何在“标记的PDF”文档中设置表格行的样式:
// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();// Create documentDocument document = new Document();ITaggedContent taggedContent = document.TaggedContent;taggedContent.SetTitle("Example table row style");taggedContent.SetLanguage("en-US");// Get root structure elementStructureElement rootElement = taggedContent.RootElement;// Create table structure elementTableElement tableElement = taggedContent.CreateTableElement();rootElement.AppendChild(tableElement);TableTHeadElement tableTHeadElement = tableElement.CreateTHead();TableTBodyElement tableTBodyElement = tableElement.CreateTBody();TableTFootElement tableTFootElement = tableElement.CreateTFoot();int rowCount = 7;int colCount = 3;int rowIndex;int colIndex;TableTRElement headTrElement = tableTHeadElement.CreateTR();headTrElement.AlternativeText = "Head Row";for (colIndex = 0; colIndex < colCount; colIndex++){ TableTHElement thElement = headTrElement.CreateTH(); thElement.SetText(String.Format("Head {0}", colIndex));}for (rowIndex = 0; rowIndex < rowCount; rowIndex++){ TableTRElement trElement = tableTBodyElement.CreateTR(); trElement.AlternativeText = String.Format("Row {0}", rowIndex); trElement.BackgroundColor = Color.LightGoldenrodYellow; trElement.Border = new BorderInfo(BorderSide.All, 0.75F, Color.DarkGray); trElement.DefaultCellBorder = new BorderInfo(BorderSide.All, 0.50F, Color.Blue); trElement.MinRowHeight = 100.0; trElement.FixedRowHeight = 120.0; trElement.IsInNewPage = (rowIndex % 3 == 1); trElement.IsRowBroken = true; TextState cellTextState = new TextState(); cellTextState.ForegroundColor = Color.Red; trElement.DefaultCellTextState = cellTextState; trElement.DefaultCellPadding = new MarginInfo(16.0, 2.0, 8.0, 2.0); trElement.VerticalAlignment = VerticalAlignment.Bottom; for (colIndex = 0; colIndex < colCount; colIndex++) { TableTDElement tdElement = trElement.CreateTD(); tdElement.SetText(String.Format("Cell [{0}, {1}]", rowIndex, colIndex)); }}TableTRElement footTrElement = tableTFootElement.CreateTR();footTrElement.AlternativeText = "Foot Row";for (colIndex = 0; colIndex < colCount; colIndex++){ TableTDElement tdElement = footTrElement.CreateTD(); tdElement.SetText(String.Format("Foot {0}", colIndex));}// Save Tagged Pdf Documentdocument.Save(dataDir + "StyleTableRow.pdf");// Checking PDF/UA compliancedocument = new Document(dataDir + "StyleTableRow.pdf");bool isPdfUaCompliance = document.Validate(dataDir + "StyleTableRow.xml", PdfFormat.PDF_UA_1);Console.WriteLine(String.Format("PDF/UA compliance: {0}", isPdfUaCompliance));
样式表单元
用于.NET的Aspose.PDF允许样式化Tagged PDF文档中的表格单元格。为了设置表格单元格的样式,可以使用TableCellElement类的属性。以下是可用于设置表格单元格样式的列表属性:
- BackgroundColor
- Border
- IsNoBorder
- Margin
- Alignment
- DefaultCellTextState
- IsWordWrapped
- VerticalAlignment
- ColSpan
- RowSpan
以下代码段显示了如何在“标记的PDF”文档中设置表格单元的样式:
// The path to the documents directory.string dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();// Create documentDocument document = new Document();ITaggedContent taggedContent = document.TaggedContent;taggedContent.SetTitle("Example table cell style");taggedContent.SetLanguage("en-US");// Get root structure elementStructureElement rootElement = taggedContent.RootElement;// Create table structure elementTableElement tableElement = taggedContent.CreateTableElement();rootElement.AppendChild(tableElement);TableTHeadElement tableTHeadElement = tableElement.CreateTHead();TableTBodyElement tableTBodyElement = tableElement.CreateTBody();TableTFootElement tableTFootElement = tableElement.CreateTFoot();int rowCount = 4;int colCount = 4;int rowIndex;int colIndex;TableTRElement headTrElement = tableTHeadElement.CreateTR();headTrElement.AlternativeText = "Head Row";for (colIndex = 0; colIndex < colCount; colIndex++){ TableTHElement thElement = headTrElement.CreateTH(); thElement.SetText(String.Format("Head {0}", colIndex)); thElement.BackgroundColor = Color.GreenYellow; thElement.Border = new BorderInfo(BorderSide.All, 4.0F, Color.Gray); thElement.IsNoBorder = true; thElement.Margin = new MarginInfo(16.0, 2.0, 8.0, 2.0); thElement.Alignment = HorizontalAlignment.Right;}for (rowIndex = 0; rowIndex < rowCount; rowIndex++){ TableTRElement trElement = tableTBodyElement.CreateTR(); trElement.AlternativeText = String.Format("Row {0}", rowIndex); for (colIndex = 0; colIndex < colCount; colIndex++) { int colSpan = 1; int rowSpan = 1; if (colIndex == 1 && rowIndex == 1) { colSpan = 2; rowSpan = 2; } else if (colIndex == 2 && (rowIndex == 1 || rowIndex == 2)) { continue; } else if (rowIndex == 2 && (colIndex == 1 || colIndex == 2)) { continue; } TableTDElement tdElement = trElement.CreateTD(); tdElement.SetText(String.Format("Cell [{0}, {1}]", rowIndex, colIndex)); tdElement.BackgroundColor = Color.Yellow; tdElement.Border = new BorderInfo(BorderSide.All, 4.0F, Color.Gray); tdElement.IsNoBorder = false; tdElement.Margin = new MarginInfo(8.0, 2.0, 8.0, 2.0); tdElement.Alignment = HorizontalAlignment.Center; TextState cellTextState = new TextState(); cellTextState.ForegroundColor = Color.DarkBlue; cellTextState.FontSize = 7.5F; cellTextState.FontStyle = FontStyles.Bold; cellTextState.Font = FontRepository.FindFont("Arial"); tdElement.DefaultCellTextState = cellTextState; tdElement.IsWordWrapped = true; tdElement.VerticalAlignment = VerticalAlignment.Center; tdElement.ColSpan = colSpan; tdElement.RowSpan = rowSpan; }}TableTRElement footTrElement = tableTFootElement.CreateTR();footTrElement.AlternativeText = "Foot Row";for (colIndex = 0; colIndex < colCount; colIndex++){ TableTDElement tdElement = footTrElement.CreateTD(); tdElement.SetText(String.Format("Foot {0}", colIndex));}// Save Tagged Pdf Documentdocument.Save(dataDir + "StyleTableCell.pdf");// Checking PDF/UA compliancedocument = new Document(dataDir + "StyleTableCell.pdf");bool isPdfUaCompliance = document.Validate(dataDir + "StyleTableCell.xml", PdfFormat.PDF_UA_1);Console.WriteLine(String.Format("PDF/UA compliance: {0}", isPdfUaCompliance));
还想要更多吗可以点击阅读【2020 · Aspose最新资源整合】,查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(),我们很高兴为您提供查询和咨询。
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!