Удалить таблицы из существующего PDF
Aspose.PDF для C++ позволяет вставлять и создавать таблицы внутри PDF документа, когда он создается с нуля, или вы также можете добавить объект таблицы в любой существующий PDF документ. Но у вас может возникнуть необходимость манипулировать таблицами в существующем PDF, где вы можете обновить содержимое в существующих ячейках таблицы. Также у вас может возникнуть необходимость удалить объекты таблицы из существующих PDF документов.
Для удаления таблиц нам необходимо использовать класс TableAbsorber, чтобы получить таблицы в существующем PDF, и затем вызвать метод ‘Remove’.
Удалить таблицу из PDF документа
Мы добавили новую функцию, т.е. Убрать в существующий класс 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 документа
Некоторые задачи будут связаны с работой с несколькими таблицами в одном 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");
}