zoukankan      html  css  js  c++  java
  • java 截取pdf

    最近在读一本电子书,pdf中频繁引用后文的内容(页码),必须实时的跳过去看,但是扫描版的pdf的页码往往从封面就开始计数,而且盗版还经常有一些做广告的页面,这就导致pdf reader 索引的页面并不是真正的那一页,这样我得书就很难读了。

    百度了一下,发现只有abobe 的专业版才支持自定义页面起始位置的设置,只不过这玩意儿太大了,700Mb!fuxin pdf编辑器可能有这个功能,但是又要注册下载,并且180M也不小。

    我心想,这么简单的功能,何必要下载一个软件呢,于是搜索了java pdf的jar包,发现iText 和apache pdfbox 可以做到。前者我一直打不开jar包的下载页面,估计被墙了,无奈只有用后者,虽然功能上稍逊一筹,但是也够用了。

    我的目标就是让生成的pdf的第一页就是书的第一页,因此我去掉包括封面前言索引的部分,得到了最后的pdf。可单独保存,也可把目录单独抽取出来。

    下面的代码用到 pdfbox-1.8.12.jar 可在官网下载:

    public static void main(String[] args) {
            try {
                PDDocument helloDocument = PDDocument.load(new File("C:\Users\tm\Desktop\_改善既有代码的设计[高清版].pdf"));
                List<PDPage> pages = (List<PDPage>)helloDocument.getDocumentCatalog().getAllPages();
                PDDocument doc = null;
                doc = new PDDocument();
                for(int i = 25;i<pages.size() ; i++){
                    doc.addPage(pages.get(i));
                }
                doc.save("G:\refactoring Code.pdf");
                doc.close();
            } catch (Exception e) {
              e.printStackTrace();
            }
        }
    

    iText可参考此文:

     http://zhengjj-2009.iteye.com/blog/1841190   

    本次只用到其中很少的一点功能,如果需要更多的,可直接查询class提供的方法

  • 相关阅读:
    [SharePoint 2010] 自定义字段类型开发(二)
    [SharePoint 2007/2010]Query SharePoint Calendar Event
    打印出带颜色的调试信息
    c语言调试开关
    c语言调试接口
    字符串截取
    黑客
    【原创】洛谷 LUOGU P3379 【模板】最近公共祖先(LCA) -> 倍增
    【转载】从头到尾彻底理解KMP
    【原创】tarjan算法初步(强连通子图缩点)
  • 原文地址:https://www.cnblogs.com/opensesame/p/6042876.html
Copyright © 2011-2022 走看看