ODF-REPORT 技术文档
本文档将为您提供关于如何安装、使用以及项目API的详细信息,帮助您更好地理解和使用ODF-REPORT项目。
1. 安装指南
要安装ODF-REPORT,您需要在Gemfile中添加以下代码:
gem 'odf-report'
然后执行以下命令来安装:
bundle install
2. 项目使用说明
ODF-REPORT是一个用于生成.odt文件的Gem,它通过在一个预先创建的.odt文件中替换字符串、图像、表格和节来工作。
使用步骤
第一步:模板
首先,您需要一个.odt
文件作为模板。模板是正常的.odt文件,带有用于替换的[PLACEHOLDERS]
。
有以下四种替换类型:
- 字段
- 表格
- 图像
- 节
字段
字段是一个大写句子,被括号包围。它将被您提供的数据替换。
例如:
report = ODFReport::Report.new("Users/john/my_template.odt") do |r|
r.add_field :user_name, @user.name
r.add_field :address, "My new address"
end
文件中所有出现的[USER_NAME]
将被替换为@user.name
的值,所有[ADDRESS]
将被替换为My new address
。
表格
要使用表格占位符,您需要在文档中创建一个表格,并为其命名。在OpenOffice中,只需右击创建的表格,选择表格属性...
,然后输入一个名称。
如果设置header: true
,第一行将被视为标题,并保持不变。其余行将用作模板。
如果有多个模板行,它们将被循环使用。这对于制作斑马条纹表格很有用。
在每个单元格中插入[FIELD_NAME]
,然后让魔法发生。
例如:
report = ODFReport::Report.new("Users/john/my_template.odt") do |r|
r.add_field "USER_NAME", @user.nome
r.add_field "ADDRESS", @user.address
r.add_table("TABLE_1", @list_of_items, :header=>true) do |t|
t.add_column(:item_id, :id)
t.add_column(:description) { |item| "==> #{item.description}" }
end
end
节
有时,您需要重复文档的一个大块内容,其结构比表格复杂得多。您可以在模板中使用节来处理这种情况。在OpenOffice中创建节很简单,只需选择插入
菜单,然后节...
,然后为它命名。
节与表格非常相似,您可以传递一个集合,以使该节为集合中的每个成员重复。但是,节可以包含任何内容,甚至包括表格和嵌套节,只要您提供适当的数据结构。
例如:
@invoices = Invoice.find(:all)
report = ODFReport::Report.new("reports/invoice.odt") do |r|
r.add_field(:title, "INVOICES REPORT")
r.add_field(:date, Date.today)
r.add_section("SC_INVOICE", @invoices) do |s|
s.add_field(:number) { |invoice| invoice.number.to_s.rjust(5, '0') }
s.add_field(:name, :customer_name)
s.add_field(:address, :customer_address)
s.add_table("TB_ITEMS", :items, header: true) do |t|
t.add_column(:id)
t.add_column(:product) {|item| item.product.name }
t.add_column(:value, :product_value)
end
s.add_field(:total) do |invoice|
if invoice.status == 'CLOSED'
invoice.total
else
invoice.items.sum('product_value')}
end
end
s.add_section("SUB_NOTES", :notes) do |s1|
s1.add_field(:note_title) { |n| n.title }
s1.add_table ...
end
end
end
图像
您必须在.odt
模板中放置一个模拟图像并为其命名。该名称将用于将模拟图像替换为实际图像。您还可以为模拟图像分配任何属性,一旦图像被替换,这些属性将被保留。
图像替换的示例:
report = ODFReport::Report.new("my_template.odt") do |r|
r.add_image :graphic1, "/path/to/the/image.jpg"
r.add_table("TABLE_WITH_IMAGES", @items) do |t|
t.add_column(:id)
t.add_column(:product, :product_name)
t.add_image('PRODUCT_IMAGE') { |item| item.image_path }
end
end
3. 项目API使用文档
ODF-Report提供的API主要用于生成文档。以下是API的基本使用方法:
ODFReport::Report.new(template_path)
:创建一个新的Report对象。add_field(field_name, value)
:添加一个字段替换。add_table(table_name, collection, options)
:添加一个表格替换。add_image(image_name, image_path)
:添加一个图像替换。add_section(section_name, collection)
:添加一个节替换。
更多详细信息,请参考项目GitHub页面上的API文档。
4. 项目安装方式
ODF-REPORT项目的安装方式已在安装指南中详细说明。您需要在Gemfile中添加依赖,然后运行bundle install
命令。
通过上述文档,您应该能够成功地安装、使用ODF-REPORT项目,并通过API生成所需的文档。
- Ggpt-oss-20bgpt-oss-20b —— 适用于低延迟和本地或特定用途的场景(210 亿参数,其中 36 亿活跃参数)Jinja00
- Ggpt-oss-120bgpt-oss-120b是OpenAI开源的高性能大模型,专为复杂推理任务和智能代理场景设计。这款拥有1170亿参数的混合专家模型采用原生MXFP4量化技术,可单卡部署在H100 GPU上运行。它支持可调节的推理强度(低/中/高),完整思维链追溯,并内置函数调用、网页浏览等智能体能力。模型遵循Apache 2.0许可,允许自由商用和微调,特别适合需要生产级推理能力的开发者。通过Transformers、vLLM等主流框架即可快速调用,还能在消费级硬件通过Ollama运行,为AI应用开发提供强大而灵活的基础设施。【此简介由AI生成】Jinja00
- QQwen3-Coder-480B-A35B-InstructQwen3-Coder-480B-A35B-Instruct是当前最强大的开源代码模型之一,专为智能编程与工具调用设计。它拥有4800亿参数,支持256K长上下文,并可扩展至1M,特别擅长处理复杂代码库任务。模型在智能编码、浏览器操作等任务上表现卓越,性能媲美Claude Sonnet。支持多种平台工具调用,内置优化的函数调用格式,能高效完成代码生成与逻辑推理。推荐搭配温度0.7、top_p 0.8等参数使用,单次输出最高支持65536个token。无论是快速排序算法实现,还是数学工具链集成,都能流畅执行,为开发者提供接近人类水平的编程辅助体验。【此简介由AI生成】Python00
- GGLM-4.5-AirGLM-4.5 系列模型是专为智能体设计的基础模型。GLM-4.5拥有 3550 亿总参数量,其中 320 亿活跃参数;GLM-4.5-Air采用更紧凑的设计,拥有 1060 亿总参数量,其中 120 亿活跃参数。GLM-4.5模型统一了推理、编码和智能体能力,以满足智能体应用的复杂需求Jinja00
hello-uniapp
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、鸿蒙Next、Web(响应式)、以及各种小程序(微信/支付宝/百度/抖音/飞书/QQ/快手/钉钉/淘宝/京东/小红书)、快应用、鸿蒙元服务等多个平台Vue00GitCode百大开源项目
GitCode百大计划旨在表彰GitCode平台上积极推动项目社区化,拥有广泛影响力的G-Star项目,入选项目不仅代表了GitCode开源生态的蓬勃发展,也反映了当下开源行业的发展趋势。05GOT-OCR-2.0-hf
阶跃星辰StepFun推出的GOT-OCR-2.0-hf是一款强大的多语言OCR开源模型,支持从普通文档到复杂场景的文字识别。它能精准处理表格、图表、数学公式、几何图形甚至乐谱等特殊内容,输出结果可通过第三方工具渲染成多种格式。模型支持1024×1024高分辨率输入,具备多页批量处理、动态分块识别和交互式区域选择等创新功能,用户可通过坐标或颜色指定识别区域。基于Apache 2.0协议开源,提供Hugging Face演示和完整代码,适用于学术研究到工业应用的广泛场景,为OCR领域带来突破性解决方案。00openHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!C0254Yi-Coder
Yi Coder 编程模型,小而强大的编程助手HTML013RuoYi-Cloud-Plus
微服务管理系统 重写RuoYi-Cloud所有功能 整合 SpringCloudAlibaba、Dubbo3.0、Sa-Token、Mybatis-Plus、MQ、Warm-Flow工作流、ES、Docker 全方位升级 定期同步Java014
热门内容推荐
最新内容推荐
项目优选









