Perkenalan

Dalam sistem manajemen dokumen modern, kolom formulir memainkan peran penting dalam pengumpulan data, interaksi pengguna, dan otomatisasi dokumen. GroupDocs.Signature untuk .NET menyediakan seperangkat alat canggih bagi pengembang untuk bekerja dengan kolom formulir dalam berbagai format dokumen, termasuk mencari, mengambil, dan memproses elemen-elemen ini secara terprogram.

Panduan komprehensif ini akan memandu Anda melalui proses pencarian tanda tangan bidang formulir dalam dokumen menggunakan GroupDocs.Signature untuk .NET, menawarkan penjelasan yang jelas, contoh kode praktis, dan praktik terbaik untuk implementasi.

Prasyarat

Sebelum menelusuri kolom formulir dengan GroupDocs.Signature untuk .NET, pastikan Anda memiliki prasyarat berikut:

  1. Lingkungan Pengembangan: Siapkan lingkungan pengembangan .NET dengan Visual Studio atau IDE pilihan Anda.

  2. GroupDocs.Signature untuk .NET: Unduh dan instal pustaka GroupDocs.Signature untuk .NET dari Di Sini.

  3. Akses Dokumentasi: Biasakan diri Anda dengan dokumentasi lengkap yang tersedia di GroupDocs.Signature untuk Dokumentasi .NET.

  4. Pengetahuan Dasar: Pemahaman tentang pemrograman C# dan dasar-dasar kerangka kerja .NET akan bermanfaat.

Mengimpor Ruang Nama

Mulailah dengan mengimpor namespace yang diperlukan untuk mengakses fungsionalitas GroupDocs.Signature:

using System;
using System.Collections.Generic;
using GroupDocs.Signature;
using GroupDocs.Signature.Domain;
using GroupDocs.Signature.Options;

Sekarang mari kita uraikan proses pencarian kolom formulir dalam dokumen menjadi langkah-langkah yang jelas dan dapat ditindaklanjuti:

Langkah 1: Tentukan Jalur Dokumen

Pertama, tentukan jalur ke dokumen yang berisi kolom formulir yang ingin Anda cari:

string filePath = "sample_signed_formfield.pdf";

Langkah 2: Inisialisasi Objek Tanda Tangan

Buat contoh dari Signature kelas dengan meneruskan jalur file ke konstruktor:

using (Signature signature = new Signature(filePath))
{
    // Kode pencarian bidang formulir akan ditambahkan di sini
}

Langkah 3: Cari Tanda Tangan Bidang Formulir

Gunakan Search metode dengan jenis tanda tangan yang sesuai untuk menemukan bidang formulir dalam dokumen:

// Cari tanda tangan bidang formulir dalam dokumen
List<FormFieldSignature> formFields = signature.Search<FormFieldSignature>(SignatureType.FormField);

Langkah 4: Memproses dan Menampilkan Hasilnya

Ulangi melalui bidang formulir yang ditemukan dan akses propertinya:

// Menampilkan informasi tentang bidang formulir yang ditemukan
Console.WriteLine($"\nDocument '{filePath}' contains {formFields.Count} form field signature(s):");

foreach (var formField in formFields)
{
    Console.WriteLine($"Form Field Name: {formField.Name}");
    Console.WriteLine($"Form Field Type: {formField.Type}");
    Console.WriteLine($"Form Field Value: {formField.Value}");
    Console.WriteLine($"Form Field Page: {formField.PageNumber}");
    Console.WriteLine();
}

Contoh Lengkap

Berikut ini contoh lengkap dan praktis yang menunjukkan cara mencari kolom formulir dalam dokumen:

using System;
using System.Collections.Generic;
using GroupDocs.Signature;
using GroupDocs.Signature.Domain;
using GroupDocs.Signature.Options;

