
C#에서 프로그래밍 방식으로 PDF 파일을 읽고 처리하는 것은 문서 자동화, 데이터 추출, 보고서 생성 시스템을 구축하는 .NET 개발자에게 흔한 요구 사항입니다. 기존 PDF 파싱 라이브러리는 텍스트를 추출하고 서식을 유지하며 표를 파싱하기 위해 복잡한 코드를 요구합니다. 이들은 불규칙한 레이아웃, 정렬되지 않은 콘텐츠, 비표준 표 구조에 대해 종종 품질이 낮은 결과를 생성합니다.
C#에서 PDF를 읽고 PDF 콘텐츠를 다른 형식으로 내보내는 간단하고 AI 기반의 방법을 원한다면, Spire.Agent.Office가 좋은 선택입니다. 이 .NET AI 에이전트 SDK는 자연어 지시를 사용하여 PDF 파싱 및 변환 워크플로를 구동합니다. Adobe Acrobat이나 외부 타사 PDF 소프트웨어 없이 작동합니다.
이 튜토리얼에서는 C#에서 AI로 PDF를 읽는 방법을 소개하며, 다음과 같은 완전한 실행 가능 코드 샘플을 제공합니다:
다른 AI PDF 리더 대신 Spire.Agent.Office를 선택해야 하는 이유
인터넷에는 범용 AI PDF 리더가 넘쳐나지만, 대부분은 개발자 유연성, 엔터프라이즈 보안, 구조적 파싱 정확성이 부족합니다. Spire.Agent.Office는 .NET 생태계를 위해 구축된 AI 문서 처리 SDK입니다. AI 파싱과 Office 문서 API를 결합합니다. 간단한 자연어 프롬프트를 전달하여 PDF, Word, Excel, PowerPoint 파일을 읽고, 분석하고, 변환할 수 있습니다.
C#에서 AI PDF 읽기의 주요 장점:
- 개발자 우선 SDK: 사용자 정의 앱, CRM, 자동화 파이프라인, 백엔드 시스템에 원활하게 API를 통합할 수 있도록 구축됨
- 구조화된 데이터 정확성: 뛰어난 표 및 레이아웃 보존
- 엔터프라이즈 보안: 로컬 처리 옵션으로 민감한 PDF 데이터가 타사 클라우드 도구로 유출되는 것을 방지
- 다중 형식 지원: 하나의 통합 에이전트에서 PDF와 Office 문서를 읽음
- 최소한의 코드: 수백 줄의 수동 파싱 로직을 간단한 AI 프롬프트 호출로 대체하여 개발 속도를 높임.
설정: 프로젝트, 네임스페이스, 토큰
- 1. NuGet 패키지 설치
.NET 프로젝트를 생성하고 라이브러리를 설치하세요. 모든 종속성이 자동으로 설치됩니다.
Install-Package Spire.Agent.Office
- 2. 네임스페이스 추가
세 개의 using 지시문으로 AI PDF 처리에 필요한 모든 것을 얻을 수 있습니다:
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Pdf;
- 3. SpireToken 구성
Spire.Agent.Office에는 유효한 SpireToken 키가 필요합니다. 평가용 임시 키는 여기에서 요청할 수 있습니다.
AIOptions options = new AIOptions();
options.SpireToken = "YOUR_SPIRE_TOKEN_KEY";
예제 1: .NET AI 에이전트로 PDF 텍스트 추출하기
원시 텍스트 콘텐츠를 추출하는 것은 일반적으로 모든 문서 처리 파이프라인의 첫 번째 단계입니다. Spire.Agent.Office를 사용하면 자연어 지시를 사용하여 PDF 콘텐츠를 파싱하고 결과를 TXT 파일에 직접 작성할 수 있습니다.
일반적인 사용 사례: 검색 인덱스 구축, 문서를 다운스트림 NLP 파이프라인에 공급, 감사 로깅, 콘텐츠 변경 감지.
C# 코드: PDF를 TXT로
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Pdf;
string inputPath = @"input0.pdf";
string outputPath = @"output.txt";
string key = "YOUR_SPIRE_TOKEN_KEY";
if (!string.IsNullOrEmpty(inputPath) && File.Exists(inputPath))
{
AIOptions options = new AIOptions();
options.SpireToken = key;
using (PdfDocument pdf = new PdfDocument())
{
pdf.LoadFromFile(inputPath);
// Get the AI processor for PDF
AIDocumentProcessor processor = pdf.AI(options);
// Natural language instruction
string instruction = "Read all text content from the PDF file, retain paragraph layout, and save as a TXT file";
// Execute the AI instruction
AIResult result = processor.ExecuteInstruction(pdf, instruction, outputPath);
}
}
생성된 TXT 파일은 PDF의 단락 구조를 유지합니다. 단락 서식 없이 일반 텍스트를 추출하려면 필요에 따라 AI 지시를 변경하세요.

