여러 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 웹 애플리케이션을 만듭니다.
- 템플릿 목록에서 웹 애플리케이션(Model-View-Controller)을 선택합니다.
- NuGet 패키지 관리자 또는 패키지 관리자 콘솔에서 .NET용 Aspose.Words를 설치합니다.
- 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 Word 문서 병합 응용 프로그램의 소스 코드를 다운로드합니다.
무료로 .NET용 Aspose.Words 사용해 보기
임시 라이선스(30일 동안의 전체 라이선스)를 받아 .NET용 Aspose.Words를 무료로 사용해 보십시오.