docx vs mammoth vs html-docx-js
Word Belgesi Oluşturma Kütüphaneleri
docxmammothhtml-docx-jsBenzer Paketler:

Word Belgesi Oluşturma Kütüphaneleri

Bu kütüphaneler, JavaScript ile dinamik olarak Word belgeleri oluşturmak ve dönüştürmek için kullanılır. Her biri farklı özellikler ve kullanım senaryoları sunarak geliştiricilere esneklik sağlar. 'docx', Word belgeleri oluşturmak için kapsamlı bir API sunarken, 'html-docx-js' HTML içeriğini Word belgelerine dönüştürmek için kullanılır. 'mammoth' ise HTML'yi Word belgelerine dönüştürmek için basit ve etkili bir yol sağlar, özellikle stil ve biçimlendirmeye odaklanır.

npm İndirme Trendi

3 Yıl

GitHub Stars Sıralaması

İstatistik Detayı

Paket
İndirmeler
Stars
Boyut
Issues
Yayın Tarihi
Lisans
docx13,785,2385,97921.7 MB25il y a 4 joursMIT
mammoth5,103,6926,3351.67 MB60il y a un moisBSD-2-Clause
html-docx-js34,5241,154-83il y a 10 ansMIT

Özellik Karşılaştırması: docx vs mammoth vs html-docx-js

Belgelerin Oluşturulması

  • docx:

    'docx' kütüphanesi, JavaScript ile yeni Word belgeleri oluşturmak için kapsamlı bir API sunar. Kullanıcılar, metin, tablolar, resimler ve diğer öğeler ekleyerek belgeleri dinamik olarak oluşturabilirler. Bu kütüphane, belge yapısını ve içeriğini detaylı bir şekilde kontrol etmenizi sağlar.

  • mammoth:

    'mammoth', HTML içeriğini Word belgelerine dönüştürmek için kullanılan bir kütüphanedir. Özellikle, HTML'deki stil ve biçimlendirmeleri koruyarak dönüşüm yapar. Bu, kullanıcıların mevcut içeriklerini Word formatına taşırken görsel tutarlılığı sağlamalarına yardımcı olur.

  • html-docx-js:

    'html-docx-js' kütüphanesi, mevcut HTML içeriğinizi alır ve bunu Word formatında bir belgeye dönüştürür. Bu, hızlı bir şekilde HTML içeriğini Word belgesine dönüştürmek isteyen geliştiriciler için idealdir. Ancak, yeni belgeler oluşturmak için uygun değildir.

Kullanım Kolaylığı

  • docx:

    'docx' kütüphanesi, kapsamlı bir API sunmasına rağmen, başlangıçta öğrenme eğrisi biraz daha dik olabilir. Ancak, belgelerinizi özelleştirmek için sunduğu olanaklar oldukça geniştir.

  • mammoth:

    'mammoth', kullanıcı dostu bir API sunar ve dönüşüm işlemleri için basit bir yapı sağlar. HTML'den Word'e geçiş yapmak isteyenler için öğrenmesi ve kullanması kolaydır.

  • html-docx-js:

    'html-docx-js', basit bir API ile hızlı bir şekilde HTML'den Word'e dönüşüm yapmanızı sağlar. Kullanımı oldukça kolaydır ve hızlı sonuçlar almak isteyenler için idealdir.

Performans

  • docx:

    'docx' kütüphanesi, büyük ve karmaşık belgeler oluştururken performans açısından iyi sonuçlar verir. Ancak, çok fazla veri ile çalışırken dikkatli olunmalıdır, çünkü belge boyutu ve karmaşıklığı performansı etkileyebilir.

  • mammoth:

    'mammoth', dönüşüm sürecinde hızlı sonuçlar verir ve stil koruma konusunda etkilidir. Ancak, çok karmaşık HTML yapıları ile çalışırken performans düşebilir.

  • html-docx-js:

    'html-docx-js', hızlı dönüşüm işlemleri sunar. Ancak, çok büyük HTML belgeleri ile çalışırken performans sorunları yaşanabilir. Genel olarak, küçük ve orta boyutlu belgeler için idealdir.

