# C#를 사용하여 Word에서 빈 페이지 제거하는 방법

# C#를 사용하여 Word에서 빈 페이지 제거하는 방법

이 빠른 튜토리얼은 C#를 사용하여 Word 문서 (DOCX, DOC, 등)에서 빈 페이지를 제거하는 방법을 설명합니다.이 과정은 Word 파일을 업로드하고 개별 페이지를 분석하고 빈 페이지를 식별하고 마침내 빈 페이지없이 새로운 문서를 만드는 것을 포함합니다.

Word 문서에서 흰색 페이지를 제거하는 혜택

  • 청소 문서:- 읽기 능력과 전문성을 향상시킵니다.

  • 파일 크기 감소:- 불필요한 페이지를 제거함으로써 효율적인 저장.

  • 자동화 능력:- 큰 문서를 자동으로 청소하는 데 이상적입니다.

원제 : Environment Preparation

  • Visual Studio 또는 다른 .NET IDE.
  • Aspose.Words는 NuGet Package Manager를 통해 추가되었습니다.

단계별 가이드는 C#를 사용하여 Word에서 흰색 페이지를 제거합니다.

단계 1 : 환경 설정

NuGet 패키지 관리자를 통해 Aspose.Words 라이브러리를 설치합니다.

Install-Package Aspose.Words

단계 2 : 단어 문서를 업로드

원본 Word 파일을 문서 클래스 개체를 사용하여 업로드합니다.

Document originalDoc = new Document("WordFileWithBlankPages.docx");

단계 3: 각 페이지를 별도로 추출

각 페이지를 통과하고 각 페이지를 분석을 위해 별도의 문서로 추출합니다.

int totalPages = originalDoc.PageCount;

for (int i = 0; i < totalPages; i++)
{
    Document singlePageDoc = originalDoc.ExtractPages(i, 1);
    // Analyze singlePageDoc in next steps
}

단계 4 : 단일 페이지 문서 분석

단일 페이지 문서에 텍스트 또는 형식이 있는지 확인합니다.

int shapesCounter = 0;
string pageText = "";

foreach (Section docSection in singlePageDoc.Sections)
{
    pageText += docSection.Body.ToString(SaveFormat.Text);
    shapesCounter += docSection.Body.GetChildNodes(NodeType.Shape, true).Count;
}

5단계: 빈 페이지 목록 유지

콘텐츠를 포함하는 페이지 번호를 추적하십시오.

ArrayList blankPages = new ArrayList();
blankPages.Add(-1);

if (string.IsNullOrEmpty(pageText.Trim()) && shapesCounter == 0)
    blankPages.Add(i); // i is page index in loop

단계 6 : 새 문서에 비 빈 페이지를 추가

새 문서를 만들고 추적 목록을 사용하여 빈 페이지만 추가합니다.

Document finalDoc = (Document)originalDoc.Clone(false);
finalDoc.RemoveAllChildren();

blankPages.Add(totalPages);

for (int i = 1; i < blankPages.Count; i++)
{
    int index = (int)blankPages[i - 1] + 1;
    int count = (int)blankPages[i] - index;

    if (count > 0)
        finalDoc.AppendDocument(originalDoc.ExtractPages(index, count), ImportFormatMode.KeepSourceFormatting);
}

단계 7 : 수정 된 문서를 저장

흰색 페이지를 제거한 새 문서를 저장합니다.

finalDoc.Save(@"cleaned.docx");

C#를 사용하여 Word에서 흰색 페이지를 삭제하는 완전한 코드 예제

아래는 위의 단계를 보여주는 완전한 실행 가능한 코드 예입니다 :

Document originalDoc = new Document("WordFileWithBlankPages.docx");

ArrayList blankPages = new ArrayList();
blankPages.Add(-1);

int totalPages = originalDoc.PageCount;

for (int i = 0; i < totalPages; i++)
{
    Document singlePageDoc = originalDoc.ExtractPages(i, 1);
    int shapesCounter = 0;
    string pageText = "";

    foreach (Section docSection in singlePageDoc.Sections)
    {
        pageText += docSection.Body.ToString(SaveFormat.Text);
        shapesCounter += docSection.Body.GetChildNodes(NodeType.Shape, true).Count;
    }

    if (string.IsNullOrEmpty(pageText.Trim()) && shapesCounter == 0)
        blankPages.Add(i);
}

blankPages.Add(totalPages);

Document finalDoc = (Document)originalDoc.Clone(false);
finalDoc.RemoveAllChildren();

for (int i = 1; i < blankPages.Count; i++)
{
    int index = (int)blankPages[i - 1] + 1;
    int count = (int)blankPages[i] - index;

    if (count > 0)
        finalDoc.AppendDocument(originalDoc.ExtractPages(index, count), ImportFormatMode.KeepSourceFormatting);
}

finalDoc.Save(@"NonEmptyPages.docx");
System.Console.WriteLine("Blank pages removed successfully.");

결론

이 기사는 C#를 사용하여 Word 파일에서 빈 페이지를 제거하는 방법을 설명합니다.이 단계를 따르면 빈 페이지를 프로그래밍적으로 발견하고 제거하여 더 깨끗한 문서로 이어질 수 있습니다.

 한국어