Nejběžnější a nejrozšířenější formáty souborů pro zpracování textu jsou DOC, DOCX a ODT. Slavný Microsoft Word a OpenOffice Writer tyto formáty podporují a běžně tyto formáty používáme pro vytváření dokumentů. Proto jako vývojáři široce potřebujeme programově upravovat dokumenty Wordu v našich aplikacích. V tomto článku probereme, jak upravovat dokumenty aplikace Word v jazyce C# pomocí rozhraní .NET API pro úpravy dokumentů.
Následují témata stručně probíraná v tomto článku:
.NET API pro úpravy a automatizaci dokumentů aplikace Word
V tomto článku budu v příkladech C# používat GroupDocs.Editor for .NET, což je API pro úpravu dokumentů a umožňuje vývojářům načítat, upravovat a ukládat různé formáty dokumentů pomocí WYSIWYG HTML editorů. Kromě formátů dokumentů pro zpracování textu rozhraní API podporuje úpravy tabulek, prezentací, formátů HTML, XML, TXT, DSV, TSV a CSV.
Stáhněte si DLL nebo instalační program MSI z části ke stažení nebo nainstalujte API do své aplikace .NET prostřednictvím NuGet.
PM> Install-Package GroupDocs.Editor
Upravujte dokumenty Word v C#
Po nastavení rozhraní API můžete rychle přejít k úpravám dokumentu aplikace Word. Následující kroky vám umožní upravit dokument textového editoru.
- Načtěte dokument aplikace Word.
- Upravte podle možností.
- Uložte upravený dokument.
Načtěte dokument aplikace Word
Nejprve načtěte dokument zadáním cesty k dokumentu a hesla, pokud je dokument chráněn.
using (FileStream fs = File.OpenRead(inputFilePath))
{
Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "password-if-any";
}
Upravte dokument aplikace Word
Po načtení můžete naložený dokument upravit podle svých požadavků. Zde nahrazuji všechny výskyty slova „dokument“ „upraveným dokumentem“ v dokumentu aplikace Word pomocí níže uvedeného kódu C#.
using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
{
Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
editOptions.EnableLanguageInformation = true;
editOptions.EnablePagination = true;
using (EditableDocument beforeEdit = editor.Edit(editOptions))
{
string originalContent = beforeEdit.GetContent();
List<IHtmlResource> allResources = beforeEdit.AllResources;
string editedContent = originalContent.Replace("document", "edited document");
}
}
Uložte upravený dokument aplikace Word pomocí možností
A konečně, při ukládání upraveného obsahu dokumentu můžete dále nastavit různé možnosti. Tyto možnosti zahrnují; stránkování, nastavení hesla, národního prostředí, ochrany nebo nastavení optimalizace paměti. Výše uvedené možnosti nastavím v níže uvedeném kódu a upravený dokument uložím jako soubor DOCX chráněný heslem a pouze pro čtení.
using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
{
Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docx);
saveOptions.EnablePagination = true;
saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
saveOptions.OptimizeMemoryUsage = true;
saveOptions.Password = "password";
saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write\_password");
using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
{
editor.Save(afterEdit, outputStream, saveOptions);
}
}
Kompletní kód
Pro vaše pohodlí uvádím úplný příklad C#, který je vysvětlen výše, a upraví dokument aplikace Word a poté jej uloží ve formátu DOCX.
// Upravte dokument Word v C# pomocí rozhraní API pro úpravu dokumentů a automatizaci GroupDocs
using (FileStream fs = File.OpenRead("filepath/document.docx"))
{ // Load Document
Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "password-if-any";
// Upravit dokument
using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
{
Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
editOptions.EnableLanguageInformation = true;
editOptions.EnablePagination = true;
using (EditableDocument beforeEdit = editor.Edit(editOptions))
{
string originalContent = beforeEdit.GetContent();
List<IHtmlResource> allResources = beforeEdit.AllResources;
string editedContent = originalContent.Replace("document", "edited document");
// Uložit dokument
using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
{
WordProcessingFormats docxFormat = WordProcessingFormats.Docx;
Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(docxFormat);
saveOptions.EnablePagination = true;
saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
saveOptions.OptimizeMemoryUsage = true;
saveOptions.Password = "password";
saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write_password");
using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
{
editor.Save(afterEdit, outputStream, saveOptions);
}
}
}
}
}
Následuje výstupní dokument, ve kterém jsou všechny výskyty nahrazeny pomocí výše uvedeného kódu.
Závěr
Na závěr jsme diskutovali o úpravách dokumentů aplikace Word v jazyce C# pomocí rozhraní API pro úpravy dokumentů pro aplikace .NET. Pro vizuální úpravy vašich dokumentů můžete použít API s WYSIWYG editory. Poté můžete pokračovat ve vytváření vlastního editoru dokumentů. Podobně můžete také integrovat funkci úprav do vaší aplikace .NET.
Další podrobnosti, možnosti a příklady naleznete v úložišti documentation a GitHub. Pro další dotazy kontaktujte podporu na fóru.