#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 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}; //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}; } SIZE PaperSize::GetPaperSize(DWORD paperType, float dpi,int orentation) { auto iter = dpiDct.find({(TwSS)paperType, dpi}); if (iter != dpiDct.end()) { if (orentation == 0)//不需要旋转 return iter->second; else if(orentation == 3)//旋转九十度 { SIZE size; size.cx = iter->second.cy; size.cy = iter->second.cx; return size; } } return {2338,3307 }; } }