文档章节

记事本转pdf(加水印)、转图片 三

东方神剑
 东方神剑
发布于 2015/12/25 19:37
字数 539
阅读 163
收藏 17

这一步就是将添加完水印后的pdf文档转成图片格式,直接上代码吧


import  java.awt.Image;  
import  java.awt.Rectangle;  
import  java.awt.image.BufferedImage;  
  
import  java.io.File;  
import  java.io.FileOutputStream;  
import  java.io.IOException;  
import  java.io.RandomAccessFile;  
import  java.nio.ByteBuffer;  
import  java.nio.channels.FileChannel;  
import  javax.swing.SwingUtilities;  
import  com.sun.image.codec.jpeg.JPEGCodec;  
import  com.sun.image.codec.jpeg.JPEGImageEncoder;  
import  com.sun.pdfview.PDFFile;  
import  com.sun.pdfview.PDFPage;  
  
public   class  Pdfpicture {  
    public   static   void  setup()  throws  IOException {  
  
        // load a pdf from a byte buffer   
        File file = new  File(  
                "e://null1.pdf" );  
        RandomAccessFile raf = new  RandomAccessFile(file,  "r" );  
        FileChannel channel = raf.getChannel();  
        ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0 , channel  
                .size());  
        PDFFile pdffile = new  PDFFile(buf);  
  
        System.out.println("页数: "  + pdffile.getNumPages());  
  
        for  ( int  i =  1 ; i <= pdffile.getNumPages(); i++) {  
            // draw the first page to an image   
            PDFPage page = pdffile.getPage(i);  
  
            // get the width and height for the doc at the default zoom   
            Rectangle rect = new  Rectangle( 0 ,  0 , ( int ) page.getBBox()  
                    .getWidth(), (int ) page.getBBox().getHeight());  
  
            // generate the image   
            Image img = page.getImage(rect.width, rect.height, // width &   
                                                                // height   
                    rect, // clip rect   
                    null ,  // null for the ImageObserver   
                    true ,  // fill background with white   
                    true   // block until drawing is done   
                    );  
  
            BufferedImage tag = new  BufferedImage(rect.width, rect.height,  
                    BufferedImage.TYPE_INT_RGB);  
            tag.getGraphics().drawImage(img, 0 ,  0 , rect.width, rect.height,  
                    null );  
            FileOutputStream out = new  FileOutputStream(  
                    "e://picture//"   
                            + i + ".jpg" );  // 输出到文件流   
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
            encoder.encode(tag); // JPEG编码   
  
            out.close();  
        }  
  
        // show the image in a frame   
        // JFrame frame = new JFrame("PDF Test");   
        // frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
        // frame.add(new JLabel(new ImageIcon(img)));   
        // frame.pack();   
        // frame.setVisible(true);   
    }  
  
    public   static   void  main( final  String[] args) {  
        SwingUtilities.invokeLater(new  Runnable() {  
            public   void  run() {  
                try  {  
                    Pdfpicture.setup();  
                } catch  (IOException ex) {  
                    ex.printStackTrace();  
                }  
            }  
        });  
    }  
  
}



说实话,程序转后的图片像素很低,效果不是很好,所以我实际过程中并没有使用程序处理,在这里推荐个很不错的小软件PDF Image Extraction Wizard 6.0专业版,网上有破解的,下一个就行了,免安装,可批量转载,效果非常好,但是转换效率比较低,两三秒转一个两页大小的pdf文档。但效果真的很不错,用程序转容易产生噪声点。


下面给出一份药品说明书的从记事本到pdf到水印到图片的截图效果给大家看看吧。

© 著作权归作者所有

共有 人打赏支持
东方神剑

东方神剑

粉丝 64
博文 126
码字总数 93166
作品 0
朝阳
程序员
记事本转pdf(加水印)、转图片 二

上一篇中主要讲了如何将记事本转pdf,以及在转图片过程中常见错误的解决方案,这一篇主要给出给pdf文档添加水印的程序,程序都是现成的,网上也有很多,关于引用的jar包,大家自己上网搜搜就...

东方神剑
2015/12/25
34
0
记事本转pdf(加水印)、转图片 一

一、如何将采集的数据转成pdf 关于爬虫采集数据部分,这里就不详细介绍了,关于爬虫的篇章可以参考我的另一篇博客,采集下来的数据,每个页面用一个记事本保存。 最初的想法是,用word转pdf...

东方神剑
2015/12/25
187
0
asp.net MVC设计模式中使用iTextSharp实现html字符串生成PDF文件

  因个人需求,需要将html格式转换成PDF并加上水印图片。于是乎第一次接触这种需求的小菜鸟博主我,在某度搜索引擎上不断的查阅关键字资料、踩坑,终于有了一个相应的解决方案。以下是解决...

静思、实践而后知
07/24
0
0
【尖端干货】H.264编码下直播视频添加水印的优化

2016年被称为“中国网络直播元年”,网络直播已成为网络文化领域重要的经营模式和文化市场的重要组成部分。而以“直播造人”事件为节点,直播行业进入了严格规范化的时期,鉴黄、版权保护越来...

郑小峰2583
2017/04/19
0
0
用pd4ml 把html转PDF后,水印如何去掉?

用pd4ml html转成pdf后, 页与页之间会有水印。 如图 怎样才能把水印去掉? 另外,不是PDF加的水印 应该是pd4ml给加的。。 谢谢各位

EscapePlan
2013/09/10
1K
4

没有更多内容

加载失败,请刷新页面

加载更多

中秋快乐!!!

HiBlock
今天
1
0
Node安装教程

1、安装最新版的node 2、设置相关目录(以D盘为例) 分别建立目录:D:\node,D:\node\node-globa,D:\node\node-cache 命令行输入: // 设置npm国内镜像 npm config set registry https://re...

Mohan710
今天
3
0
中国发布域名系统基础软件 “红枫”

9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软件 “红枫(Maple DNS)”。 9月12日消息,域名工程中心(英文缩写 ZDNS)发布了宣称自主开发的域名系统基础软...

问题终结者
今天
3
0
Shell编程(分发系统介绍、expect远程登录、expect远程执行命令、expect传递参数)

分发系统介绍expect 分发系统expect即分发脚本,是一种脚本语言;通过他可以实现传输,输入命令(上线代码) 应用场景:业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者...

蛋黄_Yolks
今天
4
0
Java Http请求工具类

public static String httpPost(String source, String params) {URL url = null;HttpURLConnection conn = null;OutputStream os = null;String ret = null;try {......

yuewawa
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部