robbiblubber.org
ID
Proyek
Koleksi.NETMIT

Util.NET.

Robbiblubber.Util.NET

Perangkat untuk tugas praktis di .NET: indikator kemajuan konsol, API berkas bersama untuk penyimpanan lokal dan jarak jauh, serta ekstraksi teks PDF dengan OCR. rush dan PdfText CLI menghadirkan pustaka ini di baris perintah.

.NET 8.NET 10

Alat

2
Alat

rush

Robbiblubber.Util.FileStorageAdapters.Shell

Satu shell untuk berbagai sistem berkas: hubungkan direktori lokal, FTP/FTPS, SSH/SFTP, dan SharePoint Online dengan nama, lalu gunakan perintah yang sama secara interaktif atau melalui skrip.

Sertakan pustaka adapter yang diperlukan bersama shellTarget framework: net8.0 / net10.0
Alat

PdfText CLI

Robbiblubber.Util.PdfText.Cli

PdfText di baris perintah: xpdf membaca PDF dan menulis teks hasil ekstraksi ke berkas teks, dengan OCR cadangan untuk halaman hasil pemindaian.

Pustaka runtime native dan data bahasa Tesseract yang diperlukanTarget framework: net8.0

Pustaka & ekstensi

7

Pustaka tersedia sebagai paket NuGet terpisah. Instal komponen yang dibutuhkan proyek Anda.

Pustaka

Robbiblubber.Util.ConsoleToolkit

Bilah kemajuan dan spinner animasi untuk aplikasi konsol, dengan pesan status, warna, dan tampilan yang dapat disesuaikan.

Terminal interaktifTarget framework: net8.0 / net10.0

Yang tersedia

  • ConsoleProgressBar menampilkan kemajuan antara nilai minimum dan maksimum.
  • ConsoleSpinner mendampingi tugas yang durasi totalnya belum diketahui.
  • Pesan, warna, lebar bilah, dan bingkai spinner dapat disesuaikan; tanpa dependensi paket tambahan.
Contoh untuk memulai C#
using Robbiblubber.Util.ConsoleToolkit;

ConsoleProgressBar bar = new() { BarSize = 30, Text = "Processing..." };
bar.Show();
for (int i = 1; i <= 100; i++)
{
    await Task.Delay(25);
    bar.Value = i;
}
bar.Text = "Done.";
bar.Finish();

Contoh mencapai 100% sebelum Finish() mengakhiri tampilan.

Instalasi
dotnet add package Robbiblubber.Util.ConsoleToolkit
Pustaka

Robbiblubber.Util.FileStorageAdapters

API bersama untuk berkas dan direktori lokal, server FTP/FTPS dan SSH/SFTP, atau SharePoint Online. Penyalinan dan pemindahan juga dapat dilakukan antaradapter.

Untuk aplikasi .NETTarget framework: net8.0 / net10.0

Yang tersedia

  • IAdapter, IDirectory, dan IFile membentuk model bersama; penyedia penyimpanan ditambahkan secara terpisah.
  • Daftar, baca, tulis, buat, hapus, dan filter melalui API asinkron dan CancellationToken.
  • Transfer berkas antaradapter dan penyalinan direktori secara rekursif. Pemindahan antaradapter menyalin lalu menghapus sumber.
  • Antarmuka dan kelas dasar mendukung adapter tambahan; rush memakai model yang sama.
Contoh untuk memulai C#
using Robbiblubber.Util.FileStorageAdapters;

static async Task CopyReportAsync(IAdapter sourceAdapter, IAdapter targetAdapter)
{
    IDirectory source = sourceAdapter.OpenDirectory("/documents");
    IDirectory target = targetAdapter.OpenDirectory("/incoming");
    IFile file = await source.GetFileAsync("report.pdf");
    await file.CopyToAsync(target, "report.pdf", overwrite: true);
}

Dengan adapter yang telah diinisialisasi dan direktori yang tersedia: kode transfer yang sama untuk beragam penyimpanan.

Instalasi
dotnet add package Robbiblubber.Util.FileStorageAdapters
Adapter

Robbiblubber.Util.FileStorageAdapters.Ftp

Gunakan FTP dan FTPS sebagai penyimpanan berkas, termasuk koneksi terenkripsi dengan TLS eksplisit atau implisit.

Server FTP/FTPS dan kredensialTarget framework: net8.0 / net10.0

Yang tersedia

  • FtpAdapter mengintegrasikan FTP dengan IAdapter, IDirectory, dan IFile.
  • TLS, koneksi data aktif atau pasif, batas waktu, dan validasi sertifikat dapat dikonfigurasi.
  • Transfer berkas ke penyimpanan lokal atau jarak jauh lainnya. SFTP tersedia melalui adapter SSH/SFTP terpisah.
Contoh untuk memulai C#
using Robbiblubber.Util.FileStorageAdapters;
using Robbiblubber.Util.FileStorageAdapters.Ftp;

FtpAdapterOptions options = new() { Security = FtpSecurity.EXPLICIT_TLS };
using FtpAdapter adapter = new(
    "ftp.example.org", 21, "username", "password", options);
IDirectory directory = adapter.OpenDirectory("/incoming");

Contoh menggunakan TLS eksplisit. Sesuaikan server, kredensial, dan direktori yang tersedia.

Instalasi
dotnet add package Robbiblubber.Util.FileStorageAdapters.Ftp
Adapter

Robbiblubber.Util.FileStorageAdapters.LocalFileSystem

