Scal dokumenty programu Word ASP.NET

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.
Utwórz aplikację internetową ASP.NET Core
  • Wybierz aplikację internetową (Model-View-Controller) z listy szablonów.
Wybierz aplikację MVC
  • Zainstaluj Aspose.Words dla platformy .NET z Menedżera pakietów NuGet lub konsoli Menedżera pakietów.
Interfejs API platformy .NET do porównywania programów Word
  • 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.
Połączenie dokumentów ASP.NET Word

Ś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.

Powiązany artykuł