ASP.NET Core에서 DOCX 뷰어: Word 파일 미리보기
← Back to Blog••4 min read

ASP.NET Core에서 DOCX 뷰어: Word 파일 미리보기

ASP.NET Core 애플리케이션 내부에서 Word 문서를 미리 보려면, 서버에서 파일을 렌더링하고 브라우저에 페이지를 표시하는 DOCX 뷰어 SDK를 사용하십시오. Doconut은 서버에 Microsoft Word가 없어도 이 워크플로를 제공합니다. 사용자는 별도의 데스크톱 프로그램을 열지 않고도 계약서, 제안서 또는 보고서를 애플리케이션 안에서 읽을 수 있습니다.

아이보리 색 보고서가 표와 차트를 포함해 네이비 폴더에서 투명 유리 뷰 프레임으로 확장됩니다
아이보리 색 보고서가 표와 차트를 포함해 네이비 폴더에서 투명 유리 뷰 프레임으로 확장됩니다

실제 문서로 데모 파일을 교체했을 때 어떤 일이 일어나는지가 핵심 질문입니다. 계약서에는 사용자 정의 폰트, 반복 헤더, 넓은 표, 서명 페이지가 포함될 수 있습니다. 이 가이드는 .NET 8 애플리케이션용 문서 열기 단계와 결과를 평가하는 데 도움이 되는 체크 항목을 보여줍니다.

C#에서 DOCX 파일 열기

Doconut .NET 8 빠른 시작으로 서비스를 구성하고, ASP.NET 세션, 문서 미들웨어, 뷰어 리소스 및 브라우저 위젯을 설정하십시오. 아래 엔드포인트는 해당 구성 애플리케이션에 추가되는 예시이며, 완전한 독립 애플리케이션은 아닙니다.

App_Data/Sample.docx 파일을 애플리케이션의 콘텐츠 루트 아래 비민감 테스트 문서로 배치하십시오. app.Run() 이전에 다음 엔드포인트를 추가합니다:

using Doconut;

app.MapPost("/api/preview-word", async (
    Viewer viewer,
    IWebHostEnvironment environment) =>
{
    var filePath = Path.Combine(
        environment.ContentRootPath, "App_Data", "Sample.docx");

    if (!File.Exists(filePath))
        return Results.NotFound();

    var token = await viewer.OpenDocumentAsync(filePath);
    return Results.Ok(new { token });
});

Program.cs 상단의 다른 using 지시문과 함께 유지하십시오. 고정 경로를 사용하면 예제를 쉽게 재현할 수 있고, 브라우저에서 임의의 서버 경로를 받아들이는 위험을 방지합니다.

Viewer API 레퍼런스는 OpenDocumentAsync의 파일 경로 오버로드를 문서화합니다. 파일을 열고 문서 세션 토큰을 반환합니다. 빠른 시작에서 이미 objViewer를 초기화한 페이지에서 미리보기를 열려면 다음과 같이 사용합니다:

async function previewWordDocument() {
    const response = await fetch('/api/preview-word', {
        method: 'POST'
    });

    if (!response.ok) {
        throw new Error('The Word preview could not be opened.');
    }

    const { token } = await response.json();
    objViewer.View(token);
}

이 함수를 페이지의 미리보기 동작에서 호출하고, 발생하는 오류는 애플리케이션 기존 오류 UI를 통해 표시하십시오. 이 예시에서는 뷰어와 동일한 애플리케이션 오리진에서 요청을 유지합니다.

문서 접근을 애플리케이션 제어 하에 두기

고객 포털에서는 고정 샘플을 애플리케이션이 선택한 문서 레코드로 교체하십시오. 해당 레코드를 열기 전에 현재 사용자가 해당 레코드를 볼 권한이 있는지 확인해야 합니다. 브라우저에서 전달된 파일 이름 자체는 권한 판단 기준이 될 수 없습니다.

공개 웹 루트 밖에 보호된 원본을 저장하십시오. 예시의 App_Data 폴더는 저장 관례일 뿐, 접근 제어 기능이 아닙니다: 정적 파일 매핑을 통해 노출하지 마세요. 인증 및 문서 권한 관리는 호스트 애플리케이션에서 처리하십시오.

