PDF Optimizer是一个很好的PDF压缩类库,支持Java、.NET、C++开发,可以从压缩率、字体、图像等资源进行优化PDF文档,针对Web应用线性加载也有作用。
今天我们要实现下方的PDF文件简单优化案例,以及反馈初次使用PDF Optimizer时会遇到的问题。
无论是Java、.NET还是C++,示例代码都可以下载我们的PdfOptimize-API-6.19.0.2-Windows压缩包。

问题1:安装

按照DEMO代码引入各DLL文件后,窗体运行及 错:原因:解决方案CPU方案使用Any CPU,那么我们引入的api.dll需要确认X86还是X64
问题2:官方示例代码如何集成到以后项目体验
解决方法:重新绘制上述窗体设计,将事件代码复制即可。
问题3:Resource类没有办法加载
解决方法:Resource是官方自己去自定义的一个日志实体类,我们可以忽略掉,自行设置即可。
以下就是我在试用实现优化的事件代码:
try { txtLog.Text = String.Empty; if (txtOutput.Text.Equals(String.Empty)) { txtLog.Text = ""; //Resources.strOutputDirErr; return; } using (Optimizer opt = new Optimizer()) { if (!opt.Open(txtInput.Text, txtPW.Text)) { txtLog.Text = "错误异常:" + opt.ErrorCode.ToString() + String.Format(" ({0})", opt.ErrorMessage); return; } opt.ColorResolutionDPI = 72; opt.ImageQuality = 10;//输出图片质量 // Optimize output file for either printing or web String strFilename = null; if (rbProfilePrint.Checked) { // 针对印刷优化 opt.Profile = PDFOptimizationProfile.eOptimizationProfilePrint; strFilename = "印刷优化.pdf"; } else if (rbWeb.Checked) { // web线性优化 opt.Profile = PDFOptimizationProfile.eOptimizationProfileWeb; strFilename = "Web优化.pdf"; } if (strFilename != null) { strFilename = txtOutput.Text + "/" + strFilename; if (opt.SaveAs(strFilename, String.Empty, String.Empty, PDFPermission.ePermNoEncryption)) txtLog.Text = "文件保存成功:" + strFilename; else txtLog.Text = "文件保存异常:" + opt.ErrorCode.ToString() + String.Format(" ({0})", opt.ErrorMessage); } opt.Close(); } } catch (Exception ex) { txtLog.Text = ex.Message; } finally { //ButtonOptimizePrint.Enabled = true; //ButtonOptimizeWeb.Enabled = true; }
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!