既存のPDFからテーブルを削除
Aspose.PDF for C++を使用すると、ゼロから生成されているPDFドキュメント内にテーブルを挿入および作成することができます。また、既存のPDFドキュメントにもテーブルオブジェクトを追加することができます。しかし、既存のPDFでテーブルを操作する必要がある場合、既存のテーブルセルの内容を更新できます。また、既存のPDFドキュメントからテーブルオブジェクトを削除する必要があるかもしれません。
テーブルを削除するために、既存のPDF内のテーブルを取得するためにTableAbsorberクラスを使用し、その後に’Remove’メソッドを呼び出す必要があります。
PDFドキュメントからテーブルを削除
新しい関数を追加しました。すなわち、 Remove 既存のTableAbsorberクラスに、PDFドキュメントからテーブルを削除するために追加します。吸収器がページ上のテーブルを正常に見つけると、それらを削除することが可能になります。以下のコードスニペットを確認して、PDFドキュメントからテーブルを削除する方法を示しています:
Headers:
#include <Aspose.PDF.Cpp/Document.h>
#include <Aspose.PDF.Cpp/Page.h>
#include <Aspose.PDF.Cpp/PageCollection.h>
#include <Aspose.PDF.Cpp/Text/TableAbsorber/TableAbsorber.h>
Samples:
using namespace System;
using namespace Aspose::Pdf;
void RemoveTable() {
String _dataDir("C:\\Samples\\");
// ソースPDFドキュメントをロード
auto document = MakeObject<Document>(_dataDir + u"Table_input.pdf");
// テーブルを見つけるためにTableAbsorberオブジェクトを作成
auto absorber = MakeObject<Aspose::Pdf::Text::TableAbsorber>();
// 吸収器で最初のページを訪問
absorber->Visit(document->get_Pages()->idx_get(1));
// ページ上の最初のテーブルを取得
auto table = absorber->get_TableList()->idx_get(0);
// テーブルを削除
absorber->Remove(table);
// PDFを保存
document->Save(_dataDir + u"Table_out.pdf");
}
PDFドキュメントから複数のテーブルを削除する
いくつかのタスクは、1つのPDFドキュメントに複数のテーブルを含む作業に関連します。 そして、そこからいくつかのテーブルを削除する必要があります。PDFドキュメントから複数のテーブルを削除するには、次のコードスニペットを使用します:
void RemoveMultipleTables() {
String _dataDir("C:\\Samples\\");
// 既存のPDFドキュメントをロード
auto document = MakeObject<Document>(_dataDir + u"Table_input2.pdf");
// テーブルを見つけるためのTableAbsorberオブジェクトを作成
auto absorber = MakeObject<Aspose::Pdf::Text::TableAbsorber>();
// アブソーバーで最初のページを訪問
absorber->Visit(document->get_Pages()->idx_get(1));
// テーブルコレクションのコピーを取得
auto tables = absorber->get_TableList();
// コレクションのコピーをループし、テーブルを削除
for(auto table : tables)
absorber->Remove(table);
// ドキュメントを保存
document->Save(_dataDir + u"Table2_out.pdf");
}
テーブルを削除または置き換えると、TableListコレクションが変更されることを考慮してください。 Therefore, in case removing/replacing tables in a loop the copying of TableList collection is essential.
したがって、ループ内でテーブルを削除/置換する場合、TableList コレクションのコピーが不可欠です。