Repository navigation
Integrations id
English · 简体中文 · 繁體中文 · Español · العربية · Français · Português (Brasil) · Deutsch · हिन्दी · 日本語 · 한국어 · Русский · Bahasa Indonesia · Türkçe · Italiano · Tiếng Việt
docxi tidak punya plugin dan tidak punya integrasi bawaan. docxi adalah Ruby biasa yang mengembalikan StringIO, sehingga bisa dipakai di mana pun Anda dapat mengirim atau menyimpan string. Halaman ini menunjukkan cara-cara umum untuk menghubungkannya. Pola controller Rails di sini sama dengan yang ada di README, dan rangkaian pengujiannya dijalankan dengan Rails 5.2 sampai 8.1 dalam keadaan termuat.
class ReportsController < ApplicationController
def show
word = Docxi::Document.new
word.document.p { |p| p.text "Report for #{Date.today}" }
send_data word.render.string,
filename: "report.docx",
type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
end
endsend_data mengatur Content-Disposition: attachment, sehingga browser mengunduh file tersebut. Dengan Bundler, docxi dimuat otomatis dari Gemfile.
Dokumen besar, atau dokumen yang dibangun dari kueri yang lambat, lebih baik dibuat di sebuah job:
class MonthlyReportJob < ApplicationJob
queue_as :default
def perform(path)
word = Docxi::Document.new
word.document.p { |p| p.text "Monthly report", bold: true, size: 16 }
File.binwrite(path, word.render.string)
end
endJob tersebut menulis ke path yang Anda pilih. Ke mana file itu pergi selanjutnya, misalnya ke penyimpanan atau email, diatur oleh aplikasi Anda.
Aplikasi Rack apa pun bisa langsung mengembalikan byte-nya:
require "docxi"
class ReportApp
def call(env)
word = Docxi::Document.new
word.document.p { |p| p.text "Generated by a Rack app" }
headers = {
"content-type" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"content-disposition" => 'attachment; filename="report.docx"'
}
[200, headers, [word.render.string]]
end
endPasang dengan run ReportApp.new di config.ru. Pendekatan yang sama berlaku untuk Sinatra, Hanami, atau framework apa pun yang bisa mengirim string sebagai badan respons.
docxi tidak memerlukan server maupun perangkat lunak perkantoran, jadi skrip Ruby biasa sudah cukup:
require "docxi"
word = Docxi::Document.new
word.document.p { |p| p.text "Nightly export" }
File.binwrite(ARGV.fetch(0, "export.docx"), word.render.string)docxi wiki · README · Installation · Troubleshooting · Report an issue · MIT License
Start
Build documents
Help
Project
Links
Languages