문서 저장 및 내보내기
문서 저장 및 내보내기
Document.Save은(는) 문서를 파일이나 스트림에 대상 형식으로 기록합니다. 형식은 파일 확장자에서 추론되거나 SaveFormat 값으로 명시적으로 지정되거나, SaveOptions 하위 클래스 — OoxmlSaveOptions, MarkdownSaveOptions, TxtSaveOptions — 에 의해 형식별 제어가 이루어집니다. 이 가이드는 Save 오버로드, SaveFormat 열거형, OOXML 저장 옵션, Markdown 및 일반 텍스트 내보내기, 그리고 변환 전 형식 감지를 다룹니다.
Document.Save 로 저장하기
가장 간단한 호출인 Document.Save(fileName)은 파일 확장자에서 대상 형식을 추론합니다. Save(fileName, saveFormat)은 확장자와 관계없이 형식을 명시적으로 지정하고, Save(fileName, saveOptions)(또는 일치하는 Stream 오버로드)는 형식별 설정을 위한 SaveOptions 하위 클래스를 받아들입니다. SaveOptions.CreateSaveOptions(saveFormat)는 주어진 SaveFormat에 대해 기본값이 이미 설정된 적절한 옵션 하위 클래스를 반환하는 정적 팩터리입니다.
SaveFormat을(를) 사용하여 형식 선택
SaveFormat 열거형은 라이브러리가 인식하는 모든 저장 형식 식별자를 나열합니다. Document.Save은 이 에디션의 핵심 문서 형식 — DOCX, DOCM, DOTX, DOTM, 및 Flat OPC(매크로 지원 및 템플릿 변형 포함) — 뿐만 아니라 Markdown 및 일반 텍스트에 대해 완전하게 읽고 씁니다. FileFormatUtil.SaveFormatToExtension(saveFormat)와 ExtensionToSaveFormat(extension)은 열거형과 파일 확장자 문자열 간을 변환합니다.
SaveFormat 값 중 일부는 API의 완전성을 위해 열거형에 존재하지만, 이 축소된 오픈소스 에디션에서는 작동하는 리더나 라이터가 구현되지 않은 형식에 해당합니다 — 해당 형식으로 저장을 시도하면 원본 문서와 동등하지 않은 출력이 생성됩니다. 신뢰할 수 있는 라운드트립을 위해 위에 언급된 형식만 사용하십시오.
OOXML 옵션: DOCX, DOCM, DOTX, DOTM, 및 Flat OPC
OoxmlSaveOptions은(는) Open XML 형식 중 어느 것이든 저장하도록 구성합니다. 해당 SaveFormat 속성은 기록할 특정 변형을 선택하고, Password는 저장된 파일에 개방 비밀번호를 설정합니다(Document.Protect의 편집 제한과는 별개). Compliance는 OOXML 엄격성 수준을 선택하며, CompressionLevel / Zip64Mode는 기본 ZIP 패키징을 제어합니다. new OoxmlSaveOptions(saveFormat)을(를) 사용하거나 SaveOptions.CreateSaveOptions(saveFormat)을(를) 통해 하나를 생성하십시오.
Markdown으로 내보내기
MarkdownSaveOptions은(는) Markdown 내보내기를 제어합니다: ListExportMode과 LinkExportMode는 목록과 하이퍼링크가 렌더링되는 방식을 결정하고, ImagesFolder / ImagesFolderAlias는 추출된 이미지가 저장되는 위치와 참조 방식을 제어하며, ExportImagesAsBase64는 대신 이미지를 인라인으로 삽입하고, TableContentAlignment은 생성된 표 마크업에 영향을 줍니다. MarkdownSaveOptions 인스턴스를 Document.Save(fileName, saveOptions)에 .md 파일 이름과 함께 전달하거나, SaveFormat을(를) 명시적으로 설정하십시오.
Plain Text로 내보내기
TxtSaveOptions(은)는 기본 TxtSaveOptionsBase(을)를 통해(MarkdownSaveOptions와 공유) plain-text 내보내기를 제어합니다: Encoding은 문자 인코딩을 설정하고, ParagraphBreak는 줄 끝 문자열을 지정하며, MaxCharactersPerLine는 긴 줄을 자동으로 래핑하고, SimplifyListLabels은 목록 글머리표/번호를 일반 문자로 정규화하며, PreserveTableLayout은 공백을 사용해 표 열을 정렬하려 시도합니다.
변환하기 전에 형식 감지
형식을 미리 알 수 없는 파일을 변환하기 전에, FileFormatUtil.DetectFileFormat(fileName)은(는) 감지된 LoadFormat가 포함된 FileFormatInfo을 반환합니다. 이를 FileFormatUtil.LoadFormatToSaveFormat(loadFormat)와 결합하여 Document.Save을(를) 시도하기 전에 이 버전이 지원하는 형식으로 라운드트립이 가능한지 판단하십시오.
팁 및 모범 사례
- 형식별 동작(예: Markdown 목록 렌더링 또는 OOXML 압축)을 제어해야 할 때는 일반
Save(fileName, saveFormat)오버로드 대신Save(fileName, saveOptions)를 사용하십시오. - 오픈 비밀번호로 보호된 파일에는
OoxmlSaveOptions.Password를 설정하십시오; 이는 편집을 제한하지만 파일을 암호화하지 않는Document.Protect과는 별개입니다. - 단일 독립형 Markdown 파일의 경우
MarkdownSaveOptions.ExportImagesAsBase64를 선택하고, Markdown과 함께 추출된 이미지 파일 폴더가 필요할 때는ImagesFolder를 선택하십시오. - 런타임에 대상 형식이 결정될 때 구체적인 옵션 클래스를 수동으로 선택하는 대신
SaveOptions.CreateSaveOptions(saveFormat)를 호출하십시오. - 잘못되거나 오해를 일으킬 수 있는 단순 파일 확장자에 의존하지 말고 변환 전에
FileFormatUtil로 대상 형식을 확인하십시오.
공통 문제
| 문제 | 원인 | 수정 |
|---|---|---|
Save(fileName)이 잘못된 형식을 선택합니다 | 파일 확장자가 의도한 형식과 일치하지 않습니다 | 형식을 명시하려면 Save(fileName, saveFormat) 또는 Save(fileName, saveOptions)을 사용하십시오 |
| 저장된 OOXML 파일이 비밀번호로 열리지 않습니다 | OoxmlSaveOptions.Password이 저장하기 전에 설정되지 않았습니다 | OoxmlSaveOptions를 생성하고, Password을 설정한 뒤, Save에 전달하십시오. |
| Markdown 내보내기가 이미지 파일을 예상치 못하게 흩어뜨립니다. | 기본 MarkdownSaveOptions 동작은 이미지를 파일로 추출합니다. | 단일 자체 포함 파일을 위해 ExportImagesAsBase64 = true을 설정하거나, 이미지가 저장될 위치를 제어하려면 ImagesFolder을 설정하십시오. |
| 텍스트만 내보내면 표 열 정렬이 손실됩니다. | TxtSaveOptions.PreserveTableLayout은 기본값으로 유지됩니다. | 저장하기 전에 PreserveTableLayout = true를 설정하십시오. |
FAQ
파일 확장자와 관계없이 특정 형식으로 문서를 저장하려면 어떻게 해야 하나요?
명시적인 SaveFormat 값을 사용하여 Save(fileName, saveFormat)을 호출하거나, 일치하는 SaveOptions 하위 클래스를 사용하여 Save(fileName, saveOptions)를 호출하십시오.
이 버전은 어떤 형식을 양방향으로 읽고 쓸 수 있나요?
DOCX, DOCM, DOTX, DOTM, Flat OPC (매크로 지원 및 템플릿 변형 포함), Markdown, 그리고 일반 텍스트.
저장된 파일에 비밀번호를 설정하려면 어떻게 해야 하나요?
Password을 OoxmlSaveOptions 인스턴스에 설정하고 Document.Save(fileName, saveOptions)에 전달하십시오.
내보낸 텍스트 파일의 줄 끝을 어떻게 제어합니까?
저장하기 전에 ParagraphBreak을 TxtSaveOptions 인스턴스에 설정하십시오.
파일을 변환하기 전에 해당 파일이 어떤 형식인지 어떻게 확인하나요?
FileFormatUtil.DetectFileFormat(fileName)를 호출하고 반환된 FileFormatInfo.LoadFormat을 읽으세요.
API Reference 요약
| 클래스/메서드 | 설명 |
|---|---|
Document.Save | 문서를 선택한 형식으로 파일, 스트림 또는 출력 대상에 기록합니다. |
SaveFormat | 저장 작업의 대상 형식을 식별하는 열거형. |
SaveOptions | 형식별 저장 구성을 위한 추상 기본 클래스; CreateSaveOptions(saveFormat)는 일치하는 하위 클래스를 반환합니다. |
OoxmlSaveOptions | DOCX, DOCM, DOTX, DOTM 및 Flat OPC에 대한 옵션 — 비밀번호, 규격 준수, 압축. |
MarkdownSaveOptions | Markdown 내보내기 옵션 — 목록/링크 렌더링, 이미지 처리. |
TxtSaveOptions / TxtSaveOptionsBase | 플레인 텍스트 내보내기 옵션 — 인코딩, 줄 바꿈, 테이블 레이아웃. |
FileFormatUtil.DetectFileFormat | 파일을 로드하거나 변환하기 전에 파일 형식을 감지합니다. |
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormat | SaveFormat 값과 파일 확장자 사이를 변환합니다. |