Manipulasi Tabel di PDF yang Ada

Manipulasi tabel di PDF yang ada

Aspose.PDF untuk C++ memungkinkan Anda untuk bekerja dengan cepat dan efisien dengan tabel, yaitu, membuatnya dari awal atau menambahkannya ke dokumen PDF yang ada.

Anda juga mendapatkan kemampuan untuk mengintegrasikan tabel dengan database (DOM) untuk membuat tabel dinamis berdasarkan isi dari database.

Kelas Aspose.PDF.Text.TableAbsorber memungkinkan Anda untuk mencari dan mem-parsing tabel sederhana yang sudah ada di halaman dokumen PDF. Cuplikan kode berikut menunjukkan langkah-langkah untuk memperbarui konten dalam sel tertentu di tabel.

Headers:

#include <system/date_time.h>
#include <system/io/file.h>
#include <system/console.h>
#include <data/data_table.h>
#include <data/data_column_collection.h>
#include <system/type_info.h>

#include <Aspose.PDF.Cpp/Document.h>
#include <Aspose.PDF.Cpp/Page.h>
#include <Aspose.PDF.Cpp/PageCollection.h>
#include <Aspose.PDF.Cpp/Generator/BorderInfo.h>
#include <Aspose.PDF.Cpp/Generator/BorderSide.h>

#include <Aspose.PDF.Cpp/Text/TextFragment.h>
#include <Aspose.PDF.Cpp/Text/TextFragmentCollection.h>

#include <Aspose.PDF.Cpp/Color.h>

#include <Aspose.PDF.Cpp/Table/Table.h>
#include <Aspose.PDF.Cpp/Table/Row.h>
#include <Aspose.PDF.Cpp/Table/Rows.h>
#include <Aspose.PDF.Cpp/Table/Cell.h>
#include <Aspose.PDF.Cpp/Table/Cells.h>
#include <Aspose.PDF.Cpp/Text/TableAbsorber/TableAbsorber.h>
#include <Aspose.PDF.Cpp/Text/TableAbsorber/AbsorbedTable.h>
#include <Aspose.PDF.Cpp/Text/TableAbsorber/AbsorbedRow.h>
#include <Aspose.PDF.Cpp/Text/TableAbsorber/AbsorbedCell.h>

Samples:

using namespace System;
using namespace Aspose::Pdf;

#include "Table-Manipulate.h"

void ManipulateTables() {

    String _dataDir("C:\\Samples\\");

    // Muat file PDF yang ada
    auto document = MakeObject<Document>(_dataDir + u"input.pdf");

    // Buat objek TableAbsorber untuk menemukan tabel
    auto absorber = MakeObject<Aspose::Pdf::Text::TableAbsorber>();

    // Kunjungi halaman pertama dengan absorber
    absorber->Visit(document->get_Pages()->idx_get(1));

    // Dapatkan akses ke tabel pertama di halaman, sel pertama mereka dan fragmen teks di dalamnya
    auto fragment = absorber->get_TableList()->idx_get(0)->get_RowList()->idx_get(0)->get_CellList()->idx_get(0)->get_TextFragments()->idx_get(1);

    // Ubah teks fragmen teks pertama di sel
    fragment->set_Text(u"hi world");
    document->Save(_dataDir + u"ManipulateTable_out.pdf");
}

Ganti Tabel lama dengan yang baru dalam dokumen PDF

Jika Anda perlu menemukan tabel tertentu dan menggantinya dengan yang diinginkan, Anda dapat menggunakan metode Replace() dari Kelas TableAbsorber untuk melakukannya.

Contoh berikut menunjukkan fungsi untuk mengganti tabel di dalam dokumen PDF:

void ReplaceOldTable() {
    String _dataDir("C:\\Samples\\");

    // Muat file PDF yang ada
    auto document = MakeObject<Document>(_dataDir + u"Table_input2.pdf");

    // Buat objek TableAbsorber untuk menemukan tabel
    auto absorber = MakeObject<Aspose::Pdf::Text::TableAbsorber>();

    // Kunjungi halaman pertama dengan absorber
    absorber->Visit(document->get_Pages()->idx_get(1));

    // Dapatkan tabel pertama di halaman
    auto table = absorber->get_TableList()->idx_get(0);

    // Buat tabel baru
    auto newTable = MakeObject<Table>();
    newTable->set_ColumnWidths(u"100 100 100");
    newTable->set_DefaultCellBorder (MakeObject<BorderInfo>(BorderSide::All, 1.0F));

    auto row = newTable->get_Rows()->Add();
    row->get_Cells()->Add(u"Kol 1");
    row->get_Cells()->Add(u"Kol 2");
    row->get_Cells()->Add(u"Kol 3");

    // Gantikan tabel dengan yang baru
    absorber->Replace(document->get_Pages()->idx_get(1), table, newTable);

    // Simpan dokumen
    document->Save(_dataDir + u"TableReplaced_out.pdf");
}