Akses sistem berkas lokal melalui antarmuka yang sama dengan penyimpanan jarak jauh, menggunakan LfsAdapter.

Sistem berkas lokal dan izin akses yang sesuaiTarget framework: net8.0 / net10.0

Yang tersedia

  • LfsAdapter menghubungkan jalur lokal native dengan model berkas bersama.
  • Baca, tulis, daftar, dan transfer berkas serta direktori melalui adapter lain.
  • Menggunakan izin proses yang berjalan dan konvensi jalur sistem operasi.
Contoh untuk memulai C#
using Robbiblubber.Util.FileStorageAdapters;
using Robbiblubber.Util.FileStorageAdapters.LocalFileSystem;

IDirectory directory = LfsAdapter.Open("C:/Data");
IFile file = await directory.GetFileAsync("report.pdf");
using Stream stream = await file.ReadAsync();

C:/Data dan report.pdf harus tersedia. Di Linux, gunakan jalur seperti /var/data.

Instalasi
dotnet add package Robbiblubber.Util.FileStorageAdapters.LocalFileSystem
Adapter

Robbiblubber.Util.FileStorageAdapters.SharePoint

Akses pustaka dokumen SharePoint Online sebagai penyimpanan berkas melalui Microsoft Graph, dengan berkas dan folder, bukan daftar SharePoint.

SharePoint Online dan aplikasi Entra dengan izin yang sesuaiTarget framework: net8.0 / net10.0

Yang tersedia

  • Pustaka dokumen menjadi akar logis, dipilih melalui URL situs, ID situs, atau ID drive.
  • Login interaktif, kode perangkat, dan autentikasi aplikasi dengan secret, sertifikat, atau managed identity.
  • Daftar dan transfer berkas serta folder; sesi unggah mendukung unggahan besar.
Contoh untuk memulai C#
using Robbiblubber.Util.FileStorageAdapters;
using Robbiblubber.Util.FileStorageAdapters.SharePoint;

SharePointTarget target = SharePointTarget.FromSiteUrl(
    "https://tenant.sharepoint.com/sites/project", libraryName: "Documents");
using SharePointAdapter adapter = SharePointAdapter.CreateInteractive(
    target, tenantId: "TENANT-ID", clientId: "APPLICATION-ID");
IDirectory directory = adapter.OpenDirectory("/reports");

Memerlukan aplikasi Entra yang dikonfigurasi dengan izin yang sesuai. Sesuaikan ID, nama pustaka, dan direktori.

Instalasi
dotnet add package Robbiblubber.Util.FileStorageAdapters.SharePoint
Adapter

Robbiblubber.Util.FileStorageAdapters.Ssh

Dua cara akses dalam satu paket: SshAdapter memakai perintah shell POSIX jarak jauh, sedangkan SftpAdapter memakai protokol SFTP.

SSH: alat POSIX/GNU; SFTP: subsistem SFTPTarget framework: net8.0 / net10.0

Yang tersedia

  • Kedua adapter menggunakan model berkas dan direktori bersama.
  • Autentikasi dengan kata sandi atau kunci privat; verifikasi kunci host server melalui sidik jari.
  • SFTP tidak memerlukan shell jarak jauh. Adapter SSH memerlukan shell dan alat GNU yang sesuai di server.
Contoh untuk memulai C#
using Robbiblubber.Util.FileStorageAdapters;
using Robbiblubber.Util.FileStorageAdapters.Ssh;

SftpAdapterOptions options = new()
{
    HostKeyFingerprint = "SHA256:replace-with-verified-fingerprint"
};
using SftpAdapter adapter = new(
    "server.example.org", 22, "username", "password", options);
IDirectory directory = adapter.OpenDirectory("/srv/data");

Ganti kredensial dan jalur; verifikasi sidik jari server terlebih dahulu lalu masukkan di sini.

Instalasi
dotnet add package Robbiblubber.Util.FileStorageAdapters.Ssh
Pustaka

Robbiblubber.Util.PdfText

Ekstrak teks dari PDF digital dan hasil pemindaian: ekstraksi langsung dengan PdfPig, OCR cadangan dengan Tesseract, dan keluaran tabel terstruktur.

Pustaka runtime native dan data bahasa Tesseract untuk OCRTarget framework: net8.0 / net10.0

Yang tersedia

  • Gunakan teks PDF yang tertanam dan beralih ke OCR untuk halaman hasil pemindaian.
  • Teks berorientasi tata letak atau tabel terstruktur, dengan keluaran Markdown atau TSV.
  • Bahasa OCR, prapemrosesan gambar, orientasi halaman, dan pemrosesan halaman paralel dapat dikonfigurasi.
  • Untuk OCR, tambahkan juga referensi langsung ke paket NuGet Tesseract dan sediakan berkas traineddata yang diperlukan.
Contoh untuk memulai C#
using Robbiblubber.Util.PdfText;

PdfTextExtractor.Options options = new() { Languages = "eng+deu" };
using PdfTextExtractor extractor = new(options);
PdfTextExtractor.Result result = await extractor.GetResultAsync("input.pdf");
await File.WriteAllTextAsync("output.txt", result.Text);

Contoh ini memerlukan data bahasa Inggris dan Jerman untuk Tesseract; direktori data dapat diatur melalui TessDataPath.

Instalasi
dotnet add package Robbiblubber.Util.PdfText

Pustaka .NET didistribusikan melalui NuGet. Alat dan pustaka tetap dikelompokkan dalam suite dan koleksinya.

Lihat semua proyek