原創|行業資訊|編輯:何躍|2021-12-23 17:43:37.130|閱讀 532 次
概述:PDF Optimizer是一個很好的PDF壓縮類庫,支持Java、.NET、C++開發,可以從壓縮率、字體、圖像等資源進行優化PDF文檔,針對Web應用線性加載也有作用。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
今天我們要實現下方的PDF文件簡單優化案例,以及反饋初次使用PDF Optimizer時會遇到的問題。
無論是Java、.NET還是C++,示例代碼都可以下載我們的PdfOptimize-API-6.19.0.2-Windows壓縮包。
	 
	 
按照DEMO代碼引入各DLL文件后,窗體運行及報錯:原因:解決方案CPU方案使用Any CPU,那么我們引入的api.dll需要確認X86還是X64
解決方法:重新繪制上述窗體設計,將事件代碼復制即可。
解決方法: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;
            }
	
	
	
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn