文档章节

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

东方神剑
 东方神剑
发布于 2015/12/25 19:37
字数 539
阅读 168
收藏 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到水印到图片的截图效果给大家看看吧。

© 著作权归作者所有

共有 人打赏支持
东方神剑

东方神剑

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

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

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

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

东方神剑
2015/12/25
187
0
【尖端干货】H.264编码下直播视频添加水印的优化

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

郑小峰2583
2017/04/19
0
0
asp.net MVC设计模式中使用iTextSharp实现html字符串生成PDF文件

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

静思、实践而后知
2018/07/24
0
0
php 直接调用ffmpeg 中加水印问题

ffmpeg 包在网页根目录,所有测试视频 图片都在根目录 前面截图和转码都可以,就是后面加水印不行,有经历过的帮我看下 不知道是不是这种方式不能实现加水印

wsk94
2018/04/12
236
8

没有更多内容

加载失败,请刷新页面

加载更多

Linux Wireshark普通用户启动使用方案

当系统安装好Wireshark后请正常启动是否可以进行正常使用,如果不行请参考下列指导 向系统添加一个用户组 sudo groupadd wireshark //如提示此组存在可跳过 将指定用户添加到这个组中 sudo...

CHONGCHEN
今天
1
0
CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
2
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
4
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
4
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部