分享
 
 
 

使用JDOM处理XML数据之PDF篇(二)

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

使用JDOM处理XML数据之PDF篇(二)

XML文件的代码和

http://www.csdn.net/Develop/read_article.asp?id=20733 相同

格式转换的XSLT-FO文件的代码如下:

watchlist.pdf.xsl

<?xml version="1.0"?>

<xsl:stylesheet

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

version="1.0"

xmlns:fo="http://www.w3.org/1999/XSL/Format"

>

<xsl:template match ="/">

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

<!-- defines page layout -->

<fo:layout-master-set>

<fo:simple-page-master master-name="simple"

page-height="29.7cm"

page-width="21cm"

margin-top="1.5cm"

margin-bottom="2cm"

margin-left="2.5cm"

margin-right="2.5cm">

<fo:region-body margin-top="3cm"/>

<fo:region-before extent="1.5cm"/>

<fo:region-after extent="1.5cm"/>

</fo:simple-page-master>

</fo:layout-master-set>

<!-- defines the content -->

<fo:page-sequence master-name="simple">

<fo:static-content flow-name="xsl-region-before">

<fo:block text-align="end"

font-size="10pt"

font-family="serif"

line-height="14pt" >

Watch List - Customer #<xsl:value-of select="./quote-list/customer/@id"/>

</fo:block>

</fo:static-content>

<fo:flow flow-name="xsl-region-body">

<fo:block font-size="16pt"

font-family="sans-serif"

font-weight="bold"

line-height="26pt"

space-after.optimum="12pt"

background-color="blue"

color="white"

text-align="center">

Your Stock Watch List

</fo:block>

<fo:block font-size="12pt"

font-family="sans-serif"

font-weight="bold"

line-height="18pt"

space-after.optimum="10pt"

start-indent="10pt">

Hello, <xsl:value-of select="./quote-list/customer/@first-name"/>

</fo:block>

<fo:block font-size="10pt"

font-family="sans-serif"

font-style="italic"

line-height="18pt"

space-after.optimum="10pt"

start-indent="15pt">

Prices were obtained at <xsl:value-of select="./quote-list/@time"/> on <xsl:value-of select="./quote-list/@date"/>

</fo:block>

<fo:table>

<fo:table-column column-width="3cm"/>

<fo:table-column column-width="7cm"/>

<fo:table-column column-width="3cm"/>

<fo:table-header font-size="10pt"

line-height="14pt"

font-family="sans-serif">

<fo:table-row font-weight="bold">

<fo:table-cell text-align="start">

<fo:block>SYMBOL</fo:block>

</fo:table-cell>

<fo:table-cell text-align="start">

<fo:block>COMPANY NAME</fo:block>

</fo:table-cell>

<fo:table-cell text-align="start">

<fo:block>SHARE PRICE</fo:block>

</fo:table-cell>

</fo:table-row>

</fo:table-header>

<fo:table-body font-size="10pt"

line-height="16pt"

font-family="sans-serif">

<xsl:for-each select="//quote">

<fo:table-row>

<fo:table-cell>

<fo:block text-align="start" >

<xsl:value-of select="@symbol"/>

</fo:block>

</fo:table-cell>

<fo:table-cell>

<fo:block text-align="start" >

<xsl:value-of select="@name"/>

</fo:block>

</fo:table-cell>

<fo:table-cell>

<fo:block text-align="start" >

$ <xsl:value-of select="./price[@currency='USD']/@amount"/>

</fo:block>

</fo:table-cell>

</fo:table-row>

</xsl:for-each>

</fo:table-body>

</fo:table>

</fo:flow>

</fo:page-sequence>

</fo:root>

</xsl:template>

</xsl:stylesheet>

最后我们在一个JSP文件中来调用这个javabean:

pdfWriter.jsp

<%@ page contentType="text/html; charset=gb2312" %>

<%@ page import="org.jdom.*" %>

<%@ page import="org.jdom.output.*" %>

<%@ page import="org.jdom.input.*" %>

<%@ page import="java.io.*" %>

<%@ page import="java.util.*" %>

<%@ page import="XML.*" %>

<%

String aa=getServletContext().getRealPath("/")+"j2ee_xml\\";

String fileName="watchlist.xml";

String trace=aa+fileName;

String styleName="watchlist.pdf.xsl";

String styleTrace=aa+styleName;

String resultName="aa.pdf";

String resultTrace=aa+resultName;

XML.PDFWriter PDFWriter = new XML.PDFWriter();

try {

PDFWriter.createPDFFromXML(styleTrace,trace, resultTrace);

} catch (Exception e) {

System.out.println(e.getMessage());

}

%>

aa.pdf就是格式化后的结果。

到现在使用XML数据的三种方式都介绍过了:

直接读取:http://www.csdn.net/Develop/read_article.asp?id=20720

使用XSLT转化成HTML:http://www.csdn.net/Develop/read_article.asp?id=20733

和这篇里介绍的使用XSL-FO转化成二进制格式。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有