扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年10月7日
关键字: ORACLE
在本页阅读全文(共6页)
我们将使用 XSLT 文件 (catalog.xsl) 为输入 XML 文件生成 XSL-FO 文件,然后合并这些 XSL-FO 文件以生成单个 XSL-FO 文件。
为要通过输入 XML 和 XSLT 文件生成的 XSL-FO 文件创建 InputStream 对象数组:
InputStream[] input = new InputStream[2];
通过 XSL-FO Utility 的主要类 FOUtility,根据输入 XML 和 XSLT 文件创建 XSL-FO 文件。使用静态方法 createFO(java.lang.String xmlFile,java.lang.String xslFile) 创建 XSL-FO 文件:
InputStream firstFOStream = FOUtility.createFO("catalog2.xml", "catalog.xsl");InputStream secondFOStream = FOUtility.createFO("catalog3.xml", "catalog.xsl");
在 InputStream 数组中设置 XSL-FO InputStream 对象:
Array.set(input, 0, firstFOStream); Array.set(input, 1, secondFOStream);
使用静态方法 mergeFOs() 合并 XSL-FO InputStream 对象:
InputStream mergedFOStream = FOUtility.mergeFOs(input, null);
创建 FOProcessor 对象,以便通过合并的 XSL-FO 文件生成 PDF 报表:
FOProcessor processor = new FOProcessor();
在 FOProcessor 对象上设置合并的 XSL-FO InputStream:
processor.setData(mergedFOStream);
如果将 XSL-FO 文件指定为 FOProcessor 的数据源,则不需要设置 XSLT 文档。将 XSLT 模板设置为 null:
processor.setTemplate((String)null);
设置输出 PDF 文件和输出格式,并生成 PDF 报表:
processor.setOutput("catalog2.pdf"); processor.setOutputFormat(FOProcessor.FORMAT_PDF); processor.generate();
您将在示例代码中找到 PDF 报表 (catalog2.pdf),该报表是通过合并的 XSL-FO InputStream 生成的。
有时,您必须合并 PDF 文档。PDF Document Merger 用于合并 PDF 文档,还可以为合并的文档添加页码。在本部分中,我们将合并在前面部分中生成的 catalog.pdf 和 catalog2.pdf。
首先,根据 catalog.pdf 和 catalog2.pdf 创建一个 InputStream 数组:
FileInputStream[] inputStreams = new FileInputStream[2]; inputStreams[0] = new FileInputStream("catalog.pdf"); inputStreams[1] = new FileInputStream("catalog2.pdf");
为合并的 PDF 文档创建 FileOutputStream:
FileOutputStream outputStream = new FileOutputStream("catalog3.pdf");
合并 PDF 文档与 PDFDocMerger 类:
PDFDocMerger pdfMerger = new PDFDocMerger(inputStreams, outputStream);
要添加页码,应指定页码坐标和页码字体:
pdfMerger.setPageNumberCoordinates(300, 20); pdfMerger.setPageNumberFontInfo("Courier", 10);
使用 setPageNumberValue(int initialValue, int startPageIndex) 方法设置页码值。initialValue 指定页码的初始值。startPageIndex 指定从哪个页码开始编号:
pdfMerger.setPageNumberValue(1, 1);
运行 PDF Document Merger:
pdfMerger.process();
您将在示例代码中找到合并后的 PDF 文档 (catalog3.pdf)。
Data Engine API 可以使用数据库数据创建 XML 文档。DataProcessor 类用于从数据模板生成 XML 文档。该模板是一个 XML 文件,可以指定输入参数、从数据库检索数据的 SQL 查询以及要生成的 XML 文档的数据结构。与 XML SQL Utility(也是从数据库生成 XML 文档)相比,Data Engine API 的一个优势是可让您在 XML 文档中生成元素的层次结构。表 3 列出了一些在数据模板中常用的元素。
表 3. 数据模板元素
元素 | 说明 | 属性 |
dataTemplate(必需) |
根元素 |
name(必需) |
parameters |
指定 SQL 查询的输入参数,由 <parameter> 元素组成。参数值可以在运行时设置。 |
name(必需) |
dataQuery(必需) |
指定从数据库检索数据的 SQL 查询,由 <sqlstatement> 元素组成。 |
- |
sqlstatement(必需) |
指定 SQL 语句。 |
name(必需) |
dataStructure(对于多个查询是必需的) |
定义输出 XML 的结构,由 <group> 和 <element> 元素组成。如果没有为单个查询指定,则输出 XML 由与 SQL 查询中的列相对应的元素组成。 |
- |
group |
指定一组元素和子组。元素的层次结构可以通过子组元素指定。 |
name(必需) |
element(必需) |
指定输出 XML 文档中的元素。 |
name(必需) |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者