Desteklenen Özellikler

  • docx:

    'docx' kütüphanesi, metin biçimlendirme, tablolar, resimler ve daha fazlası gibi birçok özelliği destekler. Bu, kullanıcıların belgelerini zenginleştirmelerine olanak tanır.

  • mammoth:

    'mammoth', HTML'deki stil ve biçimlendirmeleri koruyarak dönüşüm yapar. Ancak, bazı özel HTML özellikleri desteklenmeyebilir.

  • html-docx-js:

    'html-docx-js', temel HTML öğelerini destekler, ancak daha karmaşık özellikler için sınırlı bir destek sunar. Bu nedenle, basit belgeler için uygundur.

Topluluk ve Destek

  • docx:

    'docx' kütüphanesi, geniş bir kullanıcı topluluğuna sahiptir ve birçok kaynak ve örnek proje bulunmaktadır. Bu, geliştiricilerin sorunlarını çözmelerine yardımcı olur.

  • mammoth:

    'mammoth', aktif bir topluluğa sahiptir ve belgeleri ile kullanıcıların ihtiyaçlarını karşılamak için yeterli kaynak sunar.

  • html-docx-js:

    'html-docx-js', daha küçük bir topluluğa sahip olabilir, ancak yine de bazı kaynaklar ve belgeler mevcuttur. Destek bulmak daha zor olabilir.

Nasıl Seçilir: docx vs mammoth vs html-docx-js

  • docx:

    Eğer tamamen yeni Word belgeleri oluşturmak istiyorsanız ve detaylı bir API ile çalışmak istiyorsanız, 'docx' kütüphanesini tercih edin. Özellikle karmaşık belgeler oluşturmanız gerekiyorsa bu kütüphane güçlü bir seçenek olacaktır.

  • mammoth:

    Eğer HTML'den Word belgelerine dönüşüm yaparken stil ve biçimlendirmeye önem veriyorsanız, 'mammoth' kütüphanesini kullanın. Bu kütüphane, HTML içeriğinizi Word belgelerine dönüştürürken, stil ve biçimlendirmeyi korumaya odaklanır.

  • html-docx-js:

    HTML içeriğinizi doğrudan Word belgelerine dönüştürmek istiyorsanız, 'html-docx-js' kütüphanesini seçin. Bu kütüphane, HTML'yi Word formatına dönüştürmek için basit bir yol sunar ve hızlı bir çözüm arayanlar için idealdir.

docx için README

clippy the assistant

Easily generate and modify .docx files with JS/TS. Works for Node and on the Browser.


NPM version Downloads per month GitHub Action Workflow Status Known Vulnerabilities PRs Welcome codecov Docx.js Editor

drawing

Demo

Browser

Here are examples of docx being used with basic HTML/JS in a browser environment:

Here are examples of docx working in Angular:

Here are examples of docx working in React:

Here is an example of docx working in Vue.js:

Node

Press endpoint on the RunKit website:

RunKit Instructions

More here

How to use & Documentation

Please refer to the documentation at https://docx.js.org/ for details on how to use this library, examples and much more!

Shapes, watermarks and charts

Shapes, groups of shapes and diagrams with connectors come with docx, from docx/shapes, watermarks from docx/watermarks, and native Word charts from docx/charts. They are left out of docx itself, so documents that don't use them don't carry their code:

import { Document, Header, Paragraph } from "docx";
import { ChartRun } from "docx/charts";
import { ShapeRun } from "docx/shapes";
import { TextWatermark } from "docx/watermarks";

const doc = new Document({
    sections: [
        {
            headers: { default: new Header({ children: [new Paragraph({ children: [new TextWatermark({ text: "DRAFT" })] })] }) },
            children: [
                new Paragraph({ children: [new ShapeRun({ type: "ellipse", transformation: { width: 100, height: 60 } })] }),
                new Paragraph({
                    children: [new ChartRun({ type: "column", categories: ["Q1", "Q2"], series: [{ name: "Sales", values: [10, 20] }] })],
                }),
            ],
        },
    ],
});

