`
aa8945163
  • 浏览: 275263 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一个电信系统模块分析

阅读更多
业务需求:
    一个电信系统的业务需要将其他异构计费系统导出的pdf中数据导入到本java开发的计费统计系统,
pdf格式:
日期  2010-10-11               用户  王家辉

长途费 50                      短信 50


                                          1页
最后在本系统创建一张表,可以按时间查询,并要统计各种费用.

下面说一下自己的思路:

先解析pdf,根据x,y坐标解析
这个按时间统计,首先要在时间上分表分区
然后再时间这个字段做一个索引

按顺序读取,放入一个map中,最后放到一个容器中,传到后台,后台在将这个容器迭代,用key找value


关于PDF和JAVA的资料,国内实在是太少了;我想可能是由于国内的PDF开发人员不多的缘故吧。 所以,我想把自己研究出来的一点东西放到csdn上。 希望会对其他的开发者有所帮助。。。

先说说坐标系的概念 ,这个大家应该都不是很陌生了。也就是我们要做屏幕上或者其他的输出设备上做出图形,当然需要知道一系列点的坐标。 不过一切点的坐标都是通过坐标系来标识的, 如(100,100)



java的坐标(0,0)是从屏幕的左上角开始的,而PDF的(0,0)是从屏幕的左下角开始的。所以两个坐标系的Y坐标系正好是颠倒的。

所以这时假设我们有个坐标 (100,100) 那么在两个坐标系中的X坐标是相同的 不过Y坐标可能就会差的很远了。 下面看看怎么做能让java的坐标变成PDF的坐标?

Graphics2D g2 = (Graphics2D) g;
g2.translate(400, 400);//为了更方便 把0,0移到400,400
g2.drawLine(0, 0, 500, 0);
g2.drawLine(0, 0, 0, 300);

此时这条线的y方向是向下的(因为java的y轴正方向是向下为证的)

AffineTransform pdftransformation = new AffineTransform(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
AffineTransform pdftransformation = new AffineTransform(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
AffineTransform javatransformation = new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f);
pdftransformation.concatenate(javatransformation);
g2.transform(pdftransformation);

上面的几句话就很难解释了 。

用代数式写可以写成 x' =x ,y'=-y

g2.drawLine(100, 100, 500, 100);
g2.drawLine(100, 100, 100, 300);

在画线的时候 这次Y轴就向上了 因为此时每向draw方法里传值 其Y坐标都会变成-y 然后再以java坐标系绘出 。 也就是说所有的点Y坐标都需要变化一次(这里是成负数)再以java坐标系画出。

直接的理解就是 在这时 ,传正值给draw方法 y如果是正数 就向上了。

有关

AffineTransform pdftransformation = new AffineTransform(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
AffineTransform javatransformation = new AffineTransform(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f);
pdftransformation.concatenate(javatransformation);

分享到:
评论

相关推荐

    电信业务分析系统

    Java Struts是Java Web开发中的一个经典框架,它结合了MVC(Model-View-Controller)设计模式,实现了业务逻辑与用户界面的解耦,提升了软件的可维护性和可扩展性。 在Java Struts框架中,Model代表业务逻辑,通常...

    电信计费系统中的数据采集模块

    在电信行业中,计费系统是核心组成部分之一,它负责收集、处理和分析各种与通信服务相关的数据,确保准确地向客户收取费用。其中,数据采集模块是整个计费系统的基础,它负责从多个来源捕获原始数据。在这个项目中,...

    基于hadoop的电信客服数据分析+文档

    在这个基于Hadoop的电信客服数据分析项目中,我们重点探讨如何利用Hadoop生态系统来解析和分析电信行业的客户通话记录,从而获取有价值的洞察。 首先,Hadoop是Apache基金会开发的一个分布式计算框架,其核心包括...

    电信计费系统

    在系统架构部分,作者详细描绘了后台数据服务、前台营运管理和前台用户服务三个模块的相互关系。后台数据服务主要负责数据的收集、处理和存储,为前台的运营决策提供支持;前台营运管理则关注业务流程的控制和优化,...

    基于python的大数据反电信诈骗管理系统设计与实现.docx

    在当前社会,电信诈骗已成为一个严重的社会问题,因此,设计这样一个系统具有重大的现实意义。 首先,我们需要了解课题的背景。随着信息技术的发展,电信诈骗手段不断升级,欺诈方式多样化,给公众的财产安全带来了...

    电信运营支撑系统需求分析帮助文档

    文件组合中提及的“培训机构的一个实战项目”,意味着这些文档不仅仅是理论分析,还结合了实际操作的经验,这将为读者提供更贴近实际的参考,帮助解决实际问题。 通过上述内容,我们可以看出NETCTOSS系统需求分析...

    电信设备-一种模块式控制器自动配置模块信息的系统.zip

    本文将详述“电信设备-一种模块式控制器自动配置模块信息的系统”这一主题,这是针对这种趋势的一个创新解决方案。该系统的核心在于其模块化设计和自动配置能力,旨在提高网络管理效率,减少人为错误,并确保服务的...

    一个模拟的电信计费系统

    本项目是一个模拟的电信计费系统,采用了Oracle数据库作为其核心数据存储解决方案。Oracle数据库是全球广泛使用的大型企业级数据库管理系统,以其高可用性、性能和安全性著称。下面我们将深入探讨电信计费系统的关键...

    电信增值服务计费管理系统-毕业论文_Java

    《电信增值服务计费管理系统》是一篇关于Java技术在电信服务计费管理领域的应用的毕业论文。...通过这样的系统,不仅可以提高电信服务提供商的运营效率,也能提升用户体验,是信息技术在电信领域的一个成功实践。

    一个JSP电信业务计费系统.rar

    本文将详细解析一个基于JSP的电信业务计费系统,该系统专为电信行业的出租业务设计,是J2EE平台上的一个重要应用实例。 首先,JSP(JavaServer Pages)是一种动态网页技术,它允许开发人员在HTML代码中嵌入Java代码...

    C++电信计费系统

    对于初学者,这是一个极好的学习实践平台,对于专业人士,则提供了优化和扩展系统的可能。 总结,C++电信计费系统结合了C++的强大功能和电信业务的复杂需求,通过精心设计和实现,确保了系统的高效稳定运行。深入...

    达内的电信系统

    "达内的电信系统"项目可能是一个教学或实践案例,旨在帮助学员理解并掌握如何构建和操作这样的系统。这个项目采用了Java作为主要编程语言,结合了三个关键的技术框架来实现其功能。下面我们将深入探讨这些知识点。 ...

    达内电信计费系统

    "达内电信计费系统"是一个专为电信运营商设计的计费解决方案,旨在高效、准确地处理电信服务的收费和账单管理。该系统可能涵盖了从用户账户管理、套餐设置、流量计费、账单生成到支付处理等多个关键功能模块。在描述...

    201407达内电信计费系统

    1. **系统架构**:一个完整的电信计费系统通常包含多个模块,如业务处理、数据采集、计费引擎、账单生成、客户服务和报表分析等。这些模块相互协作,确保系统能够高效稳定地运行。 2. **计费引擎**:计费引擎是系统...

    一个SSH框架开发的完整的电信计费系统【源码+需求分析】

    【SSH框架】是Java开发中的一个经典组合,由Spring、Struts和Hibernate三个开源框架集成。这个名为"nectoss电信计费系统"的项目显然基于...对于学习Java Web开发或者电信行业计费系统的人员来说,这是一个宝贵的资源。

    大唐电信管理系统 很好的SSH2项目哦

    【大唐电信管理系统】是一个基于SSH2(Struts2、Spring、Hibernate)框架的综合性电信管理解决方案。SSH2是Java开发中的一个流行组合,用于构建高效、可维护的企业级应用程序。Struts2作为MVC(Model-View-...

Global site tag (gtag.js) - Google Analytics