Aspose.PDF FOSS for .NET은 PDF 문서를 읽고, 만들고, 조작하기 위한 무료이며 MIT-licensed .NET 라이브러리입니다. 관용적인 오픈소스 라이선스로 배포되어, 엔터프라이즈 급 PDF 기능에 대한 전통적인 장벽을 제거합니다 — 라이브러리의 모든 기능을 상업 라이선스를 구매하지 않고도 사용할 수 있습니다.

Aspose.PDF FOSS for .NET란 무엇인가요?

이 라이브러리는 .NET 8 및 이후 버전을 대상으로 합니다. 패키지 ID Aspose.Pdf.Foss 로 NuGet에 게시되며 단일 명령으로 모든 .NET 8+ 프로젝트에 추가할 수 있습니다:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

주 기본 네임스페이스는 Aspose.Pdf이며, 관련 네임스페이스로는 Aspose.Pdf.Text, Aspose.Pdf.FormsAspose.Pdf.Facades이 포함됩니다. 이 라이브러리는 805개의 public API 클래스를 제공하며, 이는 7,488개의 문서화된 클레임과 테스트 스위트에서 직접 추출한 100개의 코드 스니펫을 기반으로 합니다.

핵심 기능

API는 PDF 문서의 전체 수명 주기를 포괄합니다:

  • Document creation and loadingDocument.Create()은 빈 문서를 생성합니다; Document.Open(data)는 바이트 배열 또는 스트림에서 기존 PDF를 로드합니다.
  • Page and content accessPages 컬렉션은 1 기반 인덱스를 사용하여 개별 페이지에 접근할 수 있게 하며, 각 페이지는 주석, 연산자 및 콘텐츠 스트림을 노출합니다.
  • Text extractionTextFragmentAbsorber은 페이지를 방문하여 모든 텍스트 조각을 수집하며, 선택적 검색 구문 필터링 및 정규식 지원을 제공합니다.
  • Interactive actionsPdfAction.CreateUri, PdfAction.CreateGoTo, PdfAction.CreateJavaScriptPdfAction.CreateLaunch는 표준 PDF 액션 유형을 다룹니다.
  • AnnotationsAnnotationCollection.AddLinkAnnotation은 페이지의 임의 사각형 영역에 연결된 액션이 있는 링크 주석을 첨부합니다.
  • FormsAspose.Pdf.Forms 네임스페이스와 Aspose.Pdf.Facades은 AcroForm 필드, 외관 서식 및 필드 수준 JavaScript 확장에 대한 접근을 제공합니다.

문서 열기 및 링크 추가

다음 예제는 라운드‑트립 패턴을 보여줍니다: 새 PDF 문서를 생성하고, 첫 페이지에 URI 액션 링크 주석을 추가한 다음, 스트림에 저장하고, 다시 로드하여 주석이 지속되는지 확인합니다.

using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(new Rectangle(50, 700, 200, 720), action);
using var ms = new MemoryStream();
doc.Save(ms);
ms.Position = 0;
using var doc2 = Document.Open(ms.ToArray());
var annot = (LinkAnnotation)doc2.Pages[1].Annotations[1];
Console.WriteLine(annot.Uri); // https://aspose.com

Document.Open 정적 메서드는 byte[] 또는 스트림을 허용합니다. doc.Pages[1]은 1 기반 인덱스로 첫 번째 페이지에 접근합니다 — 라이브러리 전체에서 사용되는 동일한 인덱스 규칙입니다. MemoryStream에 저장한 후, 문서를 다시 로드하면 모든 주석이 보존됩니다.


페이지에서 텍스트 검색

TextFragmentAbsorber은(는) 모든 페이지의 콘텐츠 스트림에 대한 키워드 검색을 제공합니다. 결과를 제한하려면 생성자에 검색 구문을 전달하고, 모든 조각을 수집하려면 인수가 없는 오버로드를 사용하십시오:

using var doc = Document.Open("path/to/document.pdf");
var absorber = new TextFragmentAbsorber("Hello");
absorber.Visit(doc.Pages[1]);
foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Found: {fragment.Text}");
}

결과 컬렉션의 각 TextFragmentText, FontSize 및 위치 데이터를 포함한 속성을 노출하므로, 추출된 조각 위에 검색, 강조 또는 삭제 워크플로를 구축하는 것이 간단합니다.


MIT License 및 오픈 개발

모든 소스 코드는 GitHub에 공개되어 있으며 MIT License 하에 배포됩니다. 평가 워터마크가 없고, 사용 제한도 없으며, 관리할 별도의 라이선스 파일도 없습니다. FOSS 빌드에서는 Document.IsLicensed 속성이 항상 true을 반환합니다.

패키지는 현재 버전 0.1.0-alpha이며, 활발한 개발을 반영합니다. API 표면은 이미 방대하여 805개의 클래스와 7,488개의 클레임이 포함되어 있으며, 알파 지정은 1.0 릴리스 이전에 API 서명이 변경될 수 있음을 나타냅니다.


시작하기

관련 리소스