브라우저는 문서 세션에 대한 보기 토큰을 받습니다. 이 토큰을 영구적인 문서 URL이 아닌 인증 정보로 취급하십시오. 빠른 시작에서는 사용자가 리더를 떠나거나 다른 파일을 열 때 문서를 닫는 방법도 다룹니다.

대표 파일로 Word 레이아웃 테스트하기

빈 DOCX 파일은 고객이 실제로 사용하는 문서에 대해 거의 알려주지 못합니다. 민감 정보를 제거한 실제 템플릿을 기반으로 작은 평가 세트를 구축하십시오.

테스트 문서미리보기에서 확인할 항목
머리글·바닥글이 포함된 계약서반복되는 내용, 페이지 번호, 서명 페이지 위치
기업 폰트를 사용하는 제안서폰트 대체, 줄 바꿈, 머리글 너비
넓거나 중첩된 표가 있는 보고서열 너비, 행 분할, 페이지 경계에서 잘리는 텍스트
세로·가로 섹션이 혼합된 문서페이지 크기 및 섹션 전환
이미지가 많은 매뉴얼이미지 배치, 캡션, 확대 시 가독성

렌더링 결과를 승인된 원본 문서와 비교하십시오. 통합을 진행하기 전에 워크플로에 중요한 차이점이 무엇인지 판단하십시오.

Doconut은 WordConfig를 통해 Word 전용 렌더링 설정을 노출합니다. 포맷 구성 레퍼런스에는 추가 폰트 디렉터리를 위한 FontFolders, 용지 크기 설정, 표 맞춤을 위한 AutoFitAllTables가 포함됩니다. 이러한 옵션을 의도적으로 변경하십시오: 표를 가용 너비에 맞추면 레이아웃 자체가 변할 수 있습니다.

배포 호스트에서도 동일한 체크를 반복하십시오. 개발자 머신에 설치된 폰트를 사용하는 미리보기는 서버에 해당 폰트가 없을 경우 다르게 보일 수 있습니다. 조직에서 배포가 허용된 폰트를 사용하십시오.

보기, 편집, 변환을 별도로 선택하기

DOCX 미리보기는 읽기 단계만 해결합니다. 애플리케이션을 Word 저작 환경으로 바꾸지는 않습니다.

  • 읽기: 사례, 주문 또는 고객 레코드 내부에서 기존 문서를 검토해야 할 때 뷰어를 사용합니다.
  • 편집: 사용자가 단락을 수정하고 업데이트된 DOCX를 저장해야 한다면 별도의 편집 워크플로를 평가하십시오. 파일 미리보기가 Word 편집 지원을 의미하지는 않습니다.
  • 변환: 다른 형식의 다운로드 파일이 필요하다면 페이지 표시와는 별개로 내보내기 워크플로를 평가하십시오.

Word 뷰어 (.NET용) 개요 은 Doconut의 Word 제품군 뷰어 경로를 설명합니다. 제품 적합성을 확인한 뒤, 실제 파일을 사용해 애플리케이션에 중요한 렌더링 동작을 평가하십시오.

가장 어려운 문서부터 뷰어 평가하기

이미 지원 요청이 많이 들어오는 문서, 예를 들어 장기 계약서, 표가 많은 보고서, 특수 폰트가 포함된 템플릿부터 시작하십시오. 미리보기를 확인하고, 여러 페이지를 탐색한 뒤 새 세션에서 다시 열어 주변 애플리케이션이 올바른 문서 권한을 강제하는지 검증하십시오.

Doconut 다운로드하고 해당 파일로 .NET 8 샘플을 실행하십시오. 성공적인 평가는 사용자가 실제로 받는 문서를 레이아웃을 검토한 뒤 애플리케이션이 유지 관리 가능한 형태로 통합할 수 있음을 보여줍니다.

#DOCX Viewer#ASP.NET Core#Word Documents#C##Document Preview#DOCX 뷰어#Word 문서#문서 미리보기