PDF轉(zhuǎn)換控件Aspose.PDF for .Net使用教程(十六):管理PDF中的表格
Aspose.PDF for .NET是一種高PDF處理和解析API,用于在跨平臺(tái)應(yīng)用程序中執(zhí)行文檔管理和操作任務(wù)。API可以輕松用于生成、修改、轉(zhuǎn)換、渲染、保護(hù)和打印PDF文檔,而無(wú)需使用Adobe Acrobat。此外,API還提供PDF壓縮選項(xiàng),表格創(chuàng)建和操作,圖形和圖像功能,廣泛的超鏈接功能,印章和水印任務(wù),擴(kuò)展的安全控制和自定義字體處理。
在接下來(lái)的系列教程中,將為開(kāi)發(fā)者帶來(lái)Aspose.PDF for .NET的一系列使用教程,例如進(jìn)行文檔間的轉(zhuǎn)換,如何標(biāo)記PDF文件,如何使用表單和圖表等等。
>>Aspose.PDF for .NET更新至最新版v19.10,歡迎下載體驗(yàn)。
致改變世界的程序員——1024限時(shí)滿(mǎn)減,購(gòu)買(mǎi)Aspose文檔系列產(chǎn)品消費(fèi)滿(mǎn)額即享10000元高額減免!更多活動(dòng)詳情可咨詢(xún)?cè)诰€(xiàn)客服哦~
第六章:操作和整合表格
▲第二節(jié):處理現(xiàn)有PDF中的表格
Aspose.PDF for .NET支持的最早功能之一是其使用表格的功能,它為在從頭生成的PDF文件或任何現(xiàn)有PDF文件中添加表提供了強(qiáng)大的支持。還可以將表與數(shù)據(jù)庫(kù)集成(DOM)以基于數(shù)據(jù)庫(kù)內(nèi)容創(chuàng)建動(dòng)態(tài)表。以下代碼段顯示了更新特定表單元格中內(nèi)容的步驟。
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_AsposePdf_Tables(); //加載現(xiàn)有的PDF文件 Document pdfDocument = new Document(dataDir + "input.pdf"); // Create TableAbsorber object to find tables TableAbsorber absorber = new TableAbsorber(); //使用吸收器訪(fǎng)問(wèn)首頁(yè) absorber.Visit(pdfDocument.Pages[1]); // 可以訪(fǎng)問(wèn)頁(yè)面上的第一個(gè)表,它們的第一個(gè)單元格和文本片段 TextFragment fragment = absorber.TableList[0].RowList[0].CellList[0].TextFragments[1]; //更改單元格中第一個(gè)文本片段的文本 fragment.Text = "hi world"; dataDir = dataDir + "ManipulateTable_out.pdf"; pdfDocument.Save(dataDir);
從PDF文檔中刪除表格
以下代碼片段顯示了如何從PDF文檔中刪除表格:
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_AsposePdf_Tables(); //加載現(xiàn)有的PDF文檔 Document pdfDocument = new Document(dataDir + "Table_input.pdf"); //創(chuàng)建TableAbsorber對(duì)象以查找表 TableAbsorber absorber = new TableAbsorber(); //使用吸收器訪(fǎng)問(wèn)首頁(yè) absorber.Visit(pdfDocument.Pages[1]); //獲取頁(yè)面上的第一個(gè)表格 AbsorbedTable table = absorber.TableList[0]; // 刪除表格 absorber.Remove(table); //保存PDF pdfDocument.Save(dataDir + "Table_out.pdf");
從PDF文檔中刪除多個(gè)表
有時(shí),一個(gè)PDF文檔可能包含多個(gè)表,可能會(huì)提出要從中刪除多個(gè)表的要求。為了從PDF文檔中刪除多個(gè)表格,請(qǐng)使用以下代碼段:
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_AsposePdf_Tables(); // 加載現(xiàn)有的PDF文檔 Document pdfDocument = new Document(dataDir + "Table_input2.pdf"); //創(chuàng)建TableAbsorber對(duì)象以查找表 TableAbsorber absorber = new TableAbsorber(); //使用吸收器訪(fǎng)問(wèn)第二頁(yè) absorber.Visit(pdfDocument.Pages[1]); //獲取表集合的副本 AbsorbedTable[] tables = new AbsorbedTable[absorber.TableList.Count]; absorber.TableList.CopyTo(tables, 0); //遍歷collection的副本并刪除表 foreach (AbsorbedTable table in tables) absorber.Remove(table); //保存文件 pdfDocument.Save(dataDir + "Table2_out.pdf");
用PDF文檔中的新表替換舊表
如果需要查找特定的表并將其替換為所需的表,則可以使用Class Replace()方法TableAbsorber來(lái)做到這一點(diǎn)。以下示例演示了替換PDF文檔中表格的功能:
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_AsposePdf_Tables(); //加載現(xiàn)有的PDF文檔 Document pdfDocument = new Document(dataDir + @"Table_input2.pdf"); //創(chuàng)建TableAbsorber對(duì)象以查找表 TableAbsorber absorber = new TableAbsorber(); //使用吸收器訪(fǎng)問(wèn)首頁(yè) absorber.Visit(pdfDocument.Pages[1]); // 獲取頁(yè)面上的第一個(gè)表格 AbsorbedTable table = absorber.TableList[0]; //創(chuàng)建新表 Table newTable = new Table(); newTable.ColumnWidths = "100 100 100"; newTable.DefaultCellBorder = new BorderInfo(BorderSide.All, 1F); Row row = newTable.Rows.Add(); row.Cells.Add("Col 1"); row.Cells.Add("Col 2"); row.Cells.Add("Col 3"); // 用新表替換表 absorber.Replace(pdfDocument.Pages[1], table, newTable); //保存文件 pdfDocument.Save(dataDir + "TableReplaced_out.pdf");
ASPOSE技術(shù)交流QQ群(642018183)已開(kāi)通,各類(lèi)資源及時(shí)分享,歡迎交流討論!
如果你對(duì)Aspose的產(chǎn)品感興趣或有任何技術(shù)難題都可以?huà)呙柘路蕉S碼告訴我們哦~
↓↓↓