Jak automatycznie wycofać i eksportować duże archiwum dokumentów

Jak automatycznie wycofać i eksportować duże archiwum dokumentów

Archiwizacja i cyfryzacja dużych kolekcji skanowanych obrazów jest bez automatyzacji. Aspose.Imaging dla .NET sprzyja całemu procesowi – obsługuje foldery z tysiącami plików, rozkłada i eksportuje je w masie, z solidnym logowaniem błędów i zarządzaniem wyjściem.

Problem świata rzeczywistego

Ręczne rozprowadzanie i eksportowanie dużych archiwów nie jest skalowalne. organizacje potrzebują w pełni zautomatyzowanych rozwiązań dla biznesowych, prawnych, historycznych lub naukowych projektów cyfrowych.

Przegląd rozwiązania

Użyj recursywnego skryptu batch do przetwarzania każdego obsługiwanego obrazu we wszystkich podłogach, wynikach logów i eksportu w pożądanych formach – bez interwencji ludzkiej.

Warunki

  • Visual Studio 2019 lub później
  • .NET 6.0 lub nowszy (lub .Net Framework 4.6.2+)
  • Aspose.Imaging dla .NET z NuGet
  • folder archiwum źródłowego (lokalne, sieciowe lub mapowane w chmurze)
PM> Install-Package Aspose.Imaging

Wdrażanie krok po kroku

Krok 1: Powtarzające się znalezienie wszystkich plików obrazowych

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();

Krok 2: Batch Deskew i Export z rozwiązywaniem błędów

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);

Krok 3: harmonogram i monitorowanie

Ustaw jako pracę programu Windows Task Scheduler lub podobnie do uruchomienia nowych skanów automatycznie.

Korzystanie z przypadków i aplikacji

  • Archiwum biznesowe / prawne (kontrakty, pliki przypadków)
  • Biblioteka i cyfryzacja historyczna
  • Kolekcje obrazów naukowych lub badawczych
  • Projektowanie projektów skanowania na potrzeby zgodności lub audytu

Wspólne wyzwania i rozwiązania

** przerwy sieciowe: ** Przetwarzanie lokalnych kopii i resync, lub log i retry.

Długo lub zepsute pliki: Zarejestruj, przejdź i przeglądaj nieudane elementy oddzielnie.

*Zmieszane formaty plików: *Filtrować lub normalizować podczas przetwarzania.

Najlepsze praktyki

  • Utrzymanie logów dla śledzenia
  • Kopia oryginalna przed przetwarzaniem
  • Test na małych planach przed pełnym archiwum

FAQ

** Q: Czy mogę przetwarzać miliony plików?**Odpowiedź: Tak – skala poprzez rozdzielenie zadań, prowadzenie równoległe lub łączenie folderów.

**Q: Czy mogę używać tego z napędami sieciowymi lub folderami mapowanymi w chmurze?**Odpowiedź: Tak, tak długo, jak dysk jest dostępny do skryptów.

**Q: Jak mogę utrzymać pracę na nowych plikach?**A: Użyj harmonogramu zadań lub narzędzia ciągłej integracji.

konkluzja

Z Aspose.Imaging dla .NET, nawet największe archiwum można automatycznie rozkładać i eksportować. więcej o skalowaniu lub dostosowaniu przepływów roboczych, zobacz Aspose.Imaging dla .NET API Referencje .

 Polski