ofd怎么转换成图片 java_html如何转换为ofd?

html转换为ofd

首先,html是常见的流式排版文档,而ofd是版式的排版文档,将流式转换为版式(借助于pdf),就需要经历一个转板过程,这个过程有两种方案:

第一步:将html超文本格式转为版式文件,可通过以下两种方案实现:

方案1.人工方式,通过html页面直接Ctrl+P调起打印,输出pdf文件:

35f8418da0d295d03d0b93083bd6e298.png

private static String toPdfTool = "D:\\wkhtmltopdf\\bin\\wkhtmltopdf.exe";

/**

* html转pdf

* @param srcPath html路径,可以是硬盘上的路径,也可以是网络路径

* @param destPath pdf保存路径

* @return 转换成功返回true

*/

public static boolean convert(int type,String srcPath, String destPath){

File file = new File(destPath);

File parent = file.getParentFile();

//如果pdf保存路径不存在,则创建路径

if(!parent.exists()){

parent.mkdirs();

}

StringBuilder cmd = new StringBuilder();

//非windows 系统

if(System.getProperty("os.name").indexOf("Windows") == -1){

if(type==1){

toPdfTool = "/usr/local/bin/wkhtmltopdf";

cmd.append(toPdfTool);

cmd.append(" ");

cmd.append(" --images");

cmd.append(" --header-line");//页眉下面的线

//cmd.append(" --header-center 这里是页眉这里是页眉这里是页眉这里是页眉 ");//页眉中间内容

cmd.append(" --margin-top 3cm ");//设置页面上边距 (default 10mm)

//cmd.append(" --header-html file:///"+ WebUtil.getServletContext().getRealPath("")+FileUtil.convertSystemFilePath("\\style\\pdf\\head.html"));// (添加一个HTML页眉,后面是网址)

cmd.append(" --header-spacing 5 ");// (设置页眉和内容的距离,默认0)

//cmd.append(" --footer-center (设置在中心位置的页脚内容)");//设置在中心位置的页脚内容

//cmd.append(" --footer-html file:///"+WebUtil.getServletContext().getRealPath("")+FileUtil.convertSystemFilePath("\\style\\pdf\\foter.html"));// (添加一个HTML页脚,后面是网址)

cmd.append(" --footer-line");//* 显示一条线在页脚内容上)

cmd.append(" --footer-spacing 5 ");// (设置页脚和内容的距离)

cmd.append(" --javascript-delay 2000 ");

cmd.append(" --no-stop-slow-scripts ");

cmd.append(srcPath);

cmd.append(" ");

cmd.append(destPath);

}else{

toPdfTool = "/usr/local/bin/wkhtmltoimage";

cmd.append(toPdfTool);

cmd.append(" ");

cmd.append(srcPath);

cmd.append(" ");

cmd.append(destPath);

}

}

boolean result = true;

try{

Process proc = Runtime.getRuntime().exec(cmd.toString());

HtmlToPdfInterceptor error = new HtmlToPdfInterceptor(proc.getErrorStream());

HtmlToPdfInterceptor output = new HtmlToPdfInterceptor(proc.getInputStream());

error.start();

output.start();

proc.waitFor();

}catch(Exception e){

result = false;

e.printStackTrace();

}

return result;

}

通过代码的方案将html渲染后转为pdf的方案。

第二步,版式之间的转换,可以用以下方案:

1.pdf转ofd,通过调用第三方的实现,此处以开源的pdf转换ofd为例,

90c11d20e9cc87dc2c6624508836a7bf.png

最终结果

a9ab844e0efa566d12b15e167c7761bd.png

414c1e7bde46a329a43b0983fa4f4f7b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值