TwoWayDocx 0.0.11
dotnet add package TwoWayDocx --version 0.0.11
NuGet\Install-Package TwoWayDocx -Version 0.0.11
<PackageReference Include="TwoWayDocx" Version="0.0.11" />
<PackageVersion Include="TwoWayDocx" Version="0.0.11" />
<PackageReference Include="TwoWayDocx" />
paket add TwoWayDocx --version 0.0.11
#r "nuget: TwoWayDocx, 0.0.11"
#:package TwoWayDocx@0.0.11
#addin nuget:?package=TwoWayDocx&version=0.0.11
#tool nuget:?package=TwoWayDocx&version=0.0.11
TwoWayDocx
TwoWayDocs makes document generation easy. It reads a .docx template file, replaces text, fills it and saves as another .docx file. It is a thin layer on top of Microsoft OpenXML library.
Usage Example
To Insert HTML inside .docx
// Prerequisite:
// In Microsoft Word, create inputfile.docx. In the file, create a bookmark
// ProjectDescription
// Close the file
TwoWayDocx.TWDocx r = new TwoWayDocx.TWDocx("inputfile.docx");
string prjDesc = "<p>This is a project that helps our planet</p>";
r.InsertHTMLAtBookmark("ProjectDescription", prjDesc, "prjDescHTML"); // Insert a HTML fragment
r.SaveAs("outputfile.docx");
To Insert .docx inside another .docx
// Prerequisite:
// In Microsoft Word, create inputfile.docx. In the file, create a bookmark ProjectJustificationBookmark. Close the file
// Create anotherDocumentToInsert.docx. This could contain anything.
TwoWayDocx.TWDocx r = new TwoWayDocx.TWDocx("inputfile.docx");
r.InsertDocxAtBookmark("ProjectJustificationBookmark", "anotherDocumentToInsert.docx"); // Insert another docx file
r.SaveAs("outputfile.docx");
To replace a field in .docx
// Prerequisite: In Microsoft Word, create inputfile.docx.
// In the file, insert a MergeField called gefid. A field can be insert by going to Ribbon > Insert > Quick Parts > Field > MergeField (This navigation menu may vary depending on the Word version you use).
// Save and close the file
TwoWayDocx.TWDocx r = new TwoWayDocx.TWDocx("inputfile.docx");
r.ReplaceMergeField("gefid", "1234");
r.SaveAs("outputfile.docx");
To find a Table element after a paragraph style ("Heading1") and text ("A. Indicative Focal/Non-Focal Area Element")
// Prerequisite:
TwoWayDocx.TWDocx r = new TwoWayDocx.TWDocx("inputfile.docx");
var tbl = docx.FindElementAfterParagraphStyle<Table>("Heading1", "A. Indicative Focal/Non-Focal Area Element");
// do further processing e.g. insert more rows
To output to .pdf
Aspose is one of the best docx-to-pdf renderers in the market. Up until Microsoft OpenXML came out, it was arguable the only sane, complete set of APIs to generate Word files from backend.
Aspose.Words.Document doc = new Aspose.Words.Document("outputfile.docx");
doc.Save("outputfile.pdf");
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 is compatible. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.1
- DocumentFormat.OpenXml (>= 2.15.0)
- HtmlAgilityPack (>= 1.11.42)
- System.Text.RegularExpressions (>= 4.3.1)
-
.NETStandard 2.0
- DocumentFormat.OpenXml (>= 2.15.0)
- HtmlAgilityPack (>= 1.11.42)
- System.Text.RegularExpressions (>= 4.3.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Fixed a bug. InsertDocxAtBookmark("MyBookmarkA", docxA) correctly inserts a document right after the bookmark. It is possible to call InsertDocxAtBookmark() multiple times in a row (unique altChunk IDs are generated if you don't give one).