Scalanie wielu dokumentów MS Word może być przydatne w różnych scenariuszach. Na przykład może być używany do przechowywania dokumentów podobnego typu w jednym pliku, łączenia wielu dokumentów przed udostępnieniem i tak dalej. Dostępne są różne narzędzia online, które pozwalają dość łatwo łączyć dokumenty MS Word, jednak co zrobić, jeśli chcesz dodać tę funkcję we własnej aplikacji? Aby to osiągnąć, pokażę ci, jak scalać dokumenty MS Word (DOC/DOCX) przy użyciu języka C# w aplikacjach internetowych ASP.NET. Ta aplikacja do łączenia dokumentów programu Word będzie miała następujące funkcje:
- Połącz dokumenty MS Word w jeden dokument
- Pobierz połączone dokumenty programu Word w formacie DOCX
- Pobierz połączone dokumenty programu Word w formacie PDF
.NET API do scalania dokumentów MS Word w ASP.NET
Aspose.Words for .NET to bogaty w funkcje interfejs API do przetwarzania tekstu, który pozwala z łatwością przetwarzać dokumenty MS Word. Umożliwia także łączenie wielu dokumentów programu Word w jeden dokument w ASP.NET lub dowolnej aplikacji .NET/.NET Core. Aspose.Words for .NET można zainstalować za pomocą NuGet, a także pobrać jako plik DLL.
PM> install-package Aspose.Words
Połącz dokumenty MS Word w ASP.NET
Poniżej przedstawiono kroki tworzenia aplikacji ASP.NET, która umożliwi połączenie dwóch lub więcej dokumentów programu Word (DOC/DOCX) bez użycia pakietu MS Office/Word.
- Utwórz aplikację internetową ASP.NET Core w programie Visual Studio.
- Wybierz aplikację internetową (Model-View-Controller) z listy szablonów.
- Zainstaluj Aspose.Words dla platformy .NET z Menedżera pakietów NuGet lub konsoli Menedżera pakietów.
- Wstaw następujący skrypt do pliku 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>
// Przeciągnij i upuść opcje wtyczki
$("#input-id").fileinput({ 'mainClass': "input-group-lg", 'showBrowse': true, 'showUpload': false, 'previewFileType': 'any', 'showClose': false, 'maxFileCount': 5, });
</script>
- Wstaw następujący kod w swojej klasie HomeController.cs.
public FileResult UploadFiles(List<IFormFile> files, string outputFormat)
{
if (files.Count() <= 1)
{
// wyświetlić jakiś komunikat
return null;
}
string fileName = "merged-document.docx";
string path = "wwwroot/uploads";
List<Document> documents = new List<Document>();
// przesłać pliki
foreach (IFormFile file in files)
{
string filePath = Path.Combine(path, file.FileName);
// Zapisz pliki
using (var stream = new FileStream(filePath, FileMode.Create))
{
file.CopyTo(stream);
}
// Dodaj wszystkie dokumenty do listy
documents.Add(new Document(filePath));
}
// Załaduj pierwszy dokument programu Word
Document doc1 = documents[0];
for (int i = 1; i < documents.Count(); i++)
{
// Połącz dokumenty Worda
doc1.AppendDocument(documents[i], ImportFormatMode.KeepSourceFormatting);
}
var outputStream = new MemoryStream();
if (outputFormat == "DOCX")
{
doc1.Save(outputStream, SaveFormat.Docx);
outputStream.Position = 0;
// Zwróć wygenerowany plik Word
return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Rtf, fileName);
}
else
{
fileName = "merged-document.pdf";
doc1.Save(outputStream, SaveFormat.Pdf);
outputStream.Position = 0;
// Zwróć wygenerowany plik PDF
return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Pdf, fileName);
}
}
- Uwzględnij następujące pliki JS i CSS wtyczki przeciągnij i upuść w tagu head pliku layout.cshtml.
<!--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-->
- Zbuduj aplikację i uruchom ją w przeglądarce.
Ściągnij
Pobierz kod źródłowy aplikacji ASP.NET Word Document Merger z tutaj.
Wypróbuj Aspose.Words dla platformy .NET za darmo
Zdobądź swoją tymczasową licencję (pełną licencję na 30 dni), aby wypróbować Aspose.Words for .NET za darmo.