优化PDF文件的存储- Java

本教程将展示如何在Java应用程序中使用LEADTOOLS SDK快速有效地减小PDF文件的大小,同时尽可能保留原始文件的质量。

概述
总结 本教程介绍如何在Java应用程序中有效地减小PDF文件的大小。
完成时间 30分钟
Visual Studio项目 下载教程项目(2kb)
平台 Java应用程序
IDE Eclipse
开发许可 下载LEADTOOLS
用另一种语言试试

所需的知识

在开始之前优化PDF文件的存储- Java本教程中,通过回顾添加引用和设置License教程。

创建项目并添加LEADTOOLS引用

中创建的项目的副本开始添加引用和设置License教程。如果您没有该项目,请按照该教程中的步骤创建它。

所需要的参考资料取决于项目的目的。引用可以由本地添加. jar档案位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \ Java

本项目需要参考资料如下:

有关应用程序需要哪些JAR文件的完整列表,请参阅Java应用程序中包含的文件

设置License文件

许可证解锁项目所需的特性。它必须在调用任何工具箱函数之前设置。有关包括针对不同平台的教程的详细信息,请参阅设置运行时License

有两种类型的运行时许可证:

请注意

中更详细地介绍了添加LEADTOOLS引用和设置许可添加引用和设置License教程。

添加PDF优化器代码

随着项目的创建、引用的添加和许可的设置,编码就可以开始了。

Package Explorer,打开_Main.java类的以下语句进口顶部的块。

Java
进口java.io.IOException;进口java.nio.file。*;进口leadtools。*;进口leadtools.codecs。*;进口leadtools.pdf。*;

控件中添加一个新方法_Main类命名OptimizeFiles(字符串_pdfFileDir)。方法中调用此方法run ()方法,下面调用SetLicense ()。字符串传递给OptimizeFiles ()方法将是指向您希望优化的PDF文件的目录。为了本教程的目的,将使用以下目录:C: \ LEADTOOLS22 \ \图片资源

将下面的代码添加到新方法中以创建PDFOptimizerOptions对象,并将属性设置为优化给定目录中的pdf。

Java
无效OptimizeFiles(String _pdfFileDir) {RasterCodecs _codecs =RasterCodecs ();//设置PDF实用程序dll的路径.setInitialPath .getPdf _codecs.getOptions () () (“C: \ \ LEADTOOLS22 \ \ Bin \ \ CDLL \ \ x64”);文件pdfFileDir =文件(_pdfFileDir);FilenameFilter pdfFilter =FilenameFilter () {公共布尔accept(文件目录,字符串名称){返回name.toLowerCase () .endsWith (. pdf”);}};File[] _pdfFiles = pdfFileDir.listFiles(pdfFilter);文件_destDir =文件(pdfFileDir,“OptimizedPDFs”);如果(! _destDir.exists ())_destDir.mkdir ();myOptimizerOptions =PDFOptimizerOptions ();myOptimizerOptions.setAutoOptimizerMode (PDFAutoOptimizerMode.BEST_SIZE);myOptimizerOptions.setColorImageDownsamplingMode (PDFDownsamplingMode.AVERAGE);myOptimizerOptions.setGrayImageDownsamplingMode (PDFDownsamplingMode.BICUBIC);myOptimizerOptions.setMonoImageDownsamplingMode (PDFDownsamplingMode.BICUBIC);myOptimizerOptions.setColorImageDownsampleFactor (2.0);myOptimizerOptions.setGrayImageDownsampleFactor (2.0);myOptimizerOptions.setMonoImageDownsampleFactor (2.0);myOptimizerOptions.setColorImageDPI (150);myOptimizerOptions.setGrayImageDPI (150);myOptimizerOptions.setMonoImageDPI (150);myOptimizerOptions.setColorImageCompression (RasterImageFormat.JPEG);myOptimizerOptions.setGrayImageCompression (RasterImageFormat.RAS_PDF_LZW);myOptimizerOptions.setMonoImageCompression (RasterImageFormat.JBIG);myOptimizerOptions.setEmbedAllFonts ();myOptimizerOptions.setSubsetFonts (真正的);(File _pdfFile: _pdfFiles){//获取没有扩展名的文件名字符串_pdfFilename = _pdfFile.getName();intpos = _pdfFile.getName().lastIndexOf(“。”);如果(pos > 0 && pos < (_pdfFilename.length() - 1))_pdfFilename = _pdfFilename。substring (0, pos);文件destFile =文件(_destDir, _pdfFilename + .“_OPTIMIZED.pdf”);CodecsImageInfo _info = _codecs.getInformation(_pdfFile.toString(),真正的);_beforeBytes = _info.getSizeDisk();System.out.println (“大小”+ _pdfFile.toString() +”:“+ _beforeBytes);PDFFile _pdf =PDFFile (_pdfFile.toString ());_pdf.setOptimizerOptions (myOptimizerOptions);_pdf.optimize (destFile.toString ());System.out.println ("PDF已优化并保存至"+ destFile.toString ());CodecsImageInfo _afterInfo = _codecs.getInformation(destFile.toString(),真正的);_afterBytes = _afterInfo.getSizeDisk();System.out.println (“优化尺寸”+ _pdfFile.toString() +”:“+ _afterBytes);}_codecs.dispose ();}

请注意

AutoOptimizerMode属性设置了一个枚举值,用来指示如何优化PDF文件(BEST_QUALITY, BEST_SIZE, AVERAGE_SIZE等)。

运行项目

按下运行项目Ctrl + F11,或选择执行命令->执行命令

如果正确地执行了这些步骤,应用程序将抓取给定目录中的所有PDF文件,并基于PDFOptimizerOptions,并将PDF文件导出到创建的目录中。

显示优化结果的截图。

总结

本教程展示了如何添加必要的引用来优化给定目录中的每个PDF文件以供存储。此外,我们还介绍了如何使用PDFFile而且PDFOptimizerOptions类。

另请参阅

iOS
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2023领德科技有限公司版权所有。