문서에서 텍스트 교체 및 저장 – GroupDocs.Editor .NET
소개
프로그램matically 문서에서 텍스트 교체가 필요하다면, .NET용 GroupDocs.Editor가 깔끔하고 고성능의 방법을 제공합니다. 이 튜토리얼에서는 Word 파일을 로드하고 문자열을 교체한 뒤, RTF, DOCM, 일반 텍스트와 같은 여러 인기 포맷으로 결과를 저장하는 과정을 단계별로 안내합니다. 문서 자동화 서비스를 구축하거나 내부 도구에 빠른 수정 기능을 추가하려는 경우, 아래 단계만 따라 하면 몇 분 안에 작업을 시작할 수 있습니다.
빠른 답변
- 텍스트를 교체하는 가장 간단한 방법은?
Editor로 파일을 로드하고 HTML을 수정한 뒤EditableDocument에Save를 호출합니다. - 어떤 포맷으로 저장할 수 있나요? 기본 제공으로 RTF, DOCM, TXT를 지원합니다.
- 전체 Office 설치가 필요합니까? 필요 없습니다 – GroupDocs.Editor는 완전히 서버 측에서 동작합니다.
- 필요한 .NET 버전은? .NET Framework 4.6.1 이상, .NET Core 3.1 +, .NET 5/6 모두 지원됩니다.
- 프로덕션에서 라이선스가 필수인가요? 예, 상용 라이선스를 사용하면 평가 제한이 해제됩니다; 무료 체험판도 제공됩니다.
“문서에서 텍스트 교체”란 무엇인가요?
**“문서에서 텍스트 교체”**는 파일 내부의 특정 문자열을 찾아 수동 편집 없이 새로운 내용으로 교체하는 작업을 의미합니다. 이 작업은 대량 업데이트, 템플릿 적용, 데이터 기반 문서 생성 등에 필수적이며, 개발자가 문서 개인화 자동화, 여러 파일에 대한 규제 변경 적용, 동적 콘텐츠 생성을 큰 워크플로에 통합할 수 있게 해줍니다.
왜 .NET용 GroupDocs.Editor를 사용하나요?
GroupDocs.Editor는 30개 이상의 입력 및 출력 포맷을 지원합니다—DOCX, RTF, TXT, HTML, PDF, ODT 등—그리고 500 MB까지의 파일을 전체 문서를 메모리에 로드하지 않고 처리합니다. API는 Windows, Linux, macOS에서 동작하여 크로스‑플랫폼 유연성을 제공하며, 내부 벤치마크에 따르면 복잡한 레이아웃에서도 99.9 % 성공률을 보입니다.
전제 조건
- 개발 환경: Visual Studio (최근 버전 중 하나).
- .NET Framework: 4.6.1 이상 (또는 .NET Core 3.1 +).
- GroupDocs.Editor for .NET: 최신 버전을 여기에서 다운로드하세요.
- 기본 C# 지식: 클래스, 메서드, 문자열 조작에 익숙해야 합니다.
자세한 사용법은 공식 documentation을 참고하세요.
네임스페이스 가져오기
편집 및 저장에 필요한 네임스페이스를 가져옵니다.
Editor 클래스는 모든 문서‑조작 작업의 진입점입니다.
// Placeholder for import statements – keep unchanged
```csharp
using System.IO;
using GroupDocs.Editor.Formats;
using GroupDocs.Editor.Options;
환경이 준비되었으니, **문서에서 텍스트 교체**를 위한 구체적인 단계로 들어갑니다.
## GroupDocs.Editor를 사용하여 문서에서 텍스트를 교체하는 방법
`Editor`로 소스 파일을 로드하고 HTML 표현을 가져온 뒤, HTML 문자열에 간단한 `Replace`를 수행하고 수정된 HTML로 `EditableDocument`를 다시 생성합니다. 마지막으로 대상 포맷에 맞는 `Save` 오버로드를 호출합니다.
### 1단계: 문서 로드
`EditableDocument` 객체는 편집 중인 파일의 메모리 내 표현을 보유합니다.
`Editor` 클래스는 파일을 로드하고 조작 가능한 `EditableDocument`를 반환합니다.
```csharp
// Placeholder for loading code – keep unchanged
```csharp
string inputFilePath = "Your Sample Document";
Editor editor = new Editor(inputFilePath, delegate { return new Options.WordProcessingLoadOptions(); });
EditableDocument defaultWordProcessingDoc = editor.Edit();
### 2단계: 문서 수정
GroupDocs.Editor는 HTML 스냅샷으로 작업하므로, 간단한 교체를 위해 문서를 일반 텍스트처럼 다룰 수 있습니다.
`EditableDocument.GetHtml()` 메서드가 HTML을 추출하고, 문자열을 변경한 뒤 업데이트된 HTML로 새로운 `EditableDocument`를 생성합니다.
```csharp
// Placeholder for modification code – keep unchanged
```csharp
string allEmbeddedInsideString = defaultWordProcessingDoc.GetEmbeddedHtml();
string allEmbeddedInsideStringEdited = allEmbeddedInsideString.Replace("Subtitle", "Edited subtitle");
EditableDocument editedDoc = EditableDocument.FromMarkup(allEmbeddedInsideStringEdited, null);
### 3단계: 문서 저장
GroupDocs.Editor는 각 지원 포맷에 대한 전용 `Save` 메서드를 제공합니다. 아래는 흔히 사용되는 세 가지 대상입니다.
#### RTF로 저장
`SaveAsRtf` 메서드는 편집된 내용을 Rich Text Format으로 저장하며 대부분의 스타일을 보존합니다.
```csharp
// Placeholder for RTF save code – keep unchanged
```csharp
string outputRtfPath = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), "editedDoc.rtf");
WordProcessingSaveOptions rtfSaveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Rtf);
editor.Save(editedDoc, outputRtfPath, rtfSaveOptions);
#### DOCM으로 저장
DOCM은 매크로가 포함된 Word 포맷이며, 매크로 기능을 유지해야 할 경우 `SaveAsDocm`을 사용합니다.
```csharp
// Placeholder for DOCM save code – keep unchanged
```csharp
string outputDocmPath = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), "editedDoc.docm");
WordProcessingSaveOptions docmSaveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docm);
using (FileStream outputStream = File.Create(outputDocmPath))
{
editor.Save(editedDoc, outputStream, docmSaveOptions);
}
#### 일반 텍스트로 저장
경량 출력이 필요할 때는 `SaveAsTxt`가 포맷을 제거하고 순수 텍스트만 반환합니다.
```csharp
// Placeholder for TXT save code – keep unchanged
```csharp
string outputTxtPath = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), "editedDoc.txt");
TextSaveOptions textSaveOptions = new TextSaveOptions
{
Encoding = System.Text.Encoding.UTF8,
PreserveTableLayout = true
};
editor.Save(editedDoc, outputTxtPath, textSaveOptions);
### 4단계: 정리
`EditableDocument`와 `Editor` 인스턴스를 항상 Dispose하여 파일 핸들과 비관리 리소스를 해제합니다.
`Dispose` 패턴은 임시 파일을 삭제하고 메모리를 회수하도록 보장합니다.
```csharp
// Placeholder for cleanup code – keep unchanged
```csharp
editedDoc.Dispose();
defaultWordProcessingDoc.Dispose();
editor.Dispose();
## 일반적인 문제 및 해결책
| 문제 | 발생 원인 | 해결 방법 |
|-------|----------------|-----|
| **텍스트가 교체되지 않음** | HTML에 인코딩 문자(` `, `<span>`)가 포함될 수 있음. | 교체 전에 `HtmlAgilityPack`을 사용해 정확한 노드를 찾습니다. |
| **저장된 파일이 손상됨** | Dispose 전에 출력 스트림이 플러시되지 않음. | `editableDocument.Save(...);` 후 `editableDocument.Dispose();`를 호출합니다. |
| **대용량 파일에서 성능 저하** | 300페이지 문서 전체 HTML을 메모리에 로드하기 때문. | `LoadOptions.UseMemoryMapping = true`를 활성화해 파일을 부분 스트리밍합니다. |
| **TXT 저장 시 서식 손실** | TXT 포맷은 설계상 모든 스타일을 제거함. | 기본 서식이 필요하면 RTF로 저장하는 것을 고려하세요. |
## 자주 묻는 질문
**Q: GroupDocs.Editor가 지원하는 파일 형식은 무엇인가요?**
A: GroupDocs.Editor는 DOCX, RTF, TXT, HTML, PDF, ODT 등을 포함해 30개 이상의 포맷을 처리합니다. 전체 목록은 공식 문서를 참고하세요.
**Q: 구매 전에 GroupDocs.Editor를 체험할 수 있나요?**
A: 예, 무료 체험판을 [여기](https://releases.groupdocs.com/)에서 받을 수 있습니다.
**Q: 문제가 발생하면 지원을 받을 수 있나요?**
A: 물론입니다—커뮤니티와 제품 팀의 도움을 받을 수 있는 지원 포럼은 [여기](https://forum.groupdocs.com/c/editor/20)에서 확인하세요.
**Q: 평가용 임시 라이선스를 어떻게 얻나요?**
A: 임시 라이선스는 [여기](https://purchase.groupdocs.com/temporary-license/)에서 요청할 수 있습니다.
**Q: GroupDocs.Editor 전체 버전을 어디서 구매할 수 있나요?**
A: 전체 버전은 [여기](https://purchase.groupdocs.com/buy)에서 구매하실 수 있습니다.
---
**마지막 업데이트:** 2026-05-27
**테스트 환경:** GroupDocs.Editor 2.10 for .NET
**작성자:** GroupDocs
## 관련 튜토리얼
- [How to Edit and Save Word Documents Using GroupDocs.Editor for .NET: A Complete Guide](/editor/net/word-processing-documents/editing-word-docs-groupdocs-editor-net/)
- [Convert Word to HTML Using GroupDocs.Editor .NET: A Step-by-Step Guide](/editor/net/document-saving/convert-word-to-html-groupdocs-editor-dotnet/)
- [Efficient Document Editing with GroupDocs.Editor .NET: Transform HTML to Editable Documents](/editor/net/document-editing/edit-documents-groupdocs-editor-net/)