Web / Desktop · Dirilis

DdDesignReport

Library reporting dengan designer drag-and-drop, sehingga klien mengubah sendiri layout faktur, slip gaji, atau rapor mereka.

Halaman utama DdDesignReport dengan contoh faktur hasil cetak library

Nilai jual

Yang membuatnya menonjol.

01

Klien mengubah layout sendiri

Designer dipasang di aplikasi Anda. Admin klien menggeser logo, menambah kolom, atau mengganti kop sendiri, tanpa tiket ke developer.

02

Satu template, banyak format

Template yang sama dicetak ke PDF, HTML, XLSX, XLS, CSV, atau langsung ke printer struk thermal 58 dan 80 mm.

03

Dari backend apa pun

Library Go, paket npm, Maven Central untuk Java dan Kotlin, serta server HTTP dan image Docker untuk PHP, Python, dan .NET.

04

Dokumen Indonesia sudah ada

Kuitansi dengan terbilang, kertas F4, nama bulan Indonesia, slip gaji, surat jalan, dan rapor sekolah tersedia sebagai template.

Masalahnya

Di software house, setiap klien ingin layout faktur, slip gaji, atau rapor yang sedikit berbeda, dan setiap perubahan kecil seperti menggeser logo menjadi tiket untuk developer. Tool reporting yang ada umumnya terikat pada satu bahasa, seperti JasperReports di Java, atau tidak punya designer yang bisa dipasang di aplikasi web dan dipakai orang yang bukan programmer.

Untuk siapa

Software house dan tim developer yang membangun aplikasi bisnis dengan dokumen cetak, serta admin dan staf klien yang perlu mengatur layout dokumen tanpa menulis kode.

Fitur utama

  1. Designer drag-and-drop yang bisa dipasang

    Komponen web tanpa dependensi (`ddreport-designer` di npm) dengan pita alat seperti Word, mode mudah untuk pengguna awam, tombol yang bisa disembunyikan, dan teks antarmuka yang bisa diganti. Juga tersedia sebagai aplikasi standalone.

  2. Satu core render untuk semua bahasa

    Core Go mencetak template JSON ke PDF, HTML, XLSX, XLS, CSV, ESC/POS, dan teks. Wrapper Node.js dan Java/Kotlin memakai binary yang sama, dan bahasa lain memakai server HTTP atau image Docker.

  3. Elemen laporan lengkap

    Teks, tabel, gambar, chart, QR dan Code 128, sub-report, crosstab, grouping hingga enam level, serta ekspresi seperti `sum()`, `if()`, dan `terbilang()`.

  4. Ekspor dan impor JasperReports

    Template bisa diekspor ke `.jrxml` dan diimpor kembali, termasuk chart, list, dan crosstab, sehingga tim yang sudah memakai Jasper bisa pindah bertahap.

  5. Siap untuk produksi

    PDF/A-2b, tanda tangan digital PDF, batas jumlah baris, health check, antrean render, mode strict untuk field yang salah ketik, dan log satu baris per permintaan.

  6. Ramah asisten AI

    llms.txt, JSON Schema, dan server MCP dengan alat untuk membaca panduan, memeriksa, dan mencetak template.

Pendekatan yang sama bisa diadaptasi untuk

  • Faktur, kuitansi, dan surat jalan di aplikasi bisnis
  • Slip gaji dan laporan HR yang layoutnya berbeda per klien
  • Rapor sekolah dan sertifikat
  • Struk kasir ke printer thermal USB, Bluetooth, atau jaringan
  • Migrasi dari JasperReports
Diskusikan kebutuhan serupa

Arsitektur

DdDesignReport terdiri dari tiga bagian:

  • Format template. Satu file JSON yang dijelaskan oleh JSON Schema: ukuran kertas, band (header, detail, grup, summary, footer), dan elemen dengan placeholder seperti {{customer.name}} atau {{sum(total)}}.
  • Core render di Go. Satu implementasi yang membaca template dan data, lalu menulis PDF, HTML, XLSX, XLS, CSV, JRXML, ESC/POS, atau teks. Wrapper Node.js dan Java menjalankan binary yang sama sebagai proses yang tetap hidup, sehingga hasil cetak identik di semua bahasa.
  • Designer di browser. Komponen JavaScript tanpa dependensi yang menyunting format template yang sama. Aplikasi standalone menyajikan designer ini bersama penyimpanan template dan riwayat 20 versi terakhir.

Karena hanya ada satu core, menambah format atau memperbaiki bug cukup dilakukan sekali untuk semua bahasa.

Detail implementasi

Halaman digambar begitu siap. PDF dan HTML ditulis halaman per halaman, bukan setelah seluruh laporan disusun. Penggunaan memori puncak untuk 100.000 baris turun sekitar separuh.

Printer struk. Format escpos menempatkan teks di kolom karakter sesuai kotaknya di desain, mencetak QR dan Code 128 lewat printer, gambar sebagai titik, lalu memotong kertas. Contoh aplikasinya mencetak ke printer jaringan lewat port 9100 dan ke printer USB atau Bluetooth langsung dari browser lewat Web Serial.

Field yang salah ketik. Placeholder yang tidak ada di data tercetak kosong. Pratinjau di designer menyebut nama field-nya, dan DDREPORT_STRICT=1 membuat render ditolak, sehingga kesalahan ketik tidak lolos ke dokumen klien.

Excel sungguhan. Teks tebal, format angka, warna sel, border, dan sel gabungan ikut ke XLSX. Chart menjadi chart Excel asli dengan datanya, sehingga masih bisa diubah di Excel.

Keamanan server. Tanpa token, server render hanya menjawab localhost dan alamat IP, sehingga situs lain tidak bisa memakainya lewat DNS rebinding. Dengan DDREPORT_TOKEN, server bisa dibuka lewat nama domain.

Yang bisa diverifikasi

  • Dirilis sebagai open source berlisensi MIT, dengan paket di npm (`ddreport`, `ddreport-designer`), Maven Central, image Docker di GHCR, dan binary untuk Linux, macOS, serta Windows di GitHub Releases.
  • 13 template siap pakai, dari faktur hingga laporan laba rugi, semuanya diuji di JasperReports 6.21. Keluaran PDF/A lolos validasi veraPDF.
  • 100.000 baris tercetak ke PDF dalam sekitar 12 detik di laptop tahun 2017.
  • Designer diuji otomatis di Chromium, Firefox, dan WebKit.

Tangkapan layar

Butuh yang serupa?

Ceritakan apa yang mirip dengan DdDesignReport dan apa yang berbeda di kasus Anda. Anda akan mendapat balasan langsung tentang cakupan dan platform.

Ajukan Proyek