《Linux多线程服务端编程——使用muduo C++网络库》这本书是我自己用LaTeX排版的,在排版过程中也积累了一些小工具,今天把其中几个发布出来。这几个工具都直接基于开源的 iText 库,可从 http://itextpdf.com/ 下载。

下载

Groovy 版本位于 https://github.com/chenshuo/typeset/tree/master/tools

Java 版本位于 https://github.com/chenshuo/recipes/tree/master/java/pdf

各个工具的输出示例位于 http://vdisk.weibo.com/s/kT4fL

剪裁(Crop)

为了充分利用屏幕空间,也便于在电子阅读器(iPad、Kindle)上阅读校对书稿,我一般会把PDF剪切为版心大小。例如下面左图是原始PDF,为纸张大小;右图是剪切之后的版心。

剪切工具是 crop.groovy,设好CLASSPATH后可直接在命令行运行。其核心是根据版心和纸张尺寸算出左下角和右上角左边,然后剪切每一页。这个工具不管PDF的内容,如果需要根据页面内容剪裁PDF,可以使用Heiko Oberdiek的pdfcrop工具。

http://www.ctan.org/tex-archive/support/pdfcrop

http://code.google.com/p/pdfcrop2/

拼版(two-up)

有时候想在宽屏上同时阅读左右两页的书稿,除了可以用PDF阅读器本身的多页显示功能,我还常常自己做二合一(two-up)。这样得到的PDF也可以打印出来看,既节约纸张,而且与原稿是1:1大小。生成的PDF效果如下图。

二合一工具是twoup.groovy,其核心是算出左右两页在合页中的起始坐标。

小册子(booklet)

有时候我会把一章的内容打印出来,装订成一本小册子,这样读起来有翻书的感觉。为了节约纸张,在打印之前要拼版,这样一张纸双面能打印4个页码。例如8页内容可以打印到两张A4纸上:

装订这种小册子要用骑缝订,可用旋转订书机(http://www.amazon.cn/dp/B0080AF0FM,http://product.dangdang.com/product.aspx?product_id=1141537002)。一本小册子一般应该控制在10页纸左右,即40个页码,再厚就订不透了。

对比PDF内容(diff)

在书籍出版之后,每次印刷都可能修订一些页码,那么可以用 diffpdf.sh 小工具找出哪些页面的内容有改动。这个工具的思路很土,就是把PDF渲染为多个PNG文件,然后用diff比较文件是否相同。

另外,SumatraPDF是非常好的PDF阅读器,它可以在更新PDF文件之后自动刷新内容,不必reload。

from: http://blog.csdn.net/solstice/article/details/8306916

发布几个PDF小工具相关推荐

  1. Python练手项目:PDF小工具

    python对办公一族来说,是个提高办公效率的得力利器.熟练使用它,可以轻松完成很多繁杂的事情.它可以轻松地操作Word.Excel.PDF这种文档. 今天需要整理一份资料,需要把多个pdf合并为一个 ...

  2. c# 合并PDF小工具(合并PDF文件)

    一.背景鉴于现在网上PDF合并需要开通VIP,我自己动手,开发了一个PDF合并工具,帮助大家使用! 二.项目环境 C#环境,通过简单代码,完成PDF合并! class PDFhelper     { ...

  3. 基于PyQt5实现的PDF小工具

    基于PyQt5实现的PDF工具箱 完整项目详见PDFTools 功能:批量添加目录,图像增强,PDF拆分,PDF合并 文章目录 基于PyQt5实现的PDF工具箱 前言 1. 使用模块 2. 编辑环境搭 ...

  4. XPS文件转换PDF小工具,集成了界面,方便大家使用

    网上有关于XPS转换PDF的工具gxps.exe,由GhostPDL的代码编译而成.但是很不方便使用,需要设置参数,不够直观. 所以想出了给它集成一个外壳的想法. 利用C++语言,编写了外壳,调用gx ...

  5. pdf在线翻译_24个PDF在线小工具,免费在线翻译PDF文档。

    点击上方蓝色字关注我们! 最近工作看的英文文献比较多,而且一般都是PDF文档,所以最近我找了一些PDF翻译的东西,今天推荐的是一个在线翻译文档网站,它可以立即翻译任何文档格式为任意语言,并保持排版不变 ...

  6. 【python开源项目】推荐一款prize万能抽奖小工具发布

    请确保您的电脑安装了python和pip工具,下面使用pip安装并使用rxq工具. 第一步 安装与使用 prize 打开任意终端或者CMD pip install prize #或者这个:pip in ...

  7. 发布一个实体类属性生成小工具,给开发加点料

    做了很久的代码生成工具,基本上都是基于表生成实体类属性的,把数据库表的信息拿出来,然后之乎者也后生成一个标准的实体类,包含字段.属性.描述等东西. 是基于整个数据库生成整个框架代码的工具,如我的代码生 ...

  8. HC大会,华为联合合作伙伴发布一站式物联网IoT开发工具小熊派BearPi

    传统的物联网产品开发步骤复杂,涉及硬件开发.软件开发.云端开发等众多流程.而且产品的开发周期长.开发成本高.产品稳定性不佳.维护成本高.而物联网设备本身市场竞争激烈,价格低,设备更新迭代快,所以在保证 ...

  9. aspose 转pdf表格大小乱了_自己写了一个小工具类:pdf转word,没有页数和大小限制,保真!...

    昨天下午遇到一个问题,想把一个比较大的pdf转化为word,结果使用了各种工具都收费.想着干脆写一个小工具吧,一开始使用的python等等试了好几个网上的代码,结果全都失真.于是乎不得不花了一下午自己 ...

最新文章

  1. P3374 【模板】树状数组 1
  2. 如何向列表中添加数据值(管理员篇)
  3. Object.create(..)和new(..)的内部实现
  4. 【LeetCode从零单排】No221.Maximal Square
  5. flutter 图片路径_【Flutter开发工具推荐】Flutter资源管理利器:Flr
  6. Java栈 Stack
  7. 从工程转向管理,访谈Github公司的Phil Haack
  8. 使用Apache Kafka,Kubernetes和Envoy,Istio,Linkerd的服务网格和云原生微服务
  9. Java:File.separator作用相当于 ‘ \ ‘
  10. matlab模拟退火最小球覆盖,【模板】模拟退火 费马点以及最小球覆盖
  11. flask websocket json_Win10环境下使用Flask配合Celery异步推送实时/定时消息/2020年最新攻略...
  12. C# 词典数据结构设计【附demo】
  13. CCF201503-5 最小花费(100分解题链接)
  14. 吴恩达神经网络和深度学习-学习笔记-17-batch归一化(Batch Normalization)(BN)
  15. linux下安装redis 3.2.1
  16. oppor17刷鸿蒙系统,oppo a5刷机包下载
  17. HMC5883L校准
  18. .Net Self Hosting 的几种方式
  19. 学术研讨会---Micheal Stonebraker的主题演讲【读后感】
  20. web防火墙和waf防火墙的区别和选择

热门文章

  1. 机器学习是如何运作的?谷歌来告诉你
  2. jvm性能调优 - 20G1垃圾回收器应该如何设置参数
  3. 深入理解分布式技术 - BASE 理论
  4. Shell-实际业务操作03
  5. Android Application 之 allowBackup 属性浅析
  6. 学习笔记Hadoop(五)—— Hadoop集群的安装与部署(2)—— Hadoop集群部署模式、配置固定IP
  7. python 二维矩阵翻转
  8. MySQL---Subquery returns more than 1 row
  9. ubuntu php mysql5.6_Ubuntu 安装 Mysql 5.6 数据库
  10. ubuntu mysql navicat_Ubuntu搭建MySQL,Navicat Premium连接