65 lines
1.8 KiB
C++
65 lines
1.8 KiB
C++
#include "paper.h"
|
|
|
|
#include <string>
|
|
#include <map>
|
|
|
|
namespace paper
|
|
{
|
|
class paper_init
|
|
{
|
|
std::map<std::string, SIZE> papers_;
|
|
|
|
public:
|
|
|
|
paper_init()
|
|
{
|
|
papers_["A3"] = {297, 420};
|
|
papers_["A4"] = {210, 297};
|
|
papers_["A5"] = {148, 210};
|
|
papers_["A6"] = {105, 148};
|
|
papers_["B4"] = {250, 352};
|
|
papers_["B5"] = {176, 250};
|
|
papers_["B6"] = {125, 176};
|
|
papers_["8\345\274\200"] = {285, 420}; // 8开
|
|
papers_["16\345\274\200"] = {210, 285}; // 16开
|
|
|
|
papers_["Letter"] = {216, 322}; // Letter+
|
|
papers_["Double Letter"] = {322, 432};
|
|
papers_["LEGAL"] = {236, 381}; // Legal+
|
|
|
|
// 匹配原始尺寸
|
|
papers_["\345\214\271\351\205\215\345\216\237\345\247\213\345\260\272\345\257\270"] = papers_["A3"];
|
|
|
|
// 最大扫描尺寸
|
|
papers_["\346\234\200\345\244\247\346\211\253\346\217\217\345\260\272\345\257\270"] = papers_["A3"];
|
|
|
|
// 最大扫描尺寸自动裁切
|
|
papers_["\346\234\200\345\244\247\346\211\253\346\217\217\345\260\272\345\257\270\350\207\252\345\212\250\350\243\201\345\210\207"] = papers_["A3"];
|
|
|
|
// 三联试卷
|
|
papers_["\344\270\211\350\201\224\350\257\225\345\215\267"] = {216, 356};
|
|
}
|
|
~paper_init()
|
|
{
|
|
papers_.clear();
|
|
}
|
|
|
|
public:
|
|
SIZE size(const char* name)
|
|
{
|
|
if(papers_.count(name))
|
|
return papers_[name];
|
|
|
|
return {0, 0};
|
|
}
|
|
};
|
|
|
|
static paper_init paperi;
|
|
|
|
// get known paper size in mm
|
|
SIZE size(const char* name)
|
|
{
|
|
return paperi.size(name);
|
|
}
|
|
};
|