twain3.0/huagao/Device/PaperSize.cpp

69 lines
1.8 KiB
C++

#include "stdafx.h"
#include "PaperSize.h"
using namespace std;
namespace Device {
PaperSize::PaperSize()
{
InitPaperMap();
}
PaperSize::~PaperSize()
{
}
void PaperSize::InitPaperMap()
{
papersize.insert({ A3,CSize(297,420) });
papersize.insert({ A4,CSize(210,297) });
papersize.insert({ A5,CSize(148,210) });
papersize.insert({ A6,CSize(105,148) });
papersize.insert({ B4,CSize(250,353) });
papersize.insert({ B5,CSize(176,250) });
papersize.insert({ B6,CSize(125,176) });
papersize.insert({ MaxSize,CSize(297,420 * 2) });
papersize.insert({ USStatement,CSize(297,420 * 1.5) });
papersize.insert({ USLetter,CSize(216,279) });
papersize.insert({ USLegal,CSize(216,356) });
papersize.insert({ USLedger,CSize(279,432) });
papersize.insert({ None,CSize(297,420) });
papersize.insert({ K8,CSize(270,390) });
papersize.insert({ K16,CSize(190,270) });
}
CSize PaperSize::GetPaperSize(DWORD paperType, float dpi,int orentation)
{
if (papersize.find((TwSS)paperType) != papersize.end() && (dpi > 99 && dpi < 601)) {
CSize resize(2338,3307);
if (orentation == 0){
resize.cx = papersize[(TwSS)paperType].cx * dpi / 25.4;
resize.cy = papersize[(TwSS)paperType].cy * dpi / 25.4;
return resize;
}
else{
resize.cy = papersize[(TwSS)paperType].cx * dpi / 25.4;
resize.cx = papersize[(TwSS)paperType].cy * dpi / 25.4;
return resize;
}
}
return CSize(2338, 3307);
//auto iter = dpiDct.find({(TwSS)paperType, dpi});
//if (iter != dpiDct.end()) {
// if (orentation == 0)//²»ÐèÒªÐýת
// return iter->second;
// else if(orentation == 3)//Ðýת¾ÅÊ®¶È
// {
// CSize size;
// size.cx = iter->second.cy;
// size.cy = iter->second.cx;
// return size;
// }
//}
//return CSize(2338, 3307);
}
}