📄 textwatermarkinfo.cpp
字号:
// TextWatermarkInfo.cpp : implementation file
#include "stdafx.h"
#include "PDFCMDSample.h"
#include "TextWatermarkInfo.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTextWatermarkInfo dialog
CTextWatermarkInfo::CTextWatermarkInfo(CWnd* pParent /*=NULL*/)
: CDialog(CTextWatermarkInfo::IDD, pParent)
{
//{{AFX_DATA_INIT(CTextWatermarkInfo)
m_String_Text = _T("");
m_String_TextFont = _T("");
m_long_TextSize = 0;
m_long_TextColorBlue = 0;
m_long_TextColorGreen = 0;
m_long_TextColorRed = 0;
m_long_TextAngle = 0;
m_double_TextOpacity = 0.0;
m_BOOL_OutlineOnly = FALSE;
m_int_TextStyle = -1;
m_XOffset = 0.0;
m_YOffset = 0.0;
m_Clearance = 0.0;
m_Position = 0.0;
m_Angle = 0;
m_PageRange = _T("");
m_Opacity = 0.0;
m_ShowOnPrint = FALSE;
m_ShowOnScreen = TRUE;
m_Background = FALSE;
m_CrossPage = FALSE;
m_Duplex = FALSE;
pPDFCMDSampleDlg = (CPDFCMDSampleDlg *)pParent;
m_OutlineOnly = FALSE;
//}}AFX_DATA_INIT
}
void CTextWatermarkInfo::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTextWatermarkInfo)
DDX_Control(pDX, IDC_COMBO3, m_EvenOdd);
DDX_Control(pDX, IDC_COMBO4, m_Anchor);
DDX_Control(pDX, IDC_COMBO2, m_Binding);
DDX_Control(pDX, IDC_COMBO1, m_Unit);
DDX_Control(pDX, IDC_COMBO_TEXTSTYLE, m_Ctrl_TextStyle);
DDX_Text(pDX, IDC_EDIT_TEXT, m_String_Text);
DDX_Text(pDX, IDC_EDIT_TEXTFONT, m_String_TextFont);
DDX_Text(pDX, IDC_EDIT_TEXTSIZE, m_long_TextSize);
DDX_Text(pDX, IDC_EDIT_TEXTCOLORBLUE, m_long_TextColorBlue);
DDX_Text(pDX, IDC_EDIT_TEXTCOLORGREEN, m_long_TextColorGreen);
DDX_Text(pDX, IDC_EDIT_TEXTCOLORRED, m_long_TextColorRed);
DDX_Text(pDX, IDC_EDIT_TEXTAngle, m_long_TextAngle);
DDX_CBIndex(pDX, IDC_COMBO_TEXTSTYLE, m_int_TextStyle);
DDX_Text(pDX, IDC_EDIT8, m_XOffset);
DDX_Text(pDX, IDC_EDIT9, m_YOffset);
DDX_Text(pDX, IDC_EDIT10, m_Clearance);
DDX_Text(pDX, IDC_EDIT11, m_Position);
DDX_Text(pDX, IDC_EDIT12, m_Angle);
DDX_Text(pDX, IDC_EDIT13, m_PageRange);
DDX_Text(pDX, IDC_EDIT14, m_Opacity);
DDX_Check(pDX, IDC_CHECK5, m_ShowOnPrint);
DDX_Check(pDX, IDC_CHECK4, m_ShowOnScreen);
DDX_Check(pDX, IDC_CHECK3, m_Background);
DDX_Check(pDX, IDC_CHECK2, m_CrossPage);
DDX_Check(pDX, IDC_CHECK1, m_Duplex);
DDX_Check(pDX, IDC_OUTLINEONLY, m_OutlineOnly);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTextWatermarkInfo, CDialog)
//{{AFX_MSG_MAP(CTextWatermarkInfo)
ON_BN_CLICKED(IDC_BUTTON1, OnAddWaterMark)
ON_CBN_SELCHANGE(IDC_COMBO1, OnUnitSelchange)
ON_CBN_SELCHANGE(IDC_COMBO3, OnEvenOddSelchange)
ON_CBN_SELCHANGE(IDC_COMBO4, OnAnchorSelchange)
ON_CBN_SELCHANGE(IDC_COMBO2, OnBindingSelchange)
ON_BN_CLICKED(IDC_ADDWATERMARK1, OnAddTextWatermark)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTextWatermarkInfo message handlers
BOOL CTextWatermarkInfo::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
AnchorEnum eAnchor;
BindingEnum eBinding;
UnitEnum eUnit;
EvenOddRangeEnum eEvenOddRange;
BSTR bstrPageRange;
VARIANT_BOOL bShowOnPrint,bBackGround,bCrossPage,bDuplex;
m_Ctrl_TextStyle.AddString("Normal");
m_Ctrl_TextStyle.AddString("Bold");
m_Ctrl_TextStyle.AddString("Italic");
m_Ctrl_TextStyle.AddString("Bold-Italic");
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_Anchor(&eAnchor);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_Binding(&eBinding);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_Unit(&eUnit);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_EvenOdd(&eEvenOddRange);
m_iUnit = eUnit;
m_iBinding = eBinding;
m_iAnchor = eAnchor;
m_iEvenOdd = eEvenOddRange;
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_XOffset(&m_XOffset);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_YOffset(&m_YOffset);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_Clearance(&m_Clearance);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_Position(&m_Position);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_Angle(&m_Angle);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_PageRange(&bstrPageRange);
m_PageRange = _com_util::ConvertBSTRToString(bstrPageRange);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_Opacity(&m_Opacity);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_ShowOnPrint(&bShowOnPrint);
m_ShowOnPrint = bShowOnPrint;
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_Background(&bBackGround);
m_Background = bBackGround;
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_CrossPageWatermark(&bCrossPage);
m_CrossPage = bCrossPage;
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->get_Duplex(&bDuplex);
m_Duplex = bDuplex;
m_Anchor.SetCurSel(eAnchor);
m_Binding.SetCurSel(eBinding);
m_Unit.SetCurSel(eUnit);
m_EvenOdd.SetCurSel(eEvenOddRange);
m_Ctrl_TextStyle.SetCurSel(m_int_TextStyle);
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CTextWatermarkInfo::OnAddWaterMark()
{
// TODO: Add your control notification handler code here
}
void CTextWatermarkInfo::OnRedo()
{
// TODO: Add your control notification handler code here
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->Redo();
}
void CTextWatermarkInfo::OnUndo()
{
// TODO: Add your control notification handler code here
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->Undo();
}
void CTextWatermarkInfo::OnUnitSelchange()
{
// TODO: Add your control notification handler code here
m_iUnit = m_Unit.GetCurSel();
}
void CTextWatermarkInfo::OnEvenOddSelchange()
{
// TODO: Add your control notification handler code here
m_iEvenOdd = m_EvenOdd.GetCurSel();
}
void CTextWatermarkInfo::OnAnchorSelchange()
{
// TODO: Add your control notification handler code here
m_iAnchor = m_Anchor.GetCurSel();
}
void CTextWatermarkInfo::OnBindingSelchange()
{
// TODO: Add your control notification handler code here
m_iBinding = m_Binding.GetCurSel();
}
void CTextWatermarkInfo::OnAddTextWatermark()
{
// TODO: Add your control notification handler code here
VARIANT_BOOL Text_Check;
HRESULT hr;
if(pPDFCMDSampleDlg->bFileOpened)
{
pPDFCMDSampleDlg->bSave = TRUE;
UpdateData(TRUE);
try
{
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_Text(m_String_Text.AllocSysString());
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_TextFont(m_String_TextFont.AllocSysString());
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_TextSize(m_long_TextSize);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_TextStyle((FontStyleEnum)m_int_TextStyle);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_TextColorRed(m_long_TextColorRed);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_TextColorGreen(m_long_TextColorGreen);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_TextColorBlue(m_long_TextColorBlue);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_Angle(m_long_TextAngle);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_Opacity(m_double_TextOpacity);
Text_Check = (VARIANT_BOOL)m_BOOL_OutlineOnly;
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_OutlineOnly(Text_Check);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_XOffset(m_XOffset);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_YOffset(m_YOffset);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_Clearance(m_Clearance);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_Position(m_Position);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_PageRange(m_PageRange.AllocSysString());
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_Opacity(m_Opacity);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_ShowOnPrint(m_ShowOnPrint);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_ShowOnScreen(m_ShowOnScreen);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_Background(m_Background);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_CrossPageWatermark(m_CrossPage);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_Duplex(m_Duplex);
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_OutlineOnly(m_OutlineOnly);
int iUnitCurSel = m_iUnit;
UnitEnum eUnit;
switch(iUnitCurSel)
{
case 0:
eUnit = Unit_Inches ;
break;
case 1:
eUnit = Unit_MM ;
break;
case 2:
eUnit = Unit_Points ;
break;
}
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_Unit(eUnit);
int iBinding = m_iBinding;
BindingEnum eBindingEnum;
switch(iBinding)
{
case 0:
eBindingEnum = BINDING_LEFT ;
break;
case 1:
eBindingEnum = BINDING_RIGHT ;
break;
case 2:
eBindingEnum = BINDING_TOP ;
break;
}
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_Binding(eBindingEnum);
int iEvenOdd = m_iEvenOdd;
EvenOddRangeEnum eEvenOdd;
switch( iEvenOdd )
{
case 0:
eEvenOdd = Range_EvenOdd ;
break;
case 1:
eEvenOdd = Range_OddOnly ;
break;
case 2:
eEvenOdd = Range_EvenOnly ;
break;
}
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_EvenOdd(eEvenOdd);
int iAnchor = m_iAnchor;
AnchorEnum eAnchor;
switch( iAnchor )
{
case 0:
eAnchor = Anchor_PageCenter ;
break;
case 1:
eAnchor = Anchor_LeftTop ;
break;
case 2:
eAnchor = Anchor_RightTop ;
break;
case 3:
eAnchor = Anchor_RightBottom ;
break;
case 4:
eAnchor = Anchor_LeftBottom ;
break;
case 5:
eAnchor = Anchor_TopEdgeCenter ;
break;
case 6:
eAnchor = Anchor_RightEdgeCenter ;
break;
case 7:
eAnchor = Anchor_BottomEdgeCenter;
break;
case 8:
eAnchor = Anchor_LeftEdgeCenter ;
break;
}
pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->put_Anchor(eAnchor);
hr = pPDFCMDSampleDlg->m_pPDFTextWatermarkInfo->AddWatermark();
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
}
}
else
{
AfxMessageBox("You must open a PDF file.");
return ;
}
if (!(pPDFCMDSampleDlg->m_CString_FileProc == (pPDFCMDSampleDlg->StaticHead + "NewPDF")))
{
try
{
pPDFCMDSampleDlg->m_pPDFFileEdit->Save("");
pPDFCMDSampleDlg->bSave = FALSE;
if(SUCCEEDED( hr ))
AfxMessageBox("Add Image Watermark successfully.");
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
}
}
else
{
pPDFCMDSampleDlg->OnFileSaveas();
if(SUCCEEDED( hr ))
AfxMessageBox("Add Image Watermark successfully.");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -