// PDFPage.cpp : implementation file // #include "stdafx.h" #include "segdemo.h" #include "PDFPage.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CPDFPage property page IMPLEMENT_DYNCREATE(CPDFPage, CPropertyPage) CPDFPage::CPDFPage() : CPropertyPage(CPDFPage::IDD) { m_pPdfOptions = NULL; //{{AFX_DATA_INIT(CPDFPage) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } CPDFPage::~CPDFPage() { } void CPDFPage::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CPDFPage) DDX_Control(pDX, IDC_PDF_QFACTOR, m_edtQFactor); DDX_Control(pDX, IDC_PDF_TEXT2BITCODER, m_cmbText2BitCoder); DDX_Control(pDX, IDC_PDF_PICTURECODER, m_cmbPictureCoder); DDX_Control(pDX, IDC_PDF_MASKCODER, m_cmbMaskCoder); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CPDFPage, CPropertyPage) //{{AFX_MSG_MAP(CPDFPage) ON_CBN_SELCHANGE(IDC_PDF_PICTURECODER, OnSelChangePdfPictureCoder) ON_EN_KILLFOCUS(IDC_PDF_QFACTOR, OnKillFocusPdfQFactor) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPDFPage message handlers BOOL CPDFPage::OnInitDialog() { CPropertyPage::OnInitDialog(); UpdateData(TRUE); // Mask compression types m_cmbMaskCoder.ResetContent(); m_cmbMaskCoder.AddString(TEXT("ZIP 1-bit")); m_cmbMaskCoder.AddString(TEXT("LZW 1-bit")); m_cmbMaskCoder.AddString(TEXT("Fax G3(1D)")); m_cmbMaskCoder.AddString(TEXT("Fax G3(2D)")); m_cmbMaskCoder.AddString(TEXT("Fax G4")); m_cmbMaskCoder.AddString(TEXT("JBIG2")); // Picture compression types m_cmbPictureCoder.ResetContent(); m_cmbPictureCoder.AddString(TEXT("JPEG")); m_cmbPictureCoder.AddString(TEXT("JPEG YUV 4:2:2")); m_cmbPictureCoder.AddString(TEXT("JPEG YUV 4:1:1")); m_cmbPictureCoder.AddString(TEXT("JPEG Progressive")); m_cmbPictureCoder.AddString(TEXT("JPEG Progressive YUV 4:2:2")); m_cmbPictureCoder.AddString(TEXT("JPEG Progressive YUV 4:1:1")); m_cmbPictureCoder.AddString(TEXT("ZIP")); m_cmbPictureCoder.AddString(TEXT("LZW")); // Text 2 bit Colored compression types m_cmbText2BitCoder.ResetContent(); m_cmbText2BitCoder.AddString(TEXT("ZIP 2-bit")); m_cmbText2BitCoder.AddString(TEXT("LZW 2-bit")); if(!m_pPdfOptions) return TRUE; m_cmbMaskCoder.SetCurSel(m_pPdfOptions->nMaskCoder); m_cmbPictureCoder.SetCurSel(m_pPdfOptions->nPictureCoder); m_cmbText2BitCoder.SetCurSel(m_pPdfOptions->nTextCoder2Bit); CString strVal; strVal.Format(TEXT("%d"), m_pPdfOptions->nPictureQFactor); m_edtQFactor.SetWindowText(strVal); ChangeQFactorStatus(); UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CPDFPage :: ChangeQFactorStatus() { int nCoder; nCoder = m_cmbPictureCoder.GetCurSel(); if ((nCoder > 5)) m_edtQFactor.EnableWindow(FALSE); else m_edtQFactor.EnableWindow(TRUE); } void CPDFPage::OnSelChangePdfPictureCoder() { ChangeQFactorStatus(); } void CPDFPage::OnOK() { CString strVal; UpdateData(TRUE); m_pPdfOptions->nMaskCoder = m_cmbMaskCoder.GetCurSel(); m_pPdfOptions->nPictureCoder = m_cmbPictureCoder.GetCurSel(); m_pPdfOptions->nTextCoder2Bit = m_cmbText2BitCoder.GetCurSel(); m_edtQFactor.GetWindowText(strVal); m_pPdfOptions->nPictureQFactor = _ttoi(strVal); UpdateData(FALSE); CPropertyPage::OnOK(); } void CPDFPage::OnKillFocusPdfQFactor() { CString strVal; m_edtQFactor.GetWindowText(strVal); int nOldPictureQFactor = m_pPdfOptions->nPictureQFactor; m_pPdfOptions->nPictureQFactor = _ttoi(strVal); if ((m_pPdfOptions->nPictureQFactor < 0) || (m_pPdfOptions->nPictureQFactor > 255)) { if (m_pPdfOptions->nPictureCoder > 5) { m_pPdfOptions->nPictureQFactor = 2; strVal.Format(TEXT("%d"), m_pPdfOptions->nPictureQFactor); m_edtQFactor.SetWindowText(strVal); } else { MessageBox(TEXT("Please enter a number between 0 and 255 for the ") TEXT("PDF colored images compression quality factor."), TEXT("Invalid Value"), MB_OK); m_pPdfOptions->nPictureQFactor = nOldPictureQFactor; strVal.Format(TEXT("%d"), nOldPictureQFactor); m_edtQFactor.SetWindowText(strVal); } } }