dr
docx-rs
cargo install docx-rs
dr

docx-rs

📝 A .docx file writer with Rust/WebAssembly.

by bokuweb

0.4.1 (see all)License:MIT
cargo install docx-rs
Readme

A .docx file writer with Rust/WebAssembly.


GitHub Actions Status docx-rs at crates.io

Installation

Rust

[dependencies]
docx-rs = "0.2"

Browser/Node.js

$ yarn add docx-wasm

Example

Rust

use docx_rs::*;


pub fn hello() -> Result<(), DocxError> {
let path = std::path::Path::new("./hello.docx");
let file = std::fs::File::create(&path).unwrap();
Docx::new()
.add_paragraph(Paragraph::new().add_run(Run::new().add_text("Hello")))
.build()
.pack(file)?;
Ok(())
}

pub fn hello() -> Result<(), DocxError> { let path = std::path::Path::new("./hello.docx"); let file = std::fs::File::create(&path).unwrap(); Docx::new() .add_paragraph(Paragraph::new().add_run(Run::new().add_text("Hello"))) .build() .pack(file)?; Ok(()) }

Browser

import { saveAs } from "file-saver";


// // Note that a dynamic import statement here is required due to webpack/webpack#6615,
import("docx-wasm").then((w) => {
const { buffer } = new w.Docx()
.addParagraph(
new w.Paragraph().addRun(new w.Run().addText("Hello world!!"))
)
.build();
saveAs(new Blob([buffer]), "hello.docx");
});

// // Note that a dynamic import statement here is required due to webpack/webpack#6615, import("docx-wasm").then((w) => { const { buffer } = new w.Docx() .addParagraph( new w.Paragraph().addRun(new w.Run().addText("Hello world!!")) ) .build(); saveAs(new Blob([buffer]), "hello.docx"); });

Node.js

const w = require("docx-wasm");
const { writeFileSync } = require("fs");


const { buffer } = new w.Docx()
.addParagraph(new w.Paragraph().addRun(new w.Run().addText("Hello world!!")))
.build();




writeFileSync("hello.docx", buffer);

writeFileSync("hello.docx", buffer);

More examples

Development

Requirements

Examples

You can run example with following code. Please see examples directory.

$ cargo run --example [EXAMPLE_NAME]

For Example if you want to run hello example. Please run following command.

$ cargo run --example hello

So you can see output file in output directory.

Testing

Rust

Please run following command.

make lint && make test

If snapshot testing is failed, fix code or update snapshot files. (See https://insta.rs/).

$ cargo-insta review

Then re run test.

$ make test

Wasm

Please run following command.

$ cd docx-wasm && yarn install && yarn test

If snapshot testing is failed, fix code or update snapshot files. (See https://jestjs.io/docs/snapshot-testing).

$ yarn test -- --updateSnapshot

Features

  • Paragraph
    • Alignment
    • Indent
    • Numbering
  • Run
    • Bold
    • Size
    • Font
    • Color
    • Highlight
    • Underline
    • vanish
    • Italic
    • TextBorder
  • Break
  • Header
  • Footer
  • Comment
  • Image
  • Style
  • Table
  • HIstory
  • Table of contents
  • Section
  • Textbox

GitHub Stars

140

LAST COMMIT

1mo ago

MAINTAINERS

1

CONTRIBUTORS

9

OPEN ISSUES

3

OPEN PRs

0
VersionTagPublished
0.4.1
1mo ago
0.4.0
3mos ago
0.3.4
3mos ago
0.3.3
3mos ago
No alternatives found
No tutorials found
Add a tutorial