⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textwatermarkinfo.cpp

📁 i am server im imi mim im im
💻 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 + -