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 .