📄 pdfcmdsampledlg.cpp
字号:
m_pPDFDocInfo->DeleteCustomDocInfo(bstrdeldey);
}
for(int ai=dicount;ai<getdocinfodlg.m_cdocinfocount;ai++)
{
bSave = TRUE;
BSTR bstradd1=_bstr_t(getdocinfodlg.titlename1[ai]);
BSTR bstradd2=_bstr_t(getdocinfodlg.titlename2[ai]);
m_pPDFDocInfo->AddCustomDocInfo(bstradd1,bstradd2);
}
CString CompareS;
m_pPDFDocInfo->get_Title(&titlename);
try
{
CompareS = _com_util::ConvertBSTRToString(titlename);
}
catch (_com_error e)
{
e.Description();
}
if (CompareS!=getdocinfodlg.m_title)
{
bSave = TRUE;
m_pPDFDocInfo->put_Title(_bstr_t(getdocinfodlg.m_title));
}
hr=m_pPDFDocInfo->get_Author(&titlename);
try
{
CompareS = _com_util::ConvertBSTRToString(titlename);
}
catch (_com_error e)
{
e.Description();
}
if (CompareS!=getdocinfodlg.m_author)
{
bSave = TRUE;
m_pPDFDocInfo->put_Author(_bstr_t(getdocinfodlg.m_author));
}
hr=m_pPDFDocInfo->get_Keyword(&titlename);
try
{
CompareS = _com_util::ConvertBSTRToString(titlename);
}
catch (_com_error e)
{
e.Description();
}
if (CompareS!=getdocinfodlg.m_keyword)
{
bSave = TRUE;
m_pPDFDocInfo->put_Keyword(_bstr_t(getdocinfodlg.m_keyword));
}
m_pPDFDocInfo->get_Subject(&titlename);
try
{
CompareS = _com_util::ConvertBSTRToString(titlename);
}
catch (_com_error e)
{
e.Description();
}
if (CompareS!=getdocinfodlg.m_keyword)
{
bSave = TRUE;
m_pPDFDocInfo->put_Subject(_bstr_t(getdocinfodlg.m_subject));
}
}
}
else
AfxMessageBox("You have not open a file!");
}
void CPDFCMDSampleDlg::OnDocuOpenoption()
{
// TODO: Add your command handler code here
LayoutEnum enumlayout;
InitWindowEnum enuminitwindow;
NavigationPaneEnum enumnavigationpane;
MagnificationEnum enumMagnification;
COpenOptionSetting openoptiondlg;
try
{
m_pPDFOpenOptionSetting->get_InitialPage(&openoptiondlg.m_initialpage);
m_pPDFOpenOptionSetting->get_Layout(&enumlayout);
openoptiondlg.llayout = enumlayout;
m_pPDFOpenOptionSetting->get_InitialWindow(&enuminitwindow);
openoptiondlg.linitwindow = enuminitwindow;
m_pPDFOpenOptionSetting->get_NavigationPane(&enumnavigationpane);
openoptiondlg.lnavigationpane = enumnavigationpane;
m_pPDFOpenOptionSetting->get_HideControl((VARIANT_BOOL*)&openoptiondlg.m_hidecontrol);
m_pPDFOpenOptionSetting->get_HideMenubar((VARIANT_BOOL*)&openoptiondlg.m_hidemenubar);
m_pPDFOpenOptionSetting->get_HideToolbar((VARIANT_BOOL*)&openoptiondlg.m_hidetoolbar);
m_pPDFOpenOptionSetting->get_ShowDocumentTitle((VARIANT_BOOL*)&openoptiondlg.m_showdoctitle);
m_pPDFOpenOptionSetting->get_Magnification(&(openoptiondlg.lmagnification));
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
}
if(openoptiondlg.m_hidecontrol > 0)
openoptiondlg.m_hidecontrol = 1;
if(openoptiondlg.m_hidemenubar > 0)
openoptiondlg.m_hidemenubar = 1;
if(openoptiondlg.m_hidetoolbar > 0)
openoptiondlg.m_hidetoolbar = 1;
if(openoptiondlg.m_showdoctitle > 0)
openoptiondlg.m_showdoctitle = 1;
if(openoptiondlg.DoModal() == IDOK)
{
switch(openoptiondlg.llayout)
{
case 0:
enumlayout = Layout_Default;
break;
case 1:
enumlayout = Layout_SinglePage;
break;
case 2:
enumlayout = Layout_ContinuousPage;
break;
case 3:
enumlayout = Layout_FacingPage;
break;
}
switch(openoptiondlg.linitwindow)
{
case 0:
enuminitwindow = IW_Default;
break;
case 1:
enuminitwindow = IW_FitWindow;
break;
case 2:
enuminitwindow = IW_CenterWindow;
break;
case 3:
enuminitwindow = IW_FullScreen;
break;
}
switch(openoptiondlg.lnavigationpane)
{
case 0:
enumnavigationpane = NP_None;
break;
case 1:
enumnavigationpane = NP_Bookmark;
break;
case 2:
enumnavigationpane = NP_Thumbnail;
break;
}
switch(openoptiondlg.lmagnification)
{
case 0:
enumMagnification = Scale_Default;
break;
case 1:
enumMagnification = Scale_FitVisible;
break;
case 2:
enumMagnification = Scale_FitWidth;
break;
case 3:
enumMagnification = Scale_FitInWindow;
break;
case 4:
enumMagnification = Scale_25;
break;
case 5:
enumMagnification = Scale_50;
break;
case 6:
enumMagnification = Scale_75;
break;
case 7:
enumMagnification = Scale_100;
break;
case 8:
enumMagnification = Scale_125;
break;
case 9:
enumMagnification = Scale_150;
break;
case 10:
enumMagnification = Scale_200;
break;
case 11:
enumMagnification = Scale_400;
break;
case 12:
enumMagnification = Scale_800;
break;
case 13:
enumMagnification = Scale_1600;
break;
}
try
{
m_pPDFOpenOptionSetting->put_InitialPage(openoptiondlg.m_initialpage);
m_pPDFOpenOptionSetting->put_Layout(enumlayout);
m_pPDFOpenOptionSetting->put_InitialWindow(enuminitwindow);
m_pPDFOpenOptionSetting->put_NavigationPane(enumnavigationpane);
m_pPDFOpenOptionSetting->put_HideControl(openoptiondlg.m_hidecontrol);
m_pPDFOpenOptionSetting->put_HideMenubar(openoptiondlg.m_hidemenubar);
m_pPDFOpenOptionSetting->put_HideToolbar(openoptiondlg.m_hidetoolbar);
m_pPDFOpenOptionSetting->put_ShowDocumentTitle(openoptiondlg.m_showdoctitle);
m_pPDFOpenOptionSetting->put_Magnification(enumMagnification);
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
}
}
}
void CPDFCMDSampleDlg::OnDocuSecurity()
{
// TODO: Add your command handler code here
CSecuritySetting securitydlg(m_pPDFSecuritySetting);
if(bFileOpened)
{
BSTR bstropenpassword=NULL,bstrownerpassword=NULL;
long lpcan=0;
EncryptionLevelEnum enumencryptionlevel;
ChangesAllowedEnum enumchangeallowed;
PrintingAllowedEnum enumprintallowed;
int isel=0;
char strtitle[2048] = {0} ;
VARIANT_BOOL vbr=0;
try
{
m_pPDFSecuritySetting->get_open_password(&bstropenpassword);
m_pPDFSecuritySetting->get_owner_password(&bstrownerpassword);
wsprintf( strtitle, "%S",bstropenpassword);
CString passwstr(bstrownerpassword);
securitydlg.m_openpassword = strtitle;
securitydlg.m_ownerpassword = passwstr;
m_pPDFSecuritySetting->get_canAnnotate(&vbr);
securitydlg.m_canannotate = vbr;
m_pPDFSecuritySetting->get_canContentAccessForVisuallyImpaired(&vbr);
securitydlg.m_cancontentaforvi = vbr;
m_pPDFSecuritySetting->get_canContentCopyAndExtraction(&vbr);
securitydlg.m_cancontentce = vbr;
m_pPDFSecuritySetting->get_canModify(&vbr);
securitydlg.m_canmodify = vbr;
m_pPDFSecuritySetting->get_canCopy(&vbr);
securitydlg.m_cancopy = vbr;
m_pPDFSecuritySetting->get_canPrint(&vbr);
securitydlg.m_canprint = vbr;
m_pPDFSecuritySetting->get_encryptionLevel(&enumencryptionlevel);
securitydlg.lencryptionlevel = enumencryptionlevel;
m_pPDFSecuritySetting->get_changesAllowed(&enumchangeallowed);
securitydlg.lchangeallowed = enumchangeallowed;
m_pPDFSecuritySetting->get_printingAllowed(&enumprintallowed);
securitydlg.lprintallowed = enumprintallowed;
UpdateData(false);
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
}
if(securitydlg.DoModal() == IDOK)
{
try
{
switch(securitydlg.lencryptionlevel)
{
case 0:
enumencryptionlevel = EL_40Bits;
break;
case 1:
enumencryptionlevel = EL_128Bits;
break;
}
switch (securitydlg.lchangeallowed)
{
case 0:
enumchangeallowed = CA_NOT_ALLOWED;
break;
case 1:
enumchangeallowed = CA_ONLY_DOCUMENT;
break;
case 2:
enumchangeallowed = CA_ONLY_FORM;
break;
case 3:
enumchangeallowed = CA_COMMENT_AUTHOR;
break;
case 4:
enumchangeallowed = CA_GENERAL;
break;
}
switch (securitydlg.lprintallowed)
{
case 0:
enumprintallowed = PA_NOT_ALLOWED;
break;
case 1:
enumprintallowed = PA_LOW_RESOLUTION;
break;
case 2:
enumprintallowed = PA_FULL_ALLOWED;
break;
}
m_pPDFSecuritySetting->put_open_password(_bstr_t(securitydlg.m_openpassword));
m_pPDFSecuritySetting->put_owner_password(_bstr_t(securitydlg.m_ownerpassword));
m_pPDFSecuritySetting->put_canAnnotate(securitydlg.m_canannotate);
m_pPDFSecuritySetting->put_canContentAccessForVisuallyImpaired(securitydlg.m_cancontentaforvi);
m_pPDFSecuritySetting->put_canContentCopyAndExtraction(securitydlg.m_cancontentce);
m_pPDFSecuritySetting->put_canCopy(securitydlg.m_cancopy);
m_pPDFSecuritySetting->put_canModify(securitydlg.m_canmodify);
m_pPDFSecuritySetting->put_canPrint(securitydlg.m_canprint);
m_pPDFSecuritySetting->put_encryptionLevel(enumencryptionlevel);
m_pPDFSecuritySetting->put_changesAllowed(enumchangeallowed);
m_pPDFSecuritySetting->put_printingAllowed(enumprintallowed);
m_pPDFSecuritySetting->SetSecurity();
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
}
}
}
}
void CPDFCMDSampleDlg::OnPageNew()
{
// TODO: Add your command handler code here
long a = -1 ;
if(bFileOpened)
{
bSave = TRUE;
try
{
m_pPDFPageEdit->CreateNewPage(-1,600,800);
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
}
}
else
{
AfxMessageBox("You have to open or create a PDF file before creating a new page!");
}
}
void CPDFCMDSampleDlg::OnPageOpen()
{
// TODO: Add your command handler code here
long lPageNo;
CPageEditDlg PageEditDlg;
if( bFileOpened )
{
if(PageEditDlg.DoModal()==IDOK)
{
UpdateData(TRUE);
lPageNo=PageEditDlg.m_pageno;
}
try
{
m_pPDFPageEdit->Open(lPageNo);
bPageOpened=TRUE;
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
else
{
AfxMessageBox("You must open a PDF file.");
return;
}
}
void CPDFCMDSampleDlg::OnPageRotate()
{
// TODO: Add your command handler code here
if(bFileOpened&&bPageOpened)
{
try
{
m_pPDFPageEdit->Rotate(90);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
else
AfxMessageBox("You have not open a file or a page!");
}
void CPDFCMDSampleDlg::OnPageCrop()
{
// TODO: Add your command handler code here
CCropPageDlg croppagedlg;
if(bFileOpened&&bPageOpened)
{
if(croppagedlg.DoModal() == IDOK)
{
try
{
m_pPDFPageEdit->Crop(croppagedlg.m_left,croppagedlg.m_top,
croppagedlg.m_right,croppagedlg.m_button);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
}
else
AfxMessageBox("You have not open a file or a page!");
}
void CPDFCMDSampleDlg::OnPageInsert()
{
// TODO: Add your command handler code here
CFileDialog FileDlg( TRUE, _T("pdf"), NULL, OFN_FILEMUSTEXIST|OFN_OVERWRITEPROMPT, _T("PDF Files (*.pdf)|*.pdf||") ) ;
_bstr_t Path;
m_pSrcdoc = m_pPDFCmd->CreateFileEditInterface();
m_pSrcPage = m_pSrcdoc->CreatePageEditInterface();
if(bFileOpened&&bPageOpened)
{
if(FileDlg.DoModal())
{
if(!FileDlg.GetPathName().IsEmpty())
{
Path = FileDlg.GetPathName();
m_pSrcdoc->Open(Path,"","");
m_pSrcPage->Open(0);
}
}
try
{
m_pPDFPageEdit->Insert(m_pSrcPage);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
if(m_pSrcdoc != NULL)
{
try
{
m_pSrcPage->Close();
m_pSrcPage.Release();
m_pSrcdoc->Close();
m_pSrcdoc.Release();
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
}
UpdateData(FALSE);
}
}
else
{
AfxMessageBox("You must open a PDF file for insertting or open a page of the source file.");
return;
}
}
void CPDFCMDSampleDlg::OnPageDelete()
{
// TODO: Add your command handler code here
if(bFileOpened&&bPageOpened)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -