既存のPDFで表を操作する

既存のPDF内のテーブルを操作する

Aspose.PDF for .NETがサポートする最も初期の機能の一つは、テーブルの操作であり、スクラッチから生成されるPDFファイルや既存のPDFファイルにテーブルを追加するための大きなサポートを提供します。また、データベースの内容に基づいて動的なテーブルを作成するために、データベース(DOM)とテーブルを統合する機能も利用できます。この新しいリリースで、PDFドキュメントのページに既に存在する簡単なテーブルを検索して解析する新機能を実装しました。Aspose.PDF.Text.TableAbsorber という新しいクラスがこれらの機能を提供します。TableAbsorberの使用方法は、既存のTextFragmentAbsorberクラスに非常に似ています。次のコードスニペットは、特定のテーブルセルの内容を更新する手順を示しています。

次のコードスニペットは、Aspose.PDF.Drawing ライブラリとも連携します。

// 完全な例やデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください。
// ドキュメントディレクトリへのパス。
string dataDir = RunExamples.GetDataDir_AsposePdf_Tables();

// 既存のPDFファイルをロード
Document pdfDocument = new Document(dataDir + "input.pdf");
// テーブルを見つけるためのTableAbsorberオブジェクトを作成
TableAbsorber absorber = new TableAbsorber();

// absorberを使用して最初のページを訪れる
absorber.Visit(pdfDocument.Pages[1]);

// ページ上の最初のテーブルにアクセスし、その最初のセルとその中のテキストフラグメントを取得
TextFragment fragment = absorber.TableList[0].RowList[0].CellList[0].TextFragments[1];

// セル内の最初のテキストフラグメントのテキストを変更
fragment.Text = "こんにちは世界";
dataDir = dataDir + "ManipulateTable_out.pdf";
pdfDocument.Save(dataDir);

PDFドキュメント内の古いテーブルを新しいテーブルに置き換える

特定のテーブルを見つけて所望のテーブルに置き換える必要がある場合、TableAbsorber クラスの Replace() メソッドを使用できます。次の例は、PDFドキュメント内のテーブルを置き換える機能を示しています:

// 完全な例とデータファイルについては、https://github.com/aspose-pdf/Aspose.PDF-for-.NET をご覧ください。
// ドキュメントディレクトリへのパスです。
string dataDir = RunExamples.GetDataDir_AsposePdf_Tables();

// 既存のPDFドキュメントを読み込む
Document pdfDocument = new Document(dataDir + @"Table_input2.pdf");

// テーブルを見つけるための TableAbsorber オブジェクトを作成する
TableAbsorber absorber = new TableAbsorber();

// absorber で最初のページを訪れる
absorber.Visit(pdfDocument.Pages[1]);

// ページ上の最初のテーブルを取得する
AbsorbedTable table = absorber.TableList[0];

// 新しいテーブルを作成する
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");