#include "PaperSize.h" using namespace std; namespace Device { PaperSize::PaperSize() { InitPaperMap(); } PaperSize::~PaperSize() { } void PaperSize::InitPaperMap() { // //!< ����Ӧ // 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��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 ���ĸ壬2��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 ֧��������Ϊ1.5��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 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; } }