书法类的PDF,因为底色是黑色的,打印起来特别费墨,所以需要转化成白底黑字的文件,

才好打印。

1)用 pdfbox 的 ExtractImages 命令,抽出所有的图片

https://pdfbox.apache.org/2.0/commandline.html

java -jar pdfbox-app-2.0.11.jar ExtractImages "E:\Calligraphy\jiu.pdf"

2 ) 用 imagemagick 把图片转化为白底黑字。

可以创建一个bash 文件,在Cygwin里执行

for i in *.jpg
do
magick $i -negate negate_`basename $i .jpg`.jpg
done

不可以直接 magick *.jpg -negate negate_.jpg . 这样转化出来的图片,不能和原图一一对应,后续就不好做了。

3)用gimp2 来分别处理每一张 图片

a) [颜色-> 去色] 转化为灰度图片

b) [颜色->阀值] 去掉多余的灰点

c) 自由选择工具 和 油漆桶 进行 精细去除

d) 用画笔工具,进行更精细的去除

4 ) 用自己做的工具,转化文件名 xxx1.jpg xxx01.jpg  xxx2.jpg xxx02.jpg . 这样为下一步程序能顺利排序做好准备

5)运行java 程序

    public static void main(String[] args) {if (args.length < 3) {System.out.println("ImagesToPdf <folderpath> <width> <height>");System.out.println("For example: ImagesToPdf \"E:\\Calligraphy\\create_pdf\\jiu_liqi\\jiu01_last\" 800 1200");return;}List<String> alist = listFilesAndFolders(args[0]);if (alist.size() < 2) {System.out.println("Error:File Count in Folder is < 2");return;}float width = Float.parseFloat(args[1]);float height = Float.parseFloat(args[2]);PDDocument document = new PDDocument();try {for(String s:alist) {PDPage page = new PDPage(new PDRectangle(width, height));PDPageContentStream contentStream = new PDPageContentStream(document, page);document.addPage(page); PDImageXObject  img = PDImageXObject.createFromFile(args[0] + "/" + s, document);                contentStream.drawImage(img, 0, 0);contentStream.close();}document.save("out.pdf");document.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch block
            e.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}public static List<String> listFilesAndFolders(String directoryName){File directory = new File(directoryName);//get all the files from a directoryArrayList<String> alist = new ArrayList<String>();File[] fList = directory.listFiles();for (File file : fList){alist.add(file.getName());}alist.sort(Comparator.naturalOrder());return alist;}

转载于:https://www.cnblogs.com/johnsonshu/p/9373966.html

书法字帖 PDF转化为可打印PDF相关推荐

  1. java生成pdf_Java实现PDF文件生成并且打印pdf文件 demo

    ## Java实现PDF生成并且打印pdf文件(附demo) #### 目录: 0. 效果预览 1. 准备环境 2. Java如何调用打印机进行打印 3. Java如何生成pdf打印文件 4. 实现p ...

  2. js打印pdf 使用Adobe reader 打印pdf

    最近工作上有需要在js中打印pdf文件,从中遇到了一些问题,到现在已经解决了,做个记录.希望能帮到有需要的人. 我这边主要采用Adobe reader进行加载打印.                   ...

  3. 使用PDF处理控件Aspose.PDF以编程方式打印PDF文档完整攻略

    许多公司在很大程度上减少了纸张的使用.但是,在某些情况下打印很重要.例如,系统可能包含PDF格式的在线订单的详细信息.他们需要在分发在线订单进行交付时打印PDF.他们大规模处理项目,因此手动打印每个文 ...

  4. 利用Aspose.PDF以编程方式打印PDF文档

    使用C#打印PDF文件 可以使用C#或VB.net在.NET应用程序中自动打印PDF文件.您可以按照以下简单步骤打印PDF文件: 创建一个PdfViewer类的对象 加载输入的PDF文档 打印PDF文 ...

  5. python打印pdf文件_Python静默打印PDF到特定的打印机

    我有一个PDF文档,我想用我的 python应用程序打印它. 我使用的方式是使用命令os.startfile('PDFfile.pdf',"print"),但它打开默认查看器(我的 ...

  6. java中使用pdfBox打印pdf;java web打印pdf;静默打印;jar程序打包成exe文件;exe4j的使用

    java编写打印控件 web打印一直是个棘手的问题,市面上的第三方打印插件也是贵的离谱,这里给出一个可行的解决方案. SpringBoot项目的web服务,实现的功能: 获取电脑可用的打印机列表 设置 ...

  7. C# 打印PDF文档的10种方法

    操作PDF文档时,打印是常见的需求之一.针对不同的打印需求,可分多种情况来进行,如设置静默打印.指定打印页码范围和打印纸张大小.双面打印.黑白打印等等.经过测试,下面将对常见的几种PDF打印需求做一些 ...

  8. 还在为打印PDF文件发愁?文档开发工具Spire.PDF 6种方式帮你搞定!

    Spire.PDF(点击下载)是一个专业的PDF组件,能够独立地创建.编写.编辑.操作和阅读PDF文件,支持 .NET.Java.WPF和Silverlight.Spire.PDF的PDF API拥有 ...

  9. C# 六种方案打印PDF文档

    打印PDF文档是开发人员经久不变的话题,常见的打印需求大致有以下六种: 用默认打印机打印PDF文档 用虚拟打印机打印PDF文档 指定打印机及PDF文档的打印页码范围 静默打印PDF文档 双面打印PDF ...

最新文章

  1. #每天一种设计模式# 观察者模式
  2. 08JavaScript中的函数
  3. 常用的 cocos2d-x 游戏开发工具
  4. JVM 调优实战--垃圾回收的常见算法
  5. 分类素材(part2)--python机器学习基础教程(上)
  6. java web与android互通的aes算法
  7. 一个女程序员的创业人生:胆识也是一种能力 作者:秋镇菜
  8. HDU 4870 Rating(高斯消元 )
  9. 品牌logo在EDM数据营销中的运用
  10. 机器学习--人口普查数据分析
  11. 贤内助——ICMP协议
  12. 主干分支开发模式_源代码主干分支开发四大模式
  13. 搞懂异地多活,看这篇就够了
  14. 【看表情包学Linux】GDB 调试教学 | gcc 和 g++ | 函数库
  15. 项目实训工作总结(2)
  16. 关于C语言里面struct的相关知识
  17. 图像仿射变换及图像扭曲(Image Warping)
  18. 黑中介北京链家,收了中介费,不给你服务
  19. perl/tk_Perl / Tk的基础
  20. 芯片的英文手册需要全部看吗?

热门文章

  1. js算法之旅:用队列和栈计算出扑克玩:拖板车(小猫钓鱼) 游戏的结果
  2. ASM 系列详细教程-02-ASM 整体概览
  3. 她26岁成中科大博导:我是工作上灭绝师太,生活中女汉子
  4. 软件外包网站TOP5
  5. 算法基础:圣诞老人的礼物--贪心
  6. 单片机音频节奏灯_如何用单片机做出用音乐节奏来控制LED灯?
  7. 斯坦福发布CheXNet:比放射科医生更好诊断胸部肺炎X光片
  8. 短信验证码有什么限制?
  9. Hadoop基本组成
  10. MotoSim EG-VRC软件:机器人系统创建与模型布局操作