In a page without a bundler, load dist/shapes.umd.cjs, dist/watermarks.umd.cjs or dist/charts.umd.cjs after dist/index.umd.cjs. They add the docxShapes, docxWatermarks and docxCharts globals. See the shapes, watermarks and charts documentation.

HTML

HTML, such as what people write in a rich-text editor, becomes a document's paragraphs, lists, tables, images, links, equations and footnotes with docx/html, written in the document's own styles:

import { Document } from "docx";
import { htmlToContent } from "docx/html";

const doc = new Document({
    sections: [{ children: htmlToContent("<h1>Report</h1><p>Sales were <b>up 12%</b>.</p><ul><li>EMEA</li><li>APAC</li></ul>") }],
});

In a page without a bundler, load dist/html.umd.cjs after dist/index.umd.cjs and dist/math.umd.cjs. It adds the docxHtml global. See the HTML documentation.

Macros

VBA macros, written from their code, make a document a macro-enabled document (.docm), with docx/macros:

import { Document, Paragraph } from "docx";
import { createMacros } from "docx/macros";

const doc = new Document({
    macros: createMacros({
        modules: [{ name: "Greetings", code: 'Sub SayHello()\n    MsgBox "Hello"\nEnd Sub' }],
    }),
    sections: [{ children: [new Paragraph("Run SayHello from View > Macros")] }],
});

In a page without a bundler, load dist/macros.umd.cjs after dist/index.umd.cjs. It adds the docxMacros global. See the macros documentation.

Embedded Files

Workbooks, documents, presentations and any other file, such as a sound, a video or a PDF, are embedded in a document as OLE objects, which open from it, with docx/embedded-files:

import * as fs from "fs";
import { Document, Paragraph } from "docx";
import { EmbeddedFileRun } from "docx/embedded-files";

const doc = new Document({
    sections: [
        {
            children: [
                new Paragraph({
                    children: [
                        new EmbeddedFileRun({
                            fileName: "budget.xlsx",
                            data: fs.readFileSync("./budget.xlsx"),
                            preview: { type: "png", data: fs.readFileSync("./budget.png") },
                            transformation: { width: 240, height: 120 },
                        }),
                    ],
                }),
            ],
        },
    ],
});

In a page without a bundler, load dist/embedded-files.umd.cjs after dist/index.umd.cjs. It adds the docxEmbeddedFiles global. See the embedded files documentation.

Citations and Bibliography

Sources, citations of them in the text and a bibliography, in one of Word's styles of citation, such as APA, MLA or Chicago, written as Word writes them, with docx/bibliography:

import { Document, Paragraph, TextRun } from "docx";
import { Bibliography, Citation, CitationStyle, SourceType, createBibliography } from "docx/bibliography";

const doc = new Document({
    bibliography: createBibliography({
        style: CitationStyle.APA,
        sources: [
            {
                tag: "Bak10",
                type: SourceType.BOOK,
                authors: [{ lastName: "Baker", firstName: "Anna" }],
                title: "The Art of Pizza",
                year: 2010,
                city: "Naples",
                publisher: "Oven Press",
            },
        ],
    }),
    sections: [
        {
            children: [
                new Paragraph({ children: [new TextRun("Pizza has been baked in Naples for centuries "), new Citation("Bak10")] }),
                new Bibliography({ title: "References" }),
            ],
        },
    ],
});

In a page without a bundler, load dist/bibliography.umd.cjs after dist/index.umd.cjs. It adds the docxBibliography global. See the citations and bibliography documentation.

Playground

Experience docx in action through Docx.js Editor, an interactive playground where you can code and preview the results in real-time.

Examples

Check the demo folder for examples.

Contributing

Read the contribution guidelines here.

Used by

drawing drawing drawing drawing drawing drawing drawing drawing drawing drawing drawing drawing drawing drawing drawing

...and many more!


patreon browserstack

Made with 💖