#include "stdafx.h" #include "PaperSize.h" using namespace std; namespace Device { PaperSize::PaperSize() { InitPaperMap(); } PaperSize::~PaperSize() { } void PaperSize::InitPaperMap() { //!< 自适应 dpiDct[{None, 50.0f}] = CSize(594, 898); dpiDct[{None, 75.0f}] = CSize(892, 1347); dpiDct[{None, 100.0f}] = CSize(1189, 1795); dpiDct[{None, 150.0f}] = CSize(1784, 2693); dpiDct[{None, 200.0f}] = CSize(2338, 3307); dpiDct[{None, 240.0f}] = CSize(2854, 4308); dpiDct[{None, 300.0f}] = CSize(3567, 5385); dpiDct[{None, 400.0f}] = CSize(4756, 7180); dpiDct[{None, 600.0f}] = CSize(7134, 10770); //A3 dpiDct[{A3, 50.0f}] = CSize(585, 827); dpiDct[{A3, 75.0f}] = CSize(877, 1240); dpiDct[{A3, 100.0f}] = CSize(1169, 1653); dpiDct[{A3, 150.0f}] = CSize(1753, 2480); dpiDct[{A3, 200.0f}] = CSize(2338, 3307); dpiDct[{A3, 240.0f}] = CSize(2806, 3968); dpiDct[{A3, 300.0f}] = CSize(3507, 4960); dpiDct[{A3, 400.0f}] = CSize(4677, 6614); dpiDct[{A3, 600.0f}] = CSize(7015, 9921); //add lyc 2019 12 18 //A4 dpiDct[{A4, 50.0f}] = CSize(413, 585); dpiDct[{A4, 75.0f}] = CSize(620, 877); dpiDct[{A4, 100.0f}] = CSize(826, 1169); dpiDct[{A4, 150.0f}] = CSize(1240, 1753); dpiDct[{A4, 200.0f}] = CSize(1653, 2338); dpiDct[{A4, 240.0f}] = CSize(1984, 2806); dpiDct[{A4, 300.0f}] = CSize(2480, 3507); dpiDct[{A4, 400.0f}] = CSize(3307, 4677); dpiDct[{A4, 600.0f}] = CSize(4960, 7015); //add lyc 2019 12 18 A5 dpiDct[{A5, 50.0f}] = CSize(291, 413); dpiDct[{A5, 75.0f}] = CSize(437, 620); dpiDct[{A5, 100.0f}] = CSize(582, 826); dpiDct[{A5, 150.0f}] = CSize(874, 1240); dpiDct[{A5, 200.0f}] = CSize(1165, 1653); dpiDct[{A5, 240.0f}] = CSize(1398, 1984); dpiDct[{A5, 300.0f}] = CSize(1748, 2480); dpiDct[{A5, 400.0f}] = CSize(2330, 3307); dpiDct[{A5, 600.0f}] = CSize(3496, 4960); //add lyc 2019 12 18 A6 dpiDct[{A6, 50.0f}] = CSize(207, 291); dpiDct[{A6, 75.0f}] = CSize(310, 437); dpiDct[{A6, 100.0f}] = CSize(413, 582); dpiDct[{A6, 150.0f}] = CSize(620, 874); dpiDct[{A6, 200.0f}] = CSize(826, 1165); dpiDct[{A6, 240.0f}] = CSize(992, 1398); dpiDct[{A6, 300.0f}] = CSize(1240, 1748); dpiDct[{A6, 400.0f}] = CSize(1653, 2330); dpiDct[{A6, 600.0f}] = CSize(2480, 3496); dpiDct[{USStatement, 50.0f}] = CSize(585, 827 * 1.5); dpiDct[{USStatement, 75.0f}] = CSize(877, 1240 * 1.5); dpiDct[{USStatement, 100.0f}] = CSize(1169, 1653 * 1.5); dpiDct[{USStatement, 150.0f}] = CSize(1753, 2480 * 1.5); dpiDct[{USStatement, 200.0f}] = CSize(2338, 3307 * 1.5); dpiDct[{USStatement, 240.0f}] = CSize(2806, 3968 * 1.5); dpiDct[{USStatement, 300.0f}] == CSize(3507, 4960 * 1.5); dpiDct[{USStatement, 400.0f}] = CSize(4677, 6614 * 1.5); dpiDct[{USStatement, 600.0f}] = CSize(7015, 9921 * 1.5); //add lyc 2019 12 18 长文稿,2倍A3 dpiDct[{MaxSize, 50.0f}] = CSize(585, 1653); dpiDct[{MaxSize, 75.0f}] = CSize(877, 2480); dpiDct[{MaxSize, 100.0f}] = CSize(1169, 1653 * 2); dpiDct[{MaxSize, 150.0f}] = CSize(1753, 2480 * 2); dpiDct[{MaxSize, 200.0f}] = CSize(2338, 3307 * 2); dpiDct[{MaxSize, 240.0f}] = CSize(2806, 3968 * 2); dpiDct[{MaxSize, 300.0f}] = CSize(3507, 4960 * 2); dpiDct[{MaxSize, 400.0f}] = CSize(4677, 6614 * 2); dpiDct[{MaxSize, 600.0f}] = CSize(7015, 9921 * 2); //add lyc 2019 12 18 B4 dpiDct[{B4, 50.0f}] = CSize(506, 717); dpiDct[{B4, 75.0f}] = CSize(759, 1075); dpiDct[{B4, 100.0f}] = CSize(1011, 1433); dpiDct[{B4, 150.0f}] = CSize(1517, 2149); dpiDct[{B4, 200.0f}] = CSize(2023, 2866); dpiDct[{B4, 240.0f}] = CSize(2428, 3439); dpiDct[{B4, 300.0f}] = CSize(3035, 4299); dpiDct[{B4, 400.0f}] = CSize(4047, 5732); dpiDct[{B4, 600.0f}] = CSize(6070, 8598); //add lyc 2019 12 18 B5 dpiDct[{B5, 50.0f}] = CSize(358, 506); dpiDct[{B5, 75.0f}] = CSize(537, 759); dpiDct[{B5, 100.0f}] = CSize(716, 1011); dpiDct[{B5, 150.0f}] = CSize(1074, 1517); dpiDct[{B5, 200.0f}] = CSize(1433, 2023); dpiDct[{B5, 240.0f}] = CSize(1719, 2428); dpiDct[{B5, 300.0f}] = CSize(2149, 3035); dpiDct[{B5, 400.0f}] = CSize(2866, 4047); dpiDct[{B5, 600.0f}] = CSize(4299, 6070); //add lyc 2019 12 18 B6 dpiDct[{B6, 50.0f}] = CSize(252, 358); dpiDct[{B6, 75.0f}] = CSize(378, 537); dpiDct[{B6, 100.0f}] = CSize(503, 716); dpiDct[{B6, 150.0f}] = CSize(755, 1074); dpiDct[{B6, 200.0f}] = CSize(1007, 1433); dpiDct[{B6, 240.0f}] = CSize(1209, 1719); dpiDct[{B6, 300.0f}] = CSize(1511, 2149); dpiDct[{B6, 400.0f}] = CSize(2015, 2866); dpiDct[{B6, 600.0f}] = CSize(3023, 4299); //add lyc 2019 12 18 DOUBLE LETTER dpiDct[{USLedger, 50.0f}] = CSize(550, 850); dpiDct[{USLedger, 75.0f}] = CSize(825, 1275); dpiDct[{USLedger, 100.0f}] = CSize(1100, 1700); dpiDct[{USLedger, 150.0f}] = CSize(1650, 2550); dpiDct[{USLedger, 200.0f}] = CSize(2200, 3400); dpiDct[{USLedger, 240.0f}] = CSize(2640, 4080); dpiDct[{USLedger, 300.0f}] = CSize(3300, 5100); dpiDct[{USLedger, 400.0f}] = CSize(4400, 6800); dpiDct[{USLedger, 600.0f}] = CSize(6600, 10200); //add lyc 2019 12 18 LETTER dpiDct[{USLetter, 50.0f}] = CSize(425, 550); dpiDct[{USLetter, 75.0f}] = CSize(638, 825); dpiDct[{USLetter, 100.0f}] = CSize(850, 1100); dpiDct[{USLetter, 150.0f}] = CSize(1275, 1650); dpiDct[{USLetter, 200.0f}] = CSize(1700, 2200); dpiDct[{USLetter, 240.0f}] = CSize(2040, 2640); dpiDct[{USLetter, 300.0f}] = CSize(2550, 3300); dpiDct[{USLetter, 400.0f}] = CSize(3400, 4400); dpiDct[{USLetter, 600.0f}] = CSize(5100, 6600); //add lyc 2019 12 18 LETTER dpiDct[{USLegal, 50.0f}] = CSize(425, 700); dpiDct[{USLegal, 75.0f}] = CSize(638, 1050); dpiDct[{USLegal, 100.0f}] = CSize(850, 1400); dpiDct[{USLegal, 150.0f}] = CSize(1275, 2100); dpiDct[{USLegal, 200.0f}] = CSize(1700, 2800); dpiDct[{USLegal, 240.0f}] = CSize(2040, 3360); dpiDct[{USLegal, 300.0f}] = CSize(2550, 4200); dpiDct[{USLegal, 400.0f}] = CSize(3400, 5600); dpiDct[{USLegal, 600.0f}] = CSize(5100, 8400); } CSize 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)//旋转九十度 { CSize size; size.cx = iter->second.cy; size.cy = iter->second.cx; return size; } } return CSize(2338, 3307); } }