Java与XML(六)xml的转换之pdf (fo 2 pdf)

博客介绍了将fo文件直接转换成pdf的方法,给出了示例fo文件的代码。还提及了XML文件到RTF和PDF的转换,以及如何在程序中嵌入FOP等内容,涉及XML、Java等信息技术知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果有fo文件,则可以直接转换成pdf。具体方法如下:

一个fo文件simple.fo:


<fo:root xmlns:fo="
http://www.w3.org/1999/XSL/Format">
  <fo:layout-master-set>
    <fo:simple-page-master master-name="main"
      margin-top="36pt" margin-bottom="36pt"
      page-width="8.5in" page-height="11in"
      margin-left="72pt" margin-right="72pt">
      <fo:region-body margin-bottom="50pt" margin-top="50pt"/>
    </fo:simple-page-master>
  </fo:layout-master-set>
  <fo:page-sequence master-reference="main">
    <fo:flow flow-name="xsl-region-body">
      <fo:block font-size="14pt" line-height="17pt">
        This is a paragraph of text.  Notice that as
        <fo:inline font-style="italic">this meaningless
          prose</fo:inline> drones on and on, the FOP
        software automatically calculates line breaks for us. 
        Isn't that fascinating?
      </fo:block>
    </fo:flow>
  </fo:page-sequence>
</fo:root>


转换函数 foptest.java:

package src;


import java.io.*;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.apache.fop.apps.*;

public class foptest{
    public static void main(String[] args) {
        try {
            Driver driver = new Driver();
           
            //设置要转换的fo文件名
            //driver.setInputSource(new InputSource (args[0]));
            driver.setInputSource(new InputSource ("f://tomcat5//webapps//myxml//xmldata//simple.fo"));
           
            //设置输出文件名
            //driver.setOutputStream(new FileOutputStream(args[1]));
            driver.setOutputStream(new FileOutputStream("f://tomcat5//webapps//myxml//xmldata//simple1.pdf"));
           
            //设置转换类型
            //还可以为RENDER_PCL,RENDER_PS,RENDER_TXT,RENDER_MIF
            driver.setRenderer(Driver.RENDER_PDF);
            //开始转换
            driver.run();
        }
        catch( Exception e ){
            e.printStackTrace();
        }
    }
}

编译执行即可。

参考:

HolyfairHolyfair@sina.comXML文件到RTFPDF的转换

stevema@263.net 如何在程序中嵌入FOP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值