Unisci documenti Word ASP.NET

L’unione di più documenti MS Word potrebbe essere utile in vari scenari. Ad esempio, può essere utilizzato per conservare un tipo simile di documenti in un unico file, combinare più documenti prima della condivisione e così via. Sono disponibili vari strumenti online che ti consentono di unire documenti MS Word abbastanza facilmente, tuttavia, cosa succede se si desidera aggiungere questa funzionalità all’interno della propria applicazione? Per raggiungere questo obiettivo, ti mostrerò come unire documenti MS Word (DOC/DOCX) utilizzando C# all’interno delle tue applicazioni Web ASP.NET. Questa applicazione per la fusione di documenti Word avrà le seguenti caratteristiche:

  • Unisci documenti MS Word in un unico documento
  • Scarica documenti Word uniti come formato DOCX
  • Scarica documenti Word uniti in formato PDF

API .NET per unire documenti MS Word in ASP.NET

Aspose.Words for .NET è un’API di elaborazione testi ricca di funzionalità che ti consente di elaborare facilmente documenti MS Word. Consente inoltre di unire più documenti Word in un unico documento all’interno di ASP.NET o di qualsiasi applicazione .NET/.NET Core. Aspose.Words per .NET può essere installato utilizzando NuGet e scaricato come file DLL.

PM> install-package Aspose.Words

Unisci documenti MS Word in ASP.NET

Di seguito sono riportati i passaggi per creare un’applicazione ASP.NET che consenta di unire due o più documenti Word (DOC/DOCX) senza utilizzare MS Office/Word.

  • Creare un’applicazione Web ASP.NET Core in Visual Studio.
Crea un'applicazione Web ASP.NET Core
  • Scegli l’applicazione Web (Model-View-Controller) dall’elenco dei modelli.
Seleziona Applicazione MVC
  • Installare Aspose.Words per .NET da Gestione pacchetti NuGet o Console di gestione pacchetti.
API .NET per il confronto di parole
  • Inserisci lo script seguente nel file 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>
    // Trascina e rilascia le opzioni del plug-in
    $("#input-id").fileinput({ 'mainClass': "input-group-lg", 'showBrowse': true, 'showUpload': false, 'previewFileType': 'any', 'showClose': false, 'maxFileCount': 5, });
</script>
  • Inserisci il codice seguente nella tua classe HomeController.cs.
public FileResult UploadFiles(List<IFormFile> files, string outputFormat)
{
	if (files.Count() <= 1)
	{
		// visualizzare qualche messaggio
		return null;
	}
	string fileName = "merged-document.docx";
	string path = "wwwroot/uploads";
	List<Document> documents = new List<Document>();
	// caricare files 
	foreach (IFormFile file in files)
	{
		string filePath = Path.Combine(path, file.FileName);
		// Salva file
		using (var stream = new FileStream(filePath, FileMode.Create))
		{
			file.CopyTo(stream);
		}
		// Aggiungi tutti i documenti all'elenco
		documents.Add(new Document(filePath));
	}
	// Carica il primo documento di Word
	Document doc1 = documents[0];
	for (int i = 1; i < documents.Count(); i++)
	{
    // Unisci documenti Word
		doc1.AppendDocument(documents[i], ImportFormatMode.KeepSourceFormatting);
	}           

	var outputStream = new MemoryStream(); 
	if (outputFormat == "DOCX")
	{
		doc1.Save(outputStream, SaveFormat.Docx);
		outputStream.Position = 0;
		// Restituisce il file Word generato
		return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Rtf, fileName);
	}
	else
	{
		fileName = "merged-document.pdf";
		doc1.Save(outputStream, SaveFormat.Pdf);
		outputStream.Position = 0;
		// Restituisci il file PDF generato
		return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Pdf, fileName);
	}
}
  • Includere i seguenti file JS e CSS del plug-in drag and drop all’interno del tag head del file 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-->
  • Crea l’applicazione ed eseguila nel tuo browser.
Fusione di documenti Word ASP.NET

Scarica

Scarica il codice sorgente dell’applicazione ASP.NET Word Document Merger da qui.

Prova Aspose.Words per .NET gratuitamente

Ottieni la tua licenza temporanea (una licenza completa per 30 giorni) per provare Aspose.Words per .NET gratuitamente.

Articolo correlato