Linux’ta bir PDF’den hassas metni kırpmak gerektiğinde, GroupDocs.Redaction for .NET‘i bir Docker konteyneri içinde çalıştırabilirsiniz. Bu öğretici, projeyi sıfırdan nasıl oluşturacağınızı, bir PDF dosyası ekleyeceğinizi, kesin bir ifadeyi siyah bir kutu ile kırpacağınızı ve uygulamayı .NET 10 ile bir Linux konteynerinde nasıl çalıştıracağınızı gösterir.
Projenin tam çalışan bir sürümü ayrıca GitHub adresinde mevcuttur.
1. Docker Desteğiyle .NET Konsol Projesi Oluşturma
Projeyi Visual Studio ya da .NET CLI kullanarak oluşturabilirsiniz.
Visual Studio Kullanarak
Yeni bir Console App projesi oluşturun ve hedef çerçeve olarak .NET 10.0’ı seçin.
Ek seçenekler ekranında Enable container support ya da Add Docker support seçeneğini etkinleştirin (seçenek adı Visual Studio sürümünüze bağlı olarak değişebilir).
Konteyner için hedef işletim sistemi olarak Linux’u seçin.
Projeyi oluşturun. Visual Studio, Dockerfile dahil gerekli Docker yapılandırma dosyalarını oluşturacaktır.
.NET CLI Kullanarak
Yeni bir .NET 10 konsol uygulaması oluşturun ve proje dizinine gidin:
dotnet new console -n PdfRedactionDocker
cd PdfRedactionDocker
CLI kullanıyorsanız, proje kök dizinine manuel olarak bir Dockerfile ekleyin. Bu Dockerfile’ı sonraki adımlarda Linux konteyneri içinde uygulamayı derlemek, yayınlamak ve çalıştırmak için yapılandıracaksınız.
Oluşan proje yapısı şu şekilde olmalıdır:
PdfRedactionDocker/ ├── Dockerfile ├── PdfRedactionDocker.csproj └── Program.cs
2. GroupDocs.Redaction’ı Yükleme
GroupDocs.Redaction for .NET‘i projenize Visual Studio ya da .NET CLI kullanarak ekleyin.
Visual Studio Kullanarak
- Solution Explorer içinde projeye sağ tıklayın.
- Manage NuGet Packages seçeneğini seçin.
GroupDocs.Redactionpaketini aratın ve yükleyin.
.NET CLI Kullanarak
Proje dizininde aşağıdaki komutu çalıştırın:
dotnet add package GroupDocs.Redaction
Paket, belgeleri yüklemek ve işlemek için Redactor sınıfını ve kırpmaları yapılandırmak ve uygulamak için çeşitli sınıflar ve seçenekler sunar.
3. PDF Dosyasını Ekleyin
İşlemek istediğiniz PDF dosyasını proje dizinine koyun ve şu şekilde adlandırın:
document.pdf
Uygulama, bu dosyada kırpılacak ifadeyi arayacak ve sonucu document_Redacted.pdf olarak oluşturacaktır.
Bu örnek için PDF, gap kelimesini içerir.
4. Kırpma Kodunu Ekleyin
Program.cs dosyasını açın ve içeriğini aşağıdaki ile değiştirin:
using GroupDocs.Redaction;
using GroupDocs.Redaction.Options;
using GroupDocs.Redaction.Options.Drawing;
using GroupDocs.Redaction.Redactions;
using (Redactor redactor = new Redactor("document.pdf"))
{
redactor.Apply(
new ExactPhraseRedaction(
"gap",
new ReplacementOptions(Color.Black)));
var saveOptions = new SaveOptions() { AddSuffix = true };
var outputFile = redactor.Save(saveOptions);
}
ExactPhraseRedaction, PDF içinde belirtilen ifadeyi arar. Arama varsayılan olarak büyük/küçük harfe duyarsızdır, bu yüzden gap ve Gap aynı metni eşleştirir.
ReplacementOptions(Color.Black) her eşleşmeye siyah kutu kırpması uygular, metni başka bir dizeyle değiştirmek yerine.
SaveOptions.AddSuffix çıktı dosya adına _Redacted ekler, böylece sonuç şu şekilde kaydedilir:
document_Redacted.pdf
Orijinal document.pdf değişmeden kalır.
Apply metodu kırpma durumunu döndürür. Çıktıyı başarılı bir şekilde kırpılmış olarak kabul etmeden önce bu sonucu üretim kodunda kontrol edin. Kırpma uygulanmamış olsa bile Save bir çıktı dosyası oluşturabilir.
5. Dockerfile’ı Yapılandırma
.NET 10 uygulamanızı bir Linux konteynerinde derlemek ve çalıştırmak için aşağıdaki Dockerfile örnek olarak kullanılabilir.
Örnek, GroupDocs.Redaction‘ın belge işleme için ihtiyaç duyduğu Linux kütüphanelerini ve yazı tiplerini kurmak için gereken adımları içerir.
Tam Dockerfile’ı burada bulabilirsiniz.
FROM mcr.microsoft.com/dotnet/runtime:10.0 AS base
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
fontconfig \
libfreetype6 \
libgdiplus \
libc6-dev \
libx11-dev \
software-properties-common \
&& echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | debconf-set-selections \
&& apt-add-repository multiverse \
&& apt-get update \
&& apt-get install -y ttf-mscorefonts-installer fonts-lato \
&& fc-cache -f \
&& dir="$(dirname "$(find /usr/lib /lib -name 'libdl.so.2' 2>/dev/null | head -n1)")" \
&& ln -sf "$dir/libdl.so.2" "$dir/libdl.so" \
&& rm -rf /var/lib/apt/lists/*
USER $APP_UID
WORKDIR /app
Docker imajı, belge işleme kodunu bir Linux konteynerinde çalıştırmak için gereken yerel kütüphaneleri, yazı tipi desteğini ve diğer bağımlılıkları içerir.
6. Uygulama Görüntüsünü (Image) Oluşturma
Docker imajını Visual Studio ya da Docker CLI kullanarak oluşturabilirsiniz.
Visual Studio Kullanarak
Proje oluşturulurken Docker desteği etkinleştirildiyse, Debug ya da Run açılır menüsünden Docker profilini seçin ve projeyi başlatın. Visual Studio Docker imajını oluşturacak ve uygulamayı yapılandırılmış Linux konteynerinde çalıştıracaktır.
Docker CLI Kullanarak
Proje dizininde bir terminal açın ve şu komutu çalıştırın:
docker build -t PdfRedactionDocker .
Docker, Linux imajını oluşturmak ve gerekli bağımlılıkları kurmak için Dockerfile‘ı kullanır.
7. Konteyneri Çalıştırma
Docker CLI kullanıyorsanız, uygulamayı proje dizinini konteynere bağlayarak çalıştırın:
docker run --rm \
-v "${PWD}:/data" \
-w /data \
--entrypoint dotnet \
PdfRedactionDocker \
/app/PdfRedactionDocker.dll
Proje dizini /data olarak bağlanır ve konteynerin çalışma dizini olarak kullanılır. Uygulama bu yüzden kaynak dosyayı şu konumdan okur:
/data/document.pdf
ve kırpılmış dosyayı şu konuma kaydeder:
/data/document_Redacted.pdf
/data host üzerindeki proje dizinine eşlendiği için kırpılmış PDF, kaynak dosyanın yanına görünür.
Windows PowerShell’de ${PWD} geçerli çalışma dizinine genişler. Komutu proje dizininden çalıştırın.
8. Kırpılmış PDF’yi Kontrol Etme
Uygulama tamamlandıktan sonra şunu açın:
document_Redacted.pdf
Belirtilen ifade bir siyah dikdörtgenle kapatılmış olmalı, orijinal document.pdf ise değişmemiş kalmalıdır.
Artık aynı yaklaşımı kullanarak PDF metin kırpmasını GroupDocs.Redaction for .NET ile Linux tabanlı bir Docker uygulamasına entegre edebilirsiniz.
Lisanslama
Lisans olmadan, GroupDocs.Redaction for .NET değerlendirme modunda çalışır. Değerlendirme sürümünün kullanım limitleri vardır ve kaydedilen belgeye bir filigran ekler.
30 günlük geçici bir lisans, GroupDocs geçici lisans sayfasında mevcuttur. Fiyatlandırma bilgileri GroupDocs.Redaction for .NET satın alma sayfasında bulunabilir.