Bagaimana untuk mengautomatikkan pengeluaran dan pengeksportan arkib dokumen besar

Bagaimana untuk mengautomatikkan pengeluaran dan pengeksportan arkib dokumen besar

Aspose.Imaging untuk .NET menyempurnakan keseluruhan proses—mengendalikan folder dengan beribu-ribu fail, memecahkan, dan mengeksport mereka dalam jumlah besar, dengan log kesilapan yang kukuh dan pengurusan output.

Masalah dunia sebenar

Pengeluaran manual dan eksport untuk arkib skala besar tidak boleh dipaparkan. organisasi memerlukan penyelesaian sepenuhnya automatik untuk perniagaan, undang-undang, sejarah, atau projek digitalisasi saintifik.

Gambaran keseluruhan penyelesaian

Gunakan skrip batch recursive untuk memproses setiap imej yang disokong dalam semua subfolders, hasil log, dan eksport dalam format yang dikehendaki – tanpa campur tangan manusia.

Prerequisites

  • Visual Studio 2019 atau seterusnya
  • .NET 6.0 atau lebih baru (atau .Net Framework 4.6.2+)
  • Aspose.Imaging untuk .NET daripada NuGet
  • folder arkib sumber (lokal, rangkaian, atau peta awan)
PM> Install-Package Aspose.Imaging

Pelaksanaan langkah demi langkah

Langkah 1: Cari semula semua fail imej

string rootDir = "./archive_input";
string outputDir = "./archive_output";
Directory.CreateDirectory(outputDir);

// All supported types: jpg, png, tif, bmp, gif, etc.
var files = Directory.GetFiles(rootDir, "*.*", SearchOption.AllDirectories)
    .Where(f => f.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase)
             || f.EndsWith(".jpeg", StringComparison.OrdinalIgnoreCase)
             || f.EndsWith(".png", StringComparison.OrdinalIgnoreCase)
             || f.EndsWith(".tif", StringComparison.OrdinalIgnoreCase)
             || f.EndsWith(".tiff", StringComparison.OrdinalIgnoreCase)
             || f.EndsWith(".bmp", StringComparison.OrdinalIgnoreCase)
             || f.EndsWith(".gif", StringComparison.OrdinalIgnoreCase))
    .ToArray();

Langkah 2: Batch Deskew dan Eksport Dengan Penyelesaian Kesilapan

using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;

List<string> failedFiles = new List<string>();
foreach (var file in files)
{
    try
    {
        using (var image = (RasterImage)Image.Load(file))
        {
            image.NormalizeAngle(false, Color.White);
            string relPath = Path.GetRelativePath(rootDir, file);
            string outPath = Path.Combine(outputDir, relPath);
            Directory.CreateDirectory(Path.GetDirectoryName(outPath));
            image.Save(outPath, new TiffOptions(TiffExpectedFormat.Default));
        }
    }
    catch (Exception ex)
    {
        failedFiles.Add($"{file}: {ex.Message}");
    }
}

// Save log for failed files
File.WriteAllLines(Path.Combine(outputDir, "deskew_failed_files.log"), failedFiles);

Langkah 3: Jadual dan pemantauan

Tetapkan sebagai Windows Task Scheduler kerja atau serupa untuk menjalankan pada pemindaian baru secara automatik.

Penggunaan Kasus dan Permohonan

  • Arkib perniagaan / undang-undang (kontrak, fail kes)
  • Perpustakaan dan digitalisasi sejarah
  • Koleksi imej saintifik atau penyelidikan
  • Menguruskan projek-projek pemindaian untuk pematuhan atau audit

Tantangan dan Penyelesaian Bersama

Pengganggu rangkaian: Memproses salinan tempatan dan resync, atau log dan retry.

File yang panjang atau rosak: Log, skip, dan ulasan item yang gagal secara berasingan.

Format fail campuran: Filter atau normalisasi semasa pemprosesan.

amalan terbaik

  • Mengekalkan log untuk traceability
  • Backup asal sebelum pemprosesan
  • Ujian pada batch kecil sebelum arkib penuh

FAQ

Q: Bolehkah saya memproses berjuta-juta fail?**A: Ya - skala dengan membahagikan kerja, menjalankan secara serentak, atau menggaruk folder.

**Q: Bolehkah saya menggunakan ini dengan pemacu rangkaian atau folder yang dipaparkan awan?**A: Ya, selagi pemacu boleh diakses ke skrip.

**Q: Bagaimana saya boleh mengekalkan kerja berjalan pada fail baru?**A: Gunakan Task Scheduler atau alat integrasi berterusan.

Conclusion

Dengan Aspose.Imaging untuk .NET, walaupun arkib terbesar boleh dikecualikan dan dieksport secara automatik. Aspose.Imaging untuk .NET API Rujukan .

 Melayu