Repository navigation
Integrations it
English · 简体中文 · 繁體中文 · Español · العربية · Français · Português (Brasil) · Deutsch · हिन्दी · 日本語 · 한국어 · Русский · Bahasa Indonesia · Türkçe · Italiano · Tiếng Việt
docxi non ha plugin né integrazioni incorporate. È Ruby puro che restituisce uno StringIO, quindi funziona ovunque tu possa inviare o salvare una stringa. Questa pagina mostra i modi più comuni per collegarlo. Lo schema con il controller Rails è quello mostrato nel README, e la suite di test gira con Rails dalla 5.2 alla 8.1 caricato.
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 imposta Content-Disposition: attachment, quindi il browser scarica il file. Con Bundler, docxi viene caricato automaticamente dal Gemfile.
I documenti grandi, o quelli costruiti da query lente, è meglio generarli in un 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
endIl job scrive nel percorso che scegli. Dove va il file dopo, per esempio in uno storage o in un'email, lo decide la tua applicazione.
Qualsiasi applicazione Rack può restituire direttamente i byte:
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
endMontala con run ReportApp.new in config.ru. Lo stesso approccio funziona con Sinatra, Hanami o qualsiasi framework in grado di inviare una stringa come corpo della risposta.
docxi non ha bisogno né di un server né di software da ufficio, quindi basta un normale script Ruby:
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