예제 2: .NET AI 에이전트로 PDF를 편집 가능한 Word로 변환하기
표준 PDF는 편집할 수 없으므로 수정 및 콘텐츠 재사용이 어렵습니다. Spire.Agent.Office AI는 PDF 레이아웃, 글꼴 스타일, 단락 구조를 읽은 다음 서식을 일관되게 유지하면서 정적 PDF를 완전히 편집 가능한 DOCX 파일로 변환합니다.
실제 사용 사례: 조달 또는 법무 팀은 PDF 형식의 공급업체 계약서를 받고 변경 내용 추적 검토, 주석 삽입 및 버전 비교를 위해 편집 가능한 DOCX 파일이 필요합니다.
C# 코드: PDF를 Word로
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Pdf;
string inputPath = @"supplier_agreement.pdf";
string outputPath = @"supplier_agreement_editable.docx";
string key = "YOUR_SPIRE_TOKEN_KEY";
if (!string.IsNullOrEmpty(inputPath) && File.Exists(inputPath))
{
AIOptions options = new AIOptions();
options.SpireToken = key;
using (PdfDocument pdf = new PdfDocument())
{
pdf.LoadFromFile(inputPath);
// Get the AI processor for PDF
AIDocumentProcessor processor = pdf.AI(options);
// Natural language instruction
string instruction = "Convert this supplier agreement PDF into an editable Word document. " +
"Retain hierarchical clause numbering (1, 1.1, 1.2…), use Word's multilevel list, no hardcoded numbers. " +
"keep section headings in bold, and convert tables to native Word tables at original positions. " +
"Do not flatten the layout into plain paragraphs. Keep signature block formatting intact.";
// Execute the AI instruction
AIResult result = processor.ExecuteInstruction(pdf, instruction, outputPath);
}
}
주요 이점
- 조항 구조 유지: 번호가 매겨진 법적 조항이 수정 검토(redlining)를 위해 적절하게 구조화된 상태로 유지됨
- 표 보존: 가격표와 일정표가 실제 Word 표로 유지됨
- 최소한의 코드: 단일 지시로 기존에 여러 구성 요소에 대한 광범위한 API 호출이 필요했던 작업을 대체함

예제 3: .NET AI 에이전트로 PDF 표를 CSV/Excel로 읽기
Spire.Agent.Office의 가장 강력한 기능 중 하나는 PDF 표에서 구조화된 데이터를 이해하고 추출하는 능력입니다. 비즈니스 시나리오에는 미지급금 자동화, 은행 명세서 조정, 재무 보고서 처리가 포함됩니다.
C# 코드: 은행 명세서 PDF를 CSV로
매달 PDF 명세서를 다운로드하고 거래 내역을 회계 소프트웨어로 가져와야 하는 경우, 이 예제가 적합합니다.
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Pdf;
string inputPath = @"bank_statement_1.pdf";
string outputPath = @"bank_transactions.csv";
string key = "YOUR_SPIRE_TOKEN_KEY";
if (!string.IsNullOrEmpty(inputPath) && File.Exists(inputPath))
{
AIOptions options = new AIOptions();
options.SpireToken = key;
using (PdfDocument pdf = new PdfDocument())
{
pdf.LoadFromFile(inputPath);
// Get the AI processor for PDF
AIDocumentProcessor processor = pdf.AI(options);
// Natural language instruction
string instruction = "Extract all transactions from this bank statement into a CSV." +
" Include: Transaction Date, Description, Reference Number, Debit Amount, Credit Amount," +
" and Running Balance. Use empty cells (not zeros) when a debit or credit field doesn't apply to a row." +
" Exclude opening balance, closing balance, and any summary totals." +
" Preserve the original transaction order as they appear on the statement.";
// Execute the AI instruction
AIResult result = processor.ExecuteInstruction(pdf, instruction, outputPath);
}
}

