打印

使用printf定制化打印对象

瘦欲@ 提交于 2020-03-01 15:01:27
TBOX内置的libc库,有一份自有的printf实现,在支持了所有标准格式化参数的同时,也对其进行了一些扩展,来支持自定义的格式化参数打印, 例如: // 输出定点数:3.14 tb_printf("%{fixed}\n", tb_float_to_fixed(3.14)); // 输出ipv4地址:127.0.0.1 tb_ipv4_t addr; tb_ipv4_set(&addr, "127.0.0.1"); tb_printf("%{ipv4}\n", &addr); 以上两种都是TBOX内置的对象参数打印,你只需要吧你需要打印的对象名和对象描述函数注册进来,就行了。 其中 %{object_name} 就是自定义参数化对象打印的格式,这个是对%s、%f等标准格式的扩展,使你可以像ios中的 NSLog(@"%@", object) 那样方便的打印自定义对象的内容。 例如:如果你要支持自定义打印如下内容: typedef struct _rect_t { tb_long_t x; tb_long_t y; tb_size_t w; tb_size_t h; }rect_t; tb_printf("%{rect}\n", &rect); 那么你只需要提供对应的rect对象的描述函数,并对其进行注册,就行了: // rect对象的描述函数,将描述内容格式化到cstr中

如何将网格式报表打印成其它样式

為{幸葍}努か 提交于 2019-12-09 18:18:39
我们经常要打印报表,也遇到打印上的麻烦,比如有时候我们不想严格按照报表上面的样式,根据实际应用可能有别的样式更适合,这时候怎么办呢,其实报表软件是可以设置,今天我就带大家来了解一下! 1. 问题描述 对于填报网格式报表,每行前面有个复选框,希望实现点击页面中设置的打印按钮希望将选中的复选框中的值按照一定的样式打印,如分栏、页面固定显示几行等格式。 2. 实现思路 可以定义另外一个有固定格式的模板,此模板的数据是根据填报网格式报表中选中的值进行过滤,而在填报网格式报表中则需要在按钮的点击事件中定义js,js首先要获取选中行的数据,然后调用FineReport(实例中所用报表开发工具为FineReport)内置的打印方法,将选中的值以参数的方式加入到打印方法的URL中传到被打印的模板中。 3. 示例 预览模板效果如下所示 选中一些数据让其按照以如下图所示的样式进行打印,下面我们来看下具体的实现步骤。 3.1 新建需要打印格式模板 · 定义数据集 由于此模板要根据选中的值进行打印,因此要在此模板中定义参数,在此我们将参数定义成数据集参数。 新建工作簿,增加数据集ds1,SQL语句为:SELECT * FROM 订单 where 订单ID in (${ID})。 · 表样设计 将表样设计成要打印的效果,在此我们将模板设置成如下样式: 将B2单元格的左父格设置成无

关于Web报表FineReport打印的开发应用案例

只愿长相守 提交于 2019-12-07 18:38:33
报表打印是报表使用和开发过程中经常碰到的问题,这里汇总了关于Web报表开发打印功能的一些典型应用案例,以应用最广泛的FineReport为例。 案例一:java直接调用报表打印 当java后台定义定时打印的功能,同时又需要直接调用报表的打印的时候,由于打印机型号和纸张不同,需要指定打印机,从而打印是否成功并设置返回值。那么怎么样可以实现这一过程呢? 实现过程 1、定义报表运行环境 // 定义报表运行环境,才能执行报表 String envPath = "D:\\FineReport\\develop\\code\\build\\package\\WebReport\\WEB-INF"; FRContext.setCurrentEnv(new LocalEnv(envPath)); 2、定义执行模板工作簿 TemplateWorkBook workbook = TemplateWorkBookIO.readTemplateWorkBook(FRContext.getCurrentEnv(), "GettingStarted.cpt"); 3、 获取报表参数并设置值 // 参数传值 Parameter[] parameters = workbook.getParameters(); HashMap<String, String> paraMap = new HashMap<String