![Word 문서 병합 ASP.NET](images/Merge-Word-Documents-ASP.NET_.jpg#center)
여러 MS Word 문서를 병합하는 것은 다양한 시나리오에서 유용할 수 있습니다. 예를 들어 유사한 유형의 문서를 단일 파일로 유지하거나 공유하기 전에 여러 문서를 결합하는 등의 작업에 사용할 수 있습니다. MS Word 문서를 아주 쉽게 병합할 수 있는 다양한 온라인 도구를 사용할 수 있습니다. 그러나 이 기능을 자신의 응용 프로그램에 추가하려면 어떻게 해야 합니까? 이를 달성하기 위해 ASP.NET 웹 응용 프로그램 내에서 C#을 사용하여 MS Word(DOC/DOCX) 문서를 병합하는 방법을 보여 드리겠습니다. 이 Word 문서 병합 응용 프로그램에는 다음과 같은 기능이 있습니다.
- MS Word 문서를 단일 문서로 병합
- 병합된 Word 문서를 DOCX 형식으로 다운로드
- 병합된 Word 문서를 PDF 형식으로 다운로드
ASP.NET에서 MS Word 문서를 병합하는 .NET API
Aspose.Words for .NET는 MS Word 문서를 쉽게 처리할 수 있는 기능이 풍부한 워드 프로세싱 API입니다. 또한 여러 Word 문서를 ASP.NET 또는 .NET/.NET Core 응용 프로그램 내의 단일 문서로 병합할 수 있습니다. Aspose.Words for .NET은 NuGet을 사용하여 설치하고 DLL 파일로 다운로드할 수 있습니다.
PM> install-package Aspose.Words
ASP.NET에서 MS Word 문서 병합
다음은 MS Office/Word를 사용하지 않고 둘 이상의 Word(DOC/DOCX) 문서를 병합할 수 있는 ASP.NET 응용 프로그램을 만드는 단계입니다.
- Visual Studio에서 ASP.NET Core 웹 애플리케이션을 만듭니다.
![ASP.NET Core 웹 애플리케이션 만들기](images/ASP.NET-Core-MVC-Web-Application.jpg#center)
- 템플릿 목록에서 웹 애플리케이션(Model-View-Controller)을 선택합니다.
![MVC 애플리케이션 선택](images/MVC-Project-Template.jpg#center)
- NuGet 패키지 관리자 또는 패키지 관리자 콘솔에서 .NET용 Aspose.Words를 설치합니다.
![Word 비교를 위한 .NET API](images/Aspose.Words-NuGet.jpg#center)
- index.cshtml 파일에 다음 스크립트를 삽입합니다.
@{
ViewData["Title"] = "Merge MS Word Documents in ASP.NET";
}
<div class="row">
<div class="col-md-12" align="center">
<h2 class="text-info">Merge Two or More Word DOC/DOCX Documents</h2>
<p class="text-info">Merge MS Word documents and get the results in DOCX or PDF format.</p>
</div>
</div>
<br />
<form asp-controller="Home" asp-action="UploadFiles" method="post" class="form-inline dropzone" enctype="multipart/form-data">
<div class="row">
<div class="col-md-12" align="center">
<div>
<input type="file" id="input-id" name="files" multiple accept=".doc, .docx" class="form-control file" data-preview-file-type="text" />
</div>
</div>
</div>
<hr />
<div class="row">
<div class="col-md-12" align="center">
<div class="input-group-lg">
<strong>Save As</strong>
<select name="outputFormat" class="form-control">
<option value="DOCX">DOCX</option>
<option value="PDF">PDF</option>
</select>
<button type="submit" class="form-control btn btn-success">Merge and Download</button>
</div>
</div>
</div>
</form>
<script>
// 드래그 앤 드롭 플러그인 옵션
$("#input-id").fileinput({ 'mainClass': "input-group-lg", 'showBrowse': true, 'showUpload': false, 'previewFileType': 'any', 'showClose': false, 'maxFileCount': 5, });
</script>
- HomeController.cs 클래스에 다음 코드를 삽입합니다.
public FileResult UploadFiles(List<IFormFile> files, string outputFormat)
{
if (files.Count() <= 1)
{
// 어떤 메시지를 표시하다
return null;
}
string fileName = "merged-document.docx";
string path = "wwwroot/uploads";
List<Document> documents = new List<Document>();
// 파일 올리기
foreach (IFormFile file in files)
{
string filePath = Path.Combine(path, file.FileName);
// 파일 저장
using (var stream = new FileStream(filePath, FileMode.Create))
{
file.CopyTo(stream);
}
// 목록에 모든 문서 추가
documents.Add(new Document(filePath));
}
// 첫 번째 Word 문서 로드
Document doc1 = documents[0];
for (int i = 1; i < documents.Count(); i++)
{
// Word 문서 병합
doc1.AppendDocument(documents[i], ImportFormatMode.KeepSourceFormatting);
}
var outputStream = new MemoryStream();
if (outputFormat == "DOCX")
{
doc1.Save(outputStream, SaveFormat.Docx);
outputStream.Position = 0;
// 생성된 Word 파일 반환
return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Rtf, fileName);
}
else
{
fileName = "merged-document.pdf";
doc1.Save(outputStream, SaveFormat.Pdf);
outputStream.Position = 0;
// 생성된 PDF 파일 반환
return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Pdf, fileName);
}
}
- \layout.cshtml 파일의 head 태그 안에 드래그 앤 드롭 플러그인의 다음 JS 및 CSS 파일을 포함합니다.
<!--drag and drop file plugin-->
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.9/css/fileinput.min.css" media="all" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery-3.3.1.min.js" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.9/js/fileinput.min.js"></script>
<!--end of drag and drop-->
- 애플리케이션을 빌드하고 브라우저에서 실행합니다.
![ASP.NET 워드 문서 병합기](images/Merge-Word-DOCX-in-ASP.NET_.jpg#center)
다운로드
여기에서 ASP.NET Word 문서 병합 응용 프로그램의 소스 코드를 다운로드합니다.
무료로 .NET용 Aspose.Words 사용해 보기
임시 라이선스(30일 동안의 전체 라이선스)를 받아 .NET용 Aspose.Words를 무료로 사용해 보십시오.