문서 분할
Splitting 또는 split a document 큰 문서를 더 많은 수의 작은 파일로 나누는 과정입니다. 파일을 분할하는 데는 여러 가지 이유가 있습니다. 예를 들어 전체 문서가 아닌 특정 문서의 일부 페이지 만 필요합니다. 또는 개인 정보 보호를 위해 문서의 일부만 다른 사용자와 공유하려는 경우 분할 기능을 사용하면 문서의 필요한 부분 만 가져 와서 필요한 작업을 수행 할 수 있습니다(예:마크 업,저장 또는 보내기).
Aspose.Words 제목 또는 섹션으로 여러 문서로 하나의 문서를 분할 할 수있는 효율적인 방법을 제공합니다. 페이지 또는 페이지 범위별로 문서를 분할할 수도 있습니다. 이 기사에서는 두 가지 분할 옵션에 대해 설명합니다.
다음을 사용하여 문서를 더 작은 파일로 분할하려면 Aspose.Words,다음 단계를 수행해야 합니다:
- 지원되는 형식으로 문서를 로드합니다.
- 문서를 분할합니다.
- 출력 문서를 저장하십시오.
문서를 분할 한 후에는 필요한 페이지,텍스트 등으로 시작하는 모든 출력 문서를 열 수 있습니다.
온라인 시도
당신은 우리의 이 기능을 시도할 수 있습니다 무료 온라인 문서 분배기.
다른 기준을 사용하여 문서 분할
Aspose.Words 분할 할 수 있습니다 EPUB 또는 HTML 다양한 기준에 따라 장으로 문서. 이 과정에서 소스 문서의 스타일과 레이아웃은 출력 문서에 대해 보존됩니다.
다음을 사용하여 조건을 지정할 수 있습니다 DocumentSplitCriteria 열거 따라서 다음 기준 중 하나를 사용하여 문서를 장으로 나누거나 둘 이상의 기준을 함께 결합할 수 있습니다:
- 제목 단락,
- 섹션 휴식,
- 열 나누기,
- 페이지 나누기.
출력을 저장할 때 HTML, Aspose.Words 각 개별 장을 별도의 장으로 저장 HTML 파일 그 결과,문서는 여러 부분으로 분할됩니다 HTML 파일들 출력을 저장할 때 EPUB, Aspose.Words 하나의 결과를 저장 EPUB 에 관계없이 파일 DocumentSplitCriteria
당신이 사용한 가치. 그래서,사용 DocumentSplitCriteria 에 대한 EPUB 문서는 독자 응용 프로그램에서 콘텐츠의 모양에만 영향을 미칩니다.콘텐츠는 장으로 나뉘어지고 문서는 더 이상 연속으로 나타나지 않습니다.
이 섹션에서는 가능한 분할 기준 중 일부만 고려합니다.
섹션별로 문서 분할
Aspose.Words 또한 섹션 나누기를 사용하여 문서를 분할하고 다음에 저장할 수 있습니다 HTML. 이를 위해 다음을 사용하십시오 SectionBreak 그 DocumentSplitCriteria:
다음 코드 예제에서는 섹션 나누기를 사용하여 문서를 더 작은 부분으로 분할하는 방법을 보여 줍니다. DocumentSplitCriteria
재산):
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// Open a Word document | |
auto doc = System::MakeObject<Document>(inputDataDir + u"TestFile (Split).docx"); | |
for (int i = 0; i < doc->get_Sections()->get_Count(); i++) | |
{ | |
// Split a document into smaller parts, in this instance split by section | |
auto section = doc->get_Sections()->idx_get(i)->Clone(); | |
auto newDoc = System::MakeObject<Document>(); | |
newDoc->get_Sections()->Clear(); | |
auto newSection = System::StaticCast<Section>(newDoc->ImportNode(section, true)); | |
newDoc->get_Sections()->Add(newSection); | |
// Save each section as a separate document | |
newDoc->Save(outputDataDir + u"SplitDocumentBySectionsOut_" + System::Convert::ToString(i) + u".docx"); | |
} |
페이지로 분할
문서 페이지를 페이지,페이지 범위 또는 지정된 페이지 번호로 시작하여 분할할 수도 있습니다. 이 경우 ExtractPages 방법은 일을 할 수 있습니다.
이 섹션에서는 문서를 페이지별로 나누는 몇 가지 사용 사례에 대해 설명합니다. Document 클래스 및 ExtractPages 방법
페이지별로 문서 페이지 분할
Aspose.Words 여러 페이지 문서 페이지를 페이지별로 분할할 수 있습니다.
다음 코드 예제에서는 문서를 분할하고 각 페이지를 별도의 문서로 저장하는 방법을 보여 줍니다:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
auto doc = MakeObject<Document>(MyDir + u"Big document.docx"); | |
int pageCount = doc->get_PageCount(); | |
for (int page = 0; page < pageCount; page++) | |
{ | |
// Save each page as a separate document. | |
SharedPtr<Document> extractedPage = doc->ExtractPages(page, 1); | |
extractedPage->Save(ArtifactsDir + String::Format(u"SplitDocument.PageByPage_{0}.docx", page + 1)); | |
} |
페이지 범위로 문서 분할
Aspose.Words 여러 페이지 문서를 페이지 범위별로 분할할 수 있습니다. 하나의 파일을 다양한 페이지 범위의 여러 파일로 분할하거나 하나의 범위를 선택하고 소스 문서의이 부분 만 저장할 수 있습니다. 문서의 최대 및 최소 페이지 번호에 따라 페이지 범위를 선택할 수 있습니다.
다음 코드 예제에서는 특정 시작 및 끝 인덱스가 있는 페이지 범위별로 문서를 더 작은 부분으로 분할하는 방법을 보여 줍니다:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
auto doc = MakeObject<Document>(MyDir + u"Big document.docx"); | |
// Get part of the document. | |
SharedPtr<Document> extractedPages = doc->ExtractPages(3, 6); | |
extractedPages->Save(ArtifactsDir + u"SplitDocument.ByPageRange.docx"); |
분할 문서를 다른 문서와 병합
Aspose.Words 출력 분할 문서를 다른 문서와 병합하여 새 문서를 만들 수 있습니다. 이를 문서 병합이라고 할 수 있습니다.
다음 코드 예제에서는 분할된 문서를 다른 문서와 병합하는 방법을 보여 줍니다:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// Create a new resulting document | |
auto mergedDoc = System::MakeObject<Document>(); | |
auto mergedDocBuilder = System::MakeObject<DocumentBuilder>(mergedDoc); | |
// Merge document parts one by one | |
for (int idx = 1; idx <= 13; idx++) | |
{ | |
System::String documentPath = inputDataDir + u"SplitDocumentPageByPageOut_" + System::Convert::ToString(idx) + u".docx"; | |
auto sourceDoc = System::MakeObject<Document>(documentPath); | |
mergedDocBuilder->MoveToDocumentEnd(); | |
mergedDocBuilder->InsertDocument(sourceDoc, ImportFormatMode::KeepSourceFormatting); | |
} | |
mergedDoc->Save(outputDataDir + u"MergeDocuments_out.docx"); |