namespace FormFieldSearchExample
{
    class Program
    {
        static void Main(string[] args)
        {
            // Jalur dokumen - perbarui dengan jalur file Anda
            string filePath = "sample_signed_formfield.pdf";

            // Inisialisasi instance Tanda Tangan
            using (Signature signature = new Signature(filePath))
            {
                try
                {
                    // Cari tanda tangan bidang formulir
                    List<FormFieldSignature> formFields = signature.Search<FormFieldSignature>(SignatureType.FormField);

                    // Menampilkan hasil
                    Console.WriteLine($"\nDocument '{filePath}' contains {formFields.Count} form field signature(s):");

                    foreach (var formField in formFields)
                    {
                        Console.WriteLine($"Form Field Name: {formField.Name}");
                        Console.WriteLine($"Form Field Type: {formField.Type}");
                        Console.WriteLine($"Form Field Value: {formField.Value}");
                        Console.WriteLine($"Form Field Page: {formField.PageNumber}");
                        Console.WriteLine();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Error occurred: {ex.Message}");
                }
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
    }
}

Teknik Pencarian Bidang Formulir Lanjutan

Mencari dengan Opsi Bidang Formulir Tertentu

Untuk pencarian yang lebih tertarget, Anda dapat menggunakan FormFieldSearchOptions untuk menyesuaikan kriteria pencarian Anda:

// Buat opsi pencarian bidang formulir
FormFieldSearchOptions options = new FormFieldSearchOptions
{
    // Pencarian di halaman tertentu
    AllPages = false,
    PageNumber = 1,
    
    // Filter berdasarkan nama bidang
    Name = "Signature",
    
    // Filter berdasarkan jenis bidang
    Type = FormFieldType.TextFormField
};

// Pencarian dengan opsi tertentu
List<FormFieldSignature> specificFormFields = signature.Search<FormFieldSignature>(options);

Bekerja dengan Berbagai Jenis Bidang Formulir

GroupDocs.Signature mendukung berbagai jenis bidang formulir, masing-masing dengan properti tertentu:

foreach (var formField in formFields)
{
    switch (formField.Type)
    {
        case FormFieldType.TextFormField:
            // Memproses bidang formulir teks
            Console.WriteLine($"Text Field: {formField.Name}, Value: {formField.Value}");
            break;
            
        case FormFieldType.CheckboxFormField:
            // Bidang kotak centang proses
            bool isChecked = Convert.ToBoolean(formField.Value);
            Console.WriteLine($"Checkbox: {formField.Name}, Checked: {isChecked}");
            break;
            
        case FormFieldType.ComboboxFormField:
            // Bidang kotak kombo proses
            Console.WriteLine($"Combobox: {formField.Name}, Selected Value: {formField.Value}");
            break;
            
        case FormFieldType.DigitalFormField:
            // Memproses bidang tanda tangan digital
            Console.WriteLine($"Digital Signature Field: {formField.Name}");
            break;
            
        case FormFieldType.RadioButtonFormField:
            // Memproses bidang tombol radio
            Console.WriteLine($"Radio Button: {formField.Name}, Selected: {formField.Value}");
            break;
    }
}

Mengekstrak Data Bidang Formulir untuk Diproses

Anda dapat mengekstrak dan memproses data bidang formulir untuk penggunaan lebih lanjut dalam aplikasi Anda:

// Buat kamus untuk menyimpan nilai bidang formulir
Dictionary<string, object> formData = new Dictionary<string, object>();

// Ekstrak data bidang formulir
foreach (var field in formFields)
{
    formData.Add(field.Name, field.Value);
}

// Memproses data yang dikumpulkan
ProcessFormData(formData);

// Contoh metode pemrosesan
static void ProcessFormData(Dictionary<string, object> data)
{
    // Terapkan logika pemrosesan data Anda di sini
    foreach (var item in data)
    {
        Console.WriteLine($"Processing field '{item.Key}' with value '{item.Value}'");
    }
}

Kesimpulan

Dalam panduan komprehensif ini, kami telah membahas cara mencari dan memproses tanda tangan bidang formulir dalam dokumen menggunakan GroupDocs.Signature untuk .NET. Dari pencarian dasar hingga teknik lanjutan untuk berbagai jenis bidang formulir, kini Anda memiliki pengetahuan untuk mengimplementasikan fungsionalitas bidang formulir di aplikasi .NET Anda.

GroupDocs.Signature menyediakan kerangka kerja yang kuat dan fleksibel untuk bekerja dengan tanda tangan dokumen, memungkinkan Anda membangun solusi manajemen dokumen tangguh yang menangani bidang formulir secara efisien dan aman.

Pertanyaan yang Sering Diajukan

Bisakah GroupDocs.Signature mencari kolom formulir dalam dokumen yang dilindungi kata sandi?

Ya, GroupDocs.Signature dapat mencari bidang formulir dalam dokumen yang dilindungi kata sandi dengan memberikan kata sandi saat menginisialisasi Signature obyek:

LoadOptions loadOptions = new LoadOptions { Password = "your_password" };
using (Signature signature = new Signature(filePath, loadOptions))
{
    // Cari bidang formulir
}

Format dokumen mana yang mendukung pencarian bidang formulir?

GroupDocs.Signature mendukung pencarian bidang formulir dalam berbagai format dokumen, termasuk PDF, Microsoft Word (DOC, DOCX), Excel (XLS, XLSX), PowerPoint (PPT, PPTX), dan banyak lagi.

Bisakah saya mengubah nilai kolom formulir setelah mencarinya?

Ya, setelah mencari kolom formulir, Anda dapat mengubah nilainya dan memperbarui dokumen:

// Cari bidang formulir
List<FormFieldSignature> fields = signature.Search<FormFieldSignature>(SignatureType.FormField);

// Ubah nilai bidang
foreach (var field in fields)
{
    if (field.Name == "CustomerName")
    {
        field.Value = "John Doe";
    }
}

// Simpan dokumen yang diperbarui
signature.Save("updated_document.pdf");

Bagaimana cara mencari kolom formulir dengan nilai tertentu?

Anda dapat mencari kolom formulir dengan nilai tertentu dengan menggunakan opsi pencarian khusus:

// Buat opsi pencarian
FormFieldSearchOptions options = new FormFieldSearchOptions
{
    // Filter berdasarkan nilai menggunakan delegasi
    ProcessCompleted = (fieldSignature) =>
    {
        // Kembalikan true hanya untuk bidang dengan nilai tertentu
        return fieldSignature.Value != null && fieldSignature.Value.ToString().Contains("Approved");
    }
};

// Cari dengan filter
List<FormFieldSignature> filteredFields = signature.Search<FormFieldSignature>(options);

Dapatkah saya mencari beberapa jenis tanda tangan termasuk bidang formulir dalam satu operasi?

Ya, Anda dapat mencari beberapa jenis tanda tangan dalam satu operasi:

// Buat opsi pencarian untuk berbagai jenis tanda tangan
FormFieldSearchOptions formFieldOptions = new FormFieldSearchOptions();
DigitalSearchOptions digitalOptions = new DigitalSearchOptions();

// Buat daftar opsi pencarian
List<SearchOptions> searchOptions = new List<SearchOptions>
{
    formFieldOptions,
    digitalOptions
};

// Cari beberapa jenis tanda tangan
SearchResult result = signature.Search(searchOptions);

// Akses berbagai jenis tanda tangan dari hasil
foreach (var sig in result.Signatures)
{
    if (sig is FormFieldSignature formField)
    {
        Console.WriteLine($"Form Field: {formField.Name}");
    }
    else if (sig is DigitalSignature digitalSignature)
    {
        Console.WriteLine($"Digital Signature: {digitalSignature.Certificate?.SubjectName}");
    }
}

Lihat Juga