qt-correction-tool/hgdev/PaperSize.cpp

251 lines
9.7 KiB
C++
Raw Permalink Blame History

#include "PaperSize.h"
using namespace std;
namespace Device {
PaperSize::PaperSize()
{
InitPaperMap();
}
PaperSize::~PaperSize()
{
}
void PaperSize::InitPaperMap()
{
// //!< <20><><EFBFBD><EFBFBD>Ӧ
// dpiDct[{None, 50.0f}] = { 594, 898 };
// dpiDct[{None, 75.0f}] = { 892, 1347 };
// dpiDct[{None, 100.0f}] = { 1189, 1795 };
// dpiDct[{None, 150.0f}] = {1784, 2693};
// dpiDct[{None, 200.0f}] = {2338, 3307};
// dpiDct[{None, 240.0f}] = {2854, 4308};
// dpiDct[{None, 300.0f}] = {3567, 5385};
// dpiDct[{None, 400.0f}] = {4756, 7180};
// dpiDct[{None, 600.0f}] = {7134, 10770};
// //A3
// dpiDct[{A3, 50.0f}] = {585, 827};
// dpiDct[{A3, 75.0f}] = {877, 1240};
// dpiDct[{A3, 100.0f}] = {1169, 1653};
// dpiDct[{A3, 150.0f}] = {1753, 2480};
// dpiDct[{A3, 200.0f}] = {2338, 3307};
// dpiDct[{A3, 240.0f}] = {2806, 3968};
// dpiDct[{A3, 300.0f}] = {3507, 4960};
// dpiDct[{A3, 400.0f}] = {4677, 6614};
// dpiDct[{A3, 600.0f}] = {7015, 9921};
// //add lyc 2019 12 18
// //A4
// dpiDct[{A4, 50.0f}] = {413, 585};
// dpiDct[{A4, 75.0f}] = {620, 877};
// dpiDct[{A4, 100.0f}] = {826, 1169};
// dpiDct[{A4, 150.0f}] = {1240, 1753};
// dpiDct[{A4, 200.0f}] = {1653, 2338};
// dpiDct[{A4, 240.0f}] = {1984, 2806};
// dpiDct[{A4, 300.0f}] = {2480, 3507};
// dpiDct[{A4, 400.0f}] = {3307, 4677};
// dpiDct[{A4, 600.0f}] = {4960, 7015};
// //add lyc 2019 12 18 A5
// dpiDct[{A5, 50.0f}] = {291, 413};
// dpiDct[{A5, 75.0f}] = {437, 620};
// dpiDct[{A5, 100.0f}] = {582, 826};
// dpiDct[{A5, 150.0f}] = {874, 1240};
// dpiDct[{A5, 200.0f}] = {1165, 1653};
// dpiDct[{A5, 240.0f}] = {1398, 1984};
// dpiDct[{A5, 300.0f}] = {1748, 2480};
// dpiDct[{A5, 400.0f}] = {2330, 3307};
// dpiDct[{A5, 600.0f}] = {3496, 4960};
// //add lyc 2019 12 18 A6
// dpiDct[{A6, 50.0f}] = {207, 291};
// dpiDct[{A6, 75.0f}] = {310, 437};
// dpiDct[{A6, 100.0f}] = {413, 582};
// dpiDct[{A6, 150.0f}] = {620, 874};
// dpiDct[{A6, 200.0f}] = {826, 1165};
// dpiDct[{A6, 240.0f}] = {992, 1398};
// dpiDct[{A6, 300.0f}] = {1240, 1748};
// dpiDct[{A6, 400.0f}] = {1653, 2330};
// dpiDct[{A6, 600.0f}] = {2480, 3496};
// //1.5<EFBFBD><EFBFBD>A3
// dpiDct[{USStatement, 50.0f}] = {585, (LONG)(827*1.5)};
// dpiDct[{USStatement, 75.0f}] = {877, (LONG)(1240*1.5)};
// dpiDct[{USStatement, 100.0f}] = {1169, (LONG)(1653*1.5)};
// dpiDct[{USStatement, 150.0f}] = {1753, (LONG)(2480*1.5)};
// dpiDct[{USStatement, 200.0f}] = {2338, (LONG)(3307*1.5)};
// dpiDct[{USStatement, 240.0f}] = {2806, (LONG)(3968*1.5)};
// dpiDct[{USStatement, 300.0f}] = {3507, (LONG)(4960*1.5)};
// dpiDct[{USStatement, 400.0f}] = {4677, (LONG)(6614*1.5)};
// dpiDct[{USStatement, 600.0f}] = {7015, (LONG)(9921*1.5)};
// //add lyc 2019 12 18 <20><><EFBFBD>ĸ壬2<E5A3AC><32>A3
// #ifdef G300SCANNER
// dpiDct[{MaxSize, 50.0f}] = {413, 585);
// dpiDct[{MaxSize, 75.0f}] = {620, 877);
// dpiDct[{MaxSize, 100.0f}] = {826, 1169*2};
// dpiDct[{MaxSize, 150.0f}] = {1240, 1753*2};
// dpiDct[{MaxSize, 200.0f}] = {1653, 2338*2};
// dpiDct[{MaxSize, 240.0f}] = {1984, 2806*2};
// dpiDct[{MaxSize, 300.0f}] = {2480, 3507*2};
// dpiDct[{MaxSize, 400.0f}] = {3307, 4677*2};
// dpiDct[{MaxSize, 600.0f}] = {4960, 7015*2};
// #elif defined(G400SCANNER)//G400 ֧<><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ1.5<EFBFBD><EFBFBD>A3
// dpiDct[{MaxSize, 50.0f}] = {585, 1653};
// dpiDct[{MaxSize, 75.0f}] = {877, 2480};
// dpiDct[{MaxSize, 100.0f}] = {1169, 1653 * 1.5};
// dpiDct[{MaxSize, 150.0f}] = {1753, 2480 * 1.5};
// dpiDct[{MaxSize, 200.0f}] = {2338, 3307 * 1.5};
// dpiDct[{MaxSize, 240.0f}] = {2806, 3968 * 1.5};
// dpiDct[{MaxSize, 300.0f}] = {3507, 4960 * 1.5};
// dpiDct[{MaxSize, 400.0f}] = {4677, 6614 * 1.5};
// dpiDct[{MaxSize, 600.0f}] = {7015, 9921 * 1.5};
// #else
// dpiDct[{MaxSize, 50.0f}] = {585, 1653};
// dpiDct[{MaxSize, 75.0f}] = {877, 2480};
// dpiDct[{MaxSize, 100.0f}] = {1169, 1653 * 2};
// dpiDct[{MaxSize, 150.0f}] = {1753, 2480 * 2};
// dpiDct[{MaxSize, 200.0f}] = {2338, 3307 * 2};
// dpiDct[{MaxSize, 240.0f}] = {2806, 3968 * 2};
// dpiDct[{MaxSize, 300.0f}] = {3507, 4960 * 2};
// dpiDct[{MaxSize, 400.0f}] = {4677, 6614 * 2};
// dpiDct[{MaxSize, 600.0f}] = {7015, 9921 * 2};
// #endif
// //add lyc 2019 12 18 B4
// dpiDct[{B4, 50.0f}] = {506, 717};
// dpiDct[{B4, 75.0f}] = {759, 1075};
// dpiDct[{B4, 100.0f}] = {1011, 1433};
// dpiDct[{B4, 150.0f}] = {1517, 2149};
// dpiDct[{B4, 200.0f}] = {2023, 2866};
// dpiDct[{B4, 240.0f}] = {2428, 3439};
// dpiDct[{B4, 300.0f}] = {3035, 4299};
// dpiDct[{B4, 400.0f}] = {4047, 5732};
// dpiDct[{B4, 600.0f}] = {6070, 8598};
// //add lyc 2019 12 18 B5
// dpiDct[{B5, 50.0f}] = {358, 506};
// dpiDct[{B5, 75.0f}] = {537, 759};
// dpiDct[{B5, 100.0f}] = {716, 1011};
// dpiDct[{B5, 150.0f}] = {1074, 1517};
// dpiDct[{B5, 200.0f}] = {1433, 2023};
// dpiDct[{B5, 240.0f}] = {1719, 2428};
// dpiDct[{B5, 300.0f}] = {2149, 3035};
// dpiDct[{B5, 400.0f}] = {2866, 4047};
// dpiDct[{B5, 600.0f}] = {4299, 6070};
// //add lyc 2019 12 18 B6
// dpiDct[{B6, 50.0f}] = {252, 358};
// dpiDct[{B6, 75.0f}] = {378, 537};
// dpiDct[{B6, 100.0f}] = {503, 716};
// dpiDct[{B6, 150.0f}] = {755, 1074};
// dpiDct[{B6, 200.0f}] = {1007, 1433};
// dpiDct[{B6, 240.0f}] = {1209, 1719};
// dpiDct[{B6, 300.0f}] = {1511, 2149};
// dpiDct[{B6, 400.0f}] = {2015, 2866};
// dpiDct[{B6, 600.0f}] = {3023, 4299};
// //add lyc 2019 12 18 DOUBLE LETTER
// dpiDct[{USLedger, 50.0f}] = {550, 850};
// dpiDct[{USLedger, 75.0f}] = {825, 1275};
// dpiDct[{USLedger, 100.0f}] = {1100, 1700};
// dpiDct[{USLedger, 150.0f}] = {1650, 2550};
// dpiDct[{USLedger, 200.0f}] = {2200, 3400};
// dpiDct[{USLedger, 240.0f}] = {2640, 4080};
// dpiDct[{USLedger, 300.0f}] = {3300, 5100};
// dpiDct[{USLedger, 400.0f}] = {4400, 6800};
// dpiDct[{USLedger, 600.0f}] = {6600, 10200};
// //add lyc 2019 12 18 LETTER
// dpiDct[{USLetter, 50.0f}] = {425, 550};
// dpiDct[{USLetter, 75.0f}] = {638, 825};
// dpiDct[{USLetter, 100.0f}] = {850, 1100};
// dpiDct[{USLetter, 150.0f}] = {1275, 1650};
// dpiDct[{USLetter, 200.0f}] = {1700, 2200};
// dpiDct[{USLetter, 240.0f}] = {2040, 2640};
// dpiDct[{USLetter, 300.0f}] = {2550, 3300};
// dpiDct[{USLetter, 400.0f}] = {3400, 4400};
// dpiDct[{USLetter, 600.0f}] = {5100, 6600};
// //add lyc 2019 12 18 LETTER
// dpiDct[{USLegal, 50.0f}] = {425, 700};
// dpiDct[{USLegal, 75.0f}] = {638, 1050};
// dpiDct[{USLegal, 100.0f}] = {850, 1400};
// dpiDct[{USLegal, 150.0f}] = {1275, 2100};
// dpiDct[{USLegal, 200.0f}] = {1700, 2800};
// dpiDct[{USLegal, 240.0f}] = {2040, 3360};
// dpiDct[{USLegal, 300.0f}] = {2550, 4200};
// dpiDct[{USLegal, 400.0f}] = {3400, 5600};
// dpiDct[{USLegal, 600.0f}] = {5100, 8400};
dpiDct_100.insert({ A3,hgsize{297,420} });
dpiDct_100.insert({ A4,hgsize{210,297} });
dpiDct_100.insert({ A5,hgsize{148,210} });
dpiDct_100.insert({ A6,hgsize{105,148} });
dpiDct_100.insert({ B4,hgsize{250,353} });
dpiDct_100.insert({ B5,hgsize{176,250} });
dpiDct_100.insert({ B6,hgsize{125,176} });
dpiDct_100.insert({ MaxSize,hgsize{297,420 * 2} });
dpiDct_100.insert({ USStatement,hgsize{297,long(420 * 1.5)} });
dpiDct_100.insert({ USLetter,hgsize{216,279} });
dpiDct_100.insert({ USLegal,hgsize{216,356} });
dpiDct_100.insert({ USLedger,hgsize{279,432} });
dpiDct_100.insert({ None,hgsize{297,420} });
dpiDct_400.insert({ A3,hgsize{297,420} });
dpiDct_400.insert({ A4,hgsize{210,297} });
dpiDct_400.insert({ A5,hgsize{148,210} });
dpiDct_400.insert({ A6,hgsize{105,148} });
dpiDct_400.insert({ B4,hgsize{250,353} });
dpiDct_400.insert({ B5,hgsize{176,250} });
dpiDct_400.insert({ B6,hgsize{125,176} });
dpiDct_400.insert({ MaxSize,hgsize{297,long(420 * 1.5)} });
dpiDct_400.insert({ USStatement,hgsize{297,long(420 * 1.5)} });
dpiDct_400.insert({ USLetter,hgsize{216,279} });
dpiDct_400.insert({ USLegal,hgsize{216,356} });
dpiDct_400.insert({ USLedger,hgsize{279,432} });
dpiDct_400.insert({ None,hgsize{297,420} });
dpiDct_300.insert({ A4,hgsize{210,297} });
dpiDct_300.insert({ A5,hgsize{148,210} });
dpiDct_300.insert({ A6,hgsize{105,148} });
dpiDct_300.insert({ B5,hgsize{176,250} });
dpiDct_300.insert({ B6,hgsize{125,176} });
dpiDct_300.insert({ MaxSize,hgsize{210,long(297 * 2)} });
dpiDct_300.insert({ USStatement,hgsize{210,long(297 * 1.5)} });
dpiDct_300.insert({ USLetter,hgsize{216,279} });
dpiDct_300.insert({ USLegal,hgsize{216,356} });
dpiDct_300.insert({ None,hgsize{210,297} });
}
hgsize PaperSize::GetPaperSize(DWORD paperType, float dpi,int orentation,ScannerSerial serial)
{
std::map<TwSS, hgsize> papersize ;
if(serial == ScannerSerial::G10039Serial || serial == ScannerSerial::G20039Serial || serial == ScannerSerial::G100Serial || serial == ScannerSerial::G200Serial)
papersize = dpiDct_100;
else if(serial == ScannerSerial::G300Serial)
papersize = dpiDct_300;
else
papersize = dpiDct_400;
hgsize resize(0,0);
if(serial == ScannerSerial::G300Serial)
resize=hgsize{1654,2338};
else
resize=hgsize{2338, 3307};
if (papersize.find((TwSS)paperType) != papersize.end() && (dpi > 99 && dpi < 601)) {
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 resize;
}
}