永远不要跟别人比幸运,我从来没想过我比别人幸运,我也许比他们更有毅力,在最困难的时候,他们熬不住了,我可以多熬一秒钟、两秒钟,甚至更久。

使用ghostscript插件结合Java代码压缩pdf文件大小(二)

Java 新民 675℃ 已收录 1评论

在上一篇文章中介绍了ghostscript插件的安装,在这一篇文章中将要介绍使用ghostscript插件结合Java代码压缩pdf文件大小的具体实现,首先我介绍下ghostscript插件的压缩命令:

Linux 版:

gs    -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=result.pdf /root/Docker实战教程.pdf

Windows 版:

E:\software\gs\gs9.22\bin\gswin64c.exe    -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=d:/test/result.pdf  d:/root/Docker实战教程.pdf

 

在上面两种命令中,不同的是命令头不一样。其他的都大同小异,命令介绍如下:

参数:
      CompatibilityLevel 用于控制pdf 的版本,默认1.4  一般不变 
      PDFSETTINGS 用于控制导出文件质量:
  • /screen 选择类似于Acrobat Distiller“屏幕优化”设置的低分辨率输出。(生成文件最小)
  • /ebook 选择类似于Acrobat Distiller“电子书”设置的中等分辨率输出。
  • /printer 选择类似于Acrobat Distiller“打印优化”设置的输出。
  • /prepress 选择类似于Acrobat Distiller“印前优化”设置的输出。
  • /default 选择意图在各种用途中有用的输出,这可能是以较大的输出文件为代价的。

sOutputFile属性:第一个参数是要输出的文件路径,第二个参数是源文件路径

以上是介绍命令参数,现在对参数都不陌生了,接下来介绍在java代码当中如何实现:

	public class test {
	
	/**
	 * 
	 * @param settings 
	 * 1、/screen 选择类似于Acrobat Distiller“屏幕优化”设置的低分辨率输出。(生成文件最小)
	 * 2、/ebook 选择类似于Acrobat Distiller“电子书”设置的中等分辨率输出。
	 * 3、/printer 选择类似于Acrobat Distiller“打印优化”设置的输出。
	 * 4、/prepress 选择类似于Acrobat Distiller“印前优化”设置的输出。
	 * 5、/default 选择意图在各种用途中有用的输出,这可能是以较大的输出文件为代价的。
	 * 
	 * 
	 * 
	 * @param sourceFilePath 源文件完整路径
	 * @param targetFilePath 目标文件完整路径
	 * @return
	 */
	public static String getCommand(String settings,String sourceFilePath,String targetFilePath) {
		String perfix = null;
		if(System.getProperty("os.name").toUpperCase() .contains("WINDOWS")){
			perfix = "E:\\\\software\\\\gs\\\\gs9.22\\\\bin\\\\gswin64c.exe";
		}	else {
			perfix = "gs";
		}
		return perfix+" -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS="+settings+
				" -dNOPAUSE -dQUIET -dBATCH -sOutputFile="+targetFilePath+" "+sourceFilePath;
	}
	
	public static void main(String[] args) throws InterruptedException, IOException {
		
		String trim = getCommand("/screen","C:\\Users\\zxm\\Desktop\\文档\\Docker技术入门与实战.pdf","d:\\test\\666.pdf").trim();
		System.out.println(trim);
		Process exec = Runtime.getRuntime().exec(trim);
		// 该方法会阻塞,知道进程结束为止
		//	int ms =  exec.waitFor();
		
		
		// 判断该进程是否终止 true = 标识进程为终止
		//exec.isAlive();
		
		// 获取命令返回的数据
		//InputStream inputStream = exec.getInputStream();
	}
}

以上是代码的实现,我们来看看效果如何:

 

文件已经成功压缩了。源文件大小45MB,压缩后的大小11MB;至此,使用ghostscript插件结合Java代码压缩pdf文件大小的实现已经介绍完毕,觉得不错就点个赞吧!

本站文章如未注明,均为原创丨本网站采用BY-NC-SA协议进行授权,转载请注明转自:http://www.snowruin.com/?p=1736
喜欢 (2)or分享 (0)
发表我的评论
取消评论
表情 代码 贴图 加粗 链接 私信 删除线 签到

Hi,请填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)条精彩评论。
  1. 生活不止眼前的苟且,还有博客和远方的田野!
    藏金网2018-07-02 16:26 回复| Google Chrome 14.0.802.30| Windows 7