Linux에서 PDF의 민감한 텍스트를 삭제해야 할 때, GroupDocs.Redaction for .NET을 Docker 컨테이너 안에서 실행할 수 있습니다. 이 튜토리얼에서는 프로젝트를 처음부터 만들고, PDF 파일을 추가하고, 정확한 구문을 검은 상자로 삭제한 뒤, .NET 10이 포함된 Linux 컨테이너에서 애플리케이션을 실행하는 방법을 보여줍니다.
프로젝트의 완전한 작업 버전은 GitHub에서도 확인할 수 있습니다.
1. Docker 지원이 포함된 .NET 콘솔 프로젝트 만들기
프로젝트는 Visual Studio 또는 .NET CLI를 사용해 만들 수 있습니다.
Visual Studio 사용
- 새 Console App 프로젝트를 만들고 대상 프레임워크로 .NET 10.0을 선택합니다.
- 추가 옵션 화면에서 Enable container support 또는 Add Docker support를 활성화합니다(Visual Studio 버전에 따라 옵션 이름이 다를 수 있음).
- 컨테이너의 대상 운영 체제로 Linux를 선택합니다.
- 프로젝트를 생성합니다. Visual Studio는 Dockerfile을 포함한 필요한 Docker 구성 파일을 자동으로 생성합니다.
.NET CLI 사용
새 .NET 10 콘솔 애플리케이션을 만들고 프로젝트 디렉터리로 이동합니다:
dotnet new console -n PdfRedactionDocker
cd PdfRedactionDocker
CLI를 사용하는 경우, 프로젝트 루트 디렉터리에 Dockerfile을 직접 추가합니다. 이후 단계에서 Linux 컨테이너 안에서 애플리케이션을 빌드, 배포 및 실행하도록 구성합니다.
최종 프로젝트 구조는 다음과 같습니다:
PdfRedactionDocker/
├── Dockerfile
├── PdfRedactionDocker.csproj
└── Program.cs
2. GroupDocs.Redaction 설치
Visual Studio 또는 .NET CLI 중 하나를 사용해 GroupDocs.Redaction for .NET을 프로젝트에 추가합니다.
Visual Studio 사용
- Solution Explorer에서 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.
- Manage NuGet Packages를 선택합니다.
GroupDocs.Redaction을 검색하고 패키지를 설치합니다.
.NET CLI 사용
프로젝트 디렉터리에서 다음 명령을 실행합니다:
dotnet add package GroupDocs.Redaction
이 패키지는 문서를 로드하고 처리하기 위한 Redactor 클래스를 제공하며, 삭제 작업을 구성하고 적용하기 위한 다양한 클래스와 옵션을 포함합니다.
3. PDF 파일 추가
프로젝트 디렉터리에 처리할 PDF 파일을 넣고 다음과 같이 이름을 지정합니다:
document.pdf
애플리케이션은 이 파일에서 삭제할 구문을 검색하고 결과를 document_Redacted.pdf로 저장합니다.
예시에서는 PDF에 gap이라는 단어가 포함되어 있습니다.
4. 삭제 코드 추가
Program.cs를 열고 내용을 다음과 같이 교체합니다:
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에서 지정된 구문을 검색합니다. 기본적으로 대소문자를 구분하지 않으므로 gap과 Gap이 동일하게 매치됩니다.
ReplacementOptions(Color.Black)은 텍스트를 다른 문자열로 교체하는 대신 검은 상자 삭제를 적용합니다.
SaveOptions.AddSuffix는 출력 파일 이름에 _Redacted 접미사를 추가하므로 결과 파일은 다음과 같이 저장됩니다:
document_Redacted.pdf
원본 document.pdf는 그대로 유지됩니다.
Apply 메서드는 삭제 상태를 반환합니다. 실제 서비스 코드에서는 출력 파일을 성공적으로 삭제된 것으로 간주하기 전에 이 결과를 확인해야 합니다. 삭제가 적용되지 않더라도 Save는 출력 파일을 생성할 수 있습니다.
5. Dockerfile 구성
다음 Dockerfile은 Linux 컨테이너에서 .NET 10 애플리케이션을 빌드하고 실행하기 위한 샘플입니다.
예제에는 GroupDocs.Redaction이 문서 처리를 위해 필요로 하는 Linux 라이브러리와 폰트를 설치하는 단계가 포함되어 있습니다.
전체 Dockerfile은 여기에서 확인할 수 있습니다.
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 이미지에는 Linux 컨테이너에서 문서 처리 코드를 실행하는 데 필요한 네이티브 라이브러리, 폰트 지원 및 기타 종속성이 모두 포함됩니다.
6. 애플리케이션 이미지 빌드
Visual Studio 또는 Docker CLI 중 하나를 사용해 Docker 이미지를 빌드할 수 있습니다.
Visual Studio 사용
프로젝트 생성 시 Docker 지원을 활성화했다면, Debug 또는 Run 드롭다운에서 Docker 프로필을 선택하고 프로젝트를 시작합니다. Visual Studio가 Docker 이미지를 빌드하고 구성된 Linux 컨테이너에서 애플리케이션을 실행합니다.
Docker CLI 사용
프로젝트 디렉터리에서 터미널을 열고 다음 명령을 실행합니다:
docker build -t PdfRedactionDocker .
Docker는 Dockerfile을 사용해 Linux 이미지와 필요한 종속성을 설치합니다.
7. 컨테이너 실행
Docker CLI를 사용하는 경우, 프로젝트 디렉터리를 컨테이너에 마운트한 뒤 애플리케이션을 실행합니다:
docker run --rm \
-v "${PWD}:/data" \
-w /data \
--entrypoint dotnet \
PdfRedactionDocker \
/app/PdfRedactionDocker.dll
프로젝트 디렉터리는 /data에 마운트되며 컨테이너의 작업 디렉터리로 사용됩니다. 따라서 애플리케이션은 다음 경로에서 원본 파일을 읽습니다:
/data/document.pdf
그리고 삭제된 파일을 다음 경로에 저장합니다:
/data/document_Redacted.pdf
/data가 호스트의 프로젝트 디렉터리와 연결되어 있기 때문에, 삭제된 PDF 파일이 원본 파일 옆에 나타납니다.
Windows PowerShell에서는 ${PWD}가 현재 작업 디렉터리로 확장됩니다. 프로젝트 디렉터리에서 명령을 실행하십시오.
8. 삭제된 PDF 확인
애플리케이션 실행이 끝난 후 다음 파일을 엽니다:
document_Redacted.pdf
지정한 구문이 검은 사각형으로 가려져 있어야 하며, 원본 document.pdf는 그대로 유지됩니다.
이제 동일한 방법을 사용해 PDF 텍스트 삭제를 GroupDocs.Redaction for .NET과 함께 Linux 기반 Docker 애플리케이션에 통합할 수 있습니다.
Licensing
라이선스가 없으면 GroupDocs.Redaction for .NET은 평가 모드로 실행됩니다. 평가 버전은 사용 제한이 있으며 저장된 문서에 워터마크가 추가됩니다.
30일 임시 라이선스는 GroupDocs 임시 라이선스 페이지에서 제공됩니다. 가격 정보는 GroupDocs.Redaction for .NET 구매 페이지에서 확인할 수 있습니다.