C# 코드: 재무 PDF 보고서를 Excel로
PDF 표를 Excel로 내보내려면 출력 형식(.xlsx)을 변경하고 지시를 조정하기만 하면 됩니다. 예를 들어, 여러 페이지에 걸쳐 여러 표가 있는 분기별 PDF 보고서가 있는 경우, 모든 것을 별도의 시트가 있는 단일 통합 문서로 추출할 수 있습니다:
string inputPath = @"Q3_2024_financial_report.pdf";
string outputPath = @"Q3_2024_financials.xlsx";
string instruction = "This PDF contains multiple financial tables across several pages:" +
" Revenue by Region, Cost of Goods Sold, Operating Expenses, and Cash Flow Summary." +
" Extract each table into its own named worksheet in the output Excel file." +
" Use the table's section heading as the sheet name. Keep column headers on the" +
" first row of each sheet, ensure all currency values are numeric (strip out '{BODY_CONTENT}#39; and ',')," +
" and preserve the original row and column order.";
예제 4: 여러 PDF, 하나의 지시 (일괄 처리)
대부분의 실제 자동화 워크로드는 문서 배치(예: 수십 개의 송장 PDF)를 처리합니다. attachmentPaths 매개변수를 사용하세요:
- 빈
PdfDocument를 인스턴스화합니다. -
attachmentPaths를 통해 PDF 파일 경로 컬렉션을 전달합니다. - 출력을 결합하거나 집계하는 방법을 설명하는 하나의 지시를 작성합니다.
이 패턴은 많은 송장을 하나의 집계된 Excel 통합 문서로 통합하는 것과 같은 사용 사례를 가능하게 합니다.
C# 코드: PDF 송장 일괄 처리
using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Pdf;
string[] invoicePaths = Directory.GetFiles(@"F:\Invoices", "*.pdf");
string outputPath = @"consolidated_invoices.xlsx";
string key = "YOUR_SPIRE_TOKEN_KEY";
AIOptions options = new AIOptions();
options.SpireToken = key;
using (PdfDocument pdf = new PdfDocument())
{
// Get the AI processor for PDF
AIDocumentProcessor processor = pdf.AI(options);
// Natural language instruction for batch processing
string instruction = "Read all attached invoice PDFs and consolidate them into one Excel workbook. " +
"Create one row per invoice with columns: Invoice Number, Vendor Name, Invoice Date, " +
"Due Date, Subtotal, Tax, Total Amount. Sort by Invoice Date ascending.";
// Execute with attachment paths
AIResult result = processor.ExecuteInstruction(pdf, instruction, outputPath, invoicePaths);
}
API 개요
| API 구성 요소 | 목적 | 주요 메서드/속성 |
|---|---|---|
AIOptions |
구성 개체 |
SpireToken, WorkDir, TimeoutMs
|
AIDocumentProcessor |
주요 AI 처리 진입점 | ExecuteInstruction() |
pdf.AI(options) |
PdfDocument의 확장 메서드 |
AIDocumentProcessor를 반환 |
AIResult |
실행 결과 계약 |
Success, TokenUsage
|
attachmentPaths |
지원 문서 매개변수 |
ExecuteInstruction()에 전달됨 |
안정적인 추출을 위한 모범 사례
1. 지시에 구체적인 출력 요구 사항 작성
“데이터를 추출하세요”와 같은 모호한 프롬프트는 피하세요. 대상 형식, 열, 구조를 정의하세요 (예: “Excel 통합 문서로 내보내기, 라인 항목당 한 행”).
2. 비즈니스 로직을 지시에 포함
위치 오프셋이나 좌표를 하드코딩하는 대신 프롬프트 내에서 필터링, 정렬, 정규화를 구현하세요. 로직이 사람이 읽을 수 있고 유지 관리 가능한 상태로 유지됩니다.
3. AIResult.Success 검증
모든 호출에서 실행 상태를 확인하세요. 조용한 실패는 무인 자동화 파이프라인을 중단시킬 수 있습니다.
if (result == null || !result.Success)
{
throw new InvalidOperationException(
{BODY_CONTENT}quot;AI instruction failed: {result?.ErrorMessage ?? "Unknown error"}");
}
4. 출력을 검증하세요.
재무 또는 규정 준수 데이터의 경우, 생성된 파일에 대해 자체 검사를 실행하세요 — 행 수, 열 합계, 스키마 준수. 에이전트는 결과물을 생성하며, 파이프라인은 정확성에 대한 책임을 유지합니다.
마무리 생각
위의 예제는 Spire.Agent.Office SDK가 AI를 활용하여 PDF를 TXT로 읽고, PDF를 편집 가능한 Word 문서로 재구성하고, 은행 명세서와 재무 표를 CSV 또는 Excel로 추출하고, 송장 배치를 단일 통합 문서로 통합하는 방법을 보여줍니다. 각 경우에 코드는 작게 유지되고, 지시는 읽기 쉬우며, 출력은 다운스트림 자동화에 충분히 구조화된 상태로 유지됩니다.
팀이 취약한 파싱 로직을 작성하거나 PDF 데이터를 수동으로 다시 입력하는 데 시간을 보내고 있다면, Spire.Agent.Office는 실용적인 해결책을 제공합니다. NuGet 패키지를 설치하고, 토큰을 추가하고, 하나의 워크플로로 시작하세요. 그런 다음 일괄 처리로 확장하고 더 빠르게 개발하고, 유지 관리가 더 쉽고, 실제 PDF에 더 강력한 문서 자동화 파이프라인을 구축할 수 있습니다.
자주 묻는 질문 (FAQ)
Q: 표 추출은 얼마나 정확한가요?
Spire.Agent.Office는 불규칙한 표와 병합된 셀을 포함한 표 구조를 이해하는 AI 기반 파싱을 사용합니다. 최상의 결과를 얻으려면 예상 출력 형식에 대한 명확한 지시를 제공하세요.
Q: 암호로 보호된 PDF를 처리할 수 있나요?
예. pdf.LoadFromFile(inputPath, password)를 호출할 때 암호를 제공하여 암호로 보호된 PDF를 로드할 수 있습니다.
Q: 대량의 PDF 배치를 어떻게 처리하나요?
attachmentPaths 매개변수를 사용하여 단일 지시로 여러 파일을 전달하세요. AI 에이전트는 이를 집합적으로 처리하고 통합된 출력을 생성합니다.
Q: AI 처리의 시간 초과를 어떻게 설정하나요?
AIOptions의 TimeoutMs 속성을 사용하여 시간 초과를 구성할 수 있습니다:
AIOptions options = new AIOptions();
options.SpireToken = key;
options.TimeoutMs = 120000; // 2 minutes