# HG changeset patch # User pyon@macmini # Date 1583333219 -32400 # Node ID 34a474fb83c311326e828a1d9dc309a37aa7d9fc # Parent c6df3bae683e48cc021ddc7d9687bf4c516bffdc add perori/porori/nk. diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Nk/README.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Nk/README.txt Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,31 @@ +***************************************************************************** +* 認定ならびかえ(通称:超5) * +***************************************************************************** + +1) ファイルの準備をして。 + a> 被保険者証の Docuworksファイルを inputフォルダに投げ込んでね。 + ファイル名:KBPG316G.xdw、KBPG316G-1.xdw、...等 + + b> 結果通知の Docuworksファイルを inputフォルダに投げ込んでね。 + ファイル名:KBPG206G.xdw、KBPG206G-1.xdw、...等 + KBPG706G.xdw、KBPG706G-1.xdw、...等 + + c> 負担割合証の Docuworksファイルを inputフォルダに投げ込んでね。 + ファイル名:KBPV016G.xdw、KBPV016G-1.xdw、...等 + +2) 超5.bat をカチカチすると 発番を聞いてくるので 555 とか入力する。 + と、outputフォルダに 3つの Docuworksファイル と 1つの PDFファイル、 + それに 1つの CSV ファイルができるよ。 + + * hs.xdw -> 被保証 + * kt.xdw -> 結果通知 + * fw.xdw -> 負担割合証(印刷しない) + * fw4.pdf -> 負担割合証 4人1組版 + * out.csv -> 一覧 + +0) その他 + * 被保険者情報ファイル hhsdb.csv は定期的に更新すること。 + * 居宅介護支援事業所が新規にできたり、名前が変わった場合は、nk.json を + 編集すること。 + +**** おしまい *************************************************************** diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Nk/fw4.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Nk/fw4.pl Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,115 @@ +########################################################### +## 蜈・蜉帙ヵ繧。繧、繝ォ繧 4蛻蜑イ蜑イ莉倥☆繧 +## Last Change: 2020-01-21 轣ォ 14:34:27. +########################################################### + +use PDF::API2; + +my ($in_file, $out_file) = ($ARGV[0], $ARGV[1]); +if ($in_file eq '' || $out_file eq '') { + print "bad arguments.\n"; + exit; +} +my $tmpdir = $ARGV[2]; +$tmpdir = '.' if $tmpdir eq ''; + +## 蜈・蜉帙ヵ繧。繧、繝ォ縺ョ蠕悟濠繧剃ク贋ク句渚霆「縺輔○ 蜑榊濠縺ョ荳矩Κ縺ォ蜊ー蟄 +my $in_odd = 0; # 螂謨ーシ + +# 蠕悟濠縺ョ繝壹シ繧ク(蝗櫁サ「莉倥″) +my $in_pdf = PDF::API2->open($in_file); +$in_odd = 1 if $in_pdf->pages % 2 == 1; + +my $n = int($in_pdf->pages / 2) + 1; +$n++ if $in_odd; +my $lh_pdf = PDF::API2->new(); +for my $p ( $n..$in_pdf->pages ) { + my $page = $lh_pdf->import_page($in_pdf, $p); + $page->rotate(180); +} +$lh_pdf->saveas("$tmpdir/lasthalf.pdf"); +$lh_pdf->end; + +# 遘サ蜍 +$lh_pdf = PDF::API2->open("$tmpdir/lasthalf.pdf"); +my $lhm_pdf = PDF::API2->new(); +for my $p ( 1..$lh_pdf->pages ) { + my $page = $lhm_pdf->page(); + $page->mediabox('B5'); + my $gfx = $page->gfx(); + my $xo = $lhm_pdf->importPageIntoForm($lh_pdf, $p); + $gfx->formimage($xo, -230, 330, 1.0); +} +$lhm_pdf->saveas("$tmpdir/lasthalfmove.pdf"); +$lhm_pdf->end; + +# 蜑イ莉 +my $page; +my $new2_pdf = PDF::API2->new(); +$lhm_pdf = PDF::API2->open("$tmpdir/lasthalfmove.pdf"); +for my $p ( 1..$n-1 ) { + $page = $new2_pdf->page(); + $page->mediabox('B5'); + + my $gfx = $page->gfx(); + my $xo1 = $new2_pdf->importPageIntoForm($in_pdf, $p); + $gfx->formimage($xo1, -30, 0, 1.0); + + last if $p == $n-1 && $in_odd; + my $xo2 = $new2_pdf->importPageIntoForm($lhm_pdf, $p); + $gfx->formimage($xo2, 0, -350, 1.0); +} + +$new2_pdf->saveas("$tmpdir/2.pdf"); +$new2_pdf->end; + +## 蜈・蜉帙ヵ繧。繧、繝ォ縺ョ蠕悟濠繧貞燕蜊翫ョ蜿ウ蛛エ縺ォ蜊ー蟄 +$in_odd = 0; # 螂謨ーシ + +# 蠕悟濠縺ョ繝壹シ繧ク(蝗櫁サ「縺ェ縺) +$in_pdf = PDF::API2->open("$tmpdir/2.pdf"); +$in_odd = 1 if $in_pdf->pages % 2 == 1; + +$n = int($in_pdf->pages / 2) + 1; +$n++ if $in_odd; +$lh_pdf = PDF::API2->new(); +for my $p ( $n..$in_pdf->pages ) { + my $page = $lh_pdf->import_page($in_pdf, $p); + #$page->rotate(180); +} +$lh_pdf->saveas("$tmpdir/lasthalf2.pdf"); +$lh_pdf->end; + +# 遘サ蜍 +$lh_pdf = PDF::API2->open("$tmpdir/lasthalf2.pdf"); +$lhm_pdf = PDF::API2->new(); +for my $p ( 1..$lh_pdf->pages ) { + my $page = $lhm_pdf->page(); + $page->mediabox('B5'); + my $gfx = $page->gfx(); + my $xo = $lhm_pdf->importPageIntoForm($lh_pdf, $p); + $gfx->formimage($xo, 130, 0, 1.0); +} +$lhm_pdf->saveas("$tmpdir/lasthalf2move.pdf"); +$lhm_pdf->end; + +# 蜑イ莉 +my $new4_pdf = PDF::API2->new(); +$lhm_pdf = PDF::API2->open("$tmpdir/lasthalf2move.pdf"); +for my $p ( 1..$n-1 ) { + $page = $new4_pdf->page(); + $page->mediabox('B5'); + + my $gfx = $page->gfx(); + my $xo1 = $new4_pdf->importPageIntoForm($in_pdf, $p); + $gfx->formimage($xo1, 0, 0, 0.98); + + last if $p == $n-1 && $in_odd; + my $xo2 = $new4_pdf->importPageIntoForm($lhm_pdf, $p); + $gfx->formimage($xo2, 125, 0, 0.98); + #$gfx->formimage($xo2, 122, 0, 0.98); +} + +$new4_pdf->saveas($out_file); +$new4_pdf->end; + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Nk/nk.go --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Nk/nk.go Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,795 @@ +/* + nk.go: Nintei Kekka + + Last Change: 2020-01-24 驥 09:18:04. +*/ + +package main + +/* +#cgo LDFLAGS: -L. -lxdwapi -static +#include +#include +#include +#include +#include +#include +#include + +#define MAXCOL 1024 +#define MAXLINE 9999 +#define BLOCKSZ 128 + +int xdwpages(const char* file) { + char in_path[_MAX_PATH]; + _fullpath(in_path, file, _MAX_PATH); + + XDW_DOCUMENT_HANDLE h = NULL; // 譁譖ク繝上Φ繝峨Ν繧帝幕縺 + XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE}; + if (XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode)) { + printf("Error: cannot open %s\n", file); + return -1; + } + + XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0}; // 邱上壹シ繧ク謨ー繧貞セ励k + XDW_GetDocumentInformation(h, &info); + int nPage = info.nPages; + + XDW_CloseDocumentHandle(h, NULL); // 譁譖ク繝上Φ繝峨Ν繧帝哩縺倥k + + return nPage; +} + +char* xdw2txt(const char* file) { + char in_path[_MAX_PATH]; + _fullpath(in_path, file, _MAX_PATH); + + XDW_DOCUMENT_HANDLE h = NULL; // 譁譖ク繝上Φ繝峨Ν繧帝幕縺 + XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE}; + if (XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode)) { + printf("Error: cannot open %s\n", file); + return NULL; + } + + XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0}; // 邱上壹シ繧ク謨ー繧貞セ励k + XDW_GetDocumentInformation(h, &info); + int nPage = info.nPages; + + // 繝。繧、繝ウ蜃ヲ逅 + char *lpszvalue, *all_lpszvalue; + long datasize[9999]; + for (int i=1; i<=nPage; i++) { + datasize[i] = XDW_GetPageTextToMemory(h, i, NULL, 0, NULL); + datasize[0] += datasize[i]; + } + datasize[0] += nPage - 1; // for "\n" + all_lpszvalue = (char*)malloc(sizeof(char)*datasize[0]); + all_lpszvalue[0] = '\0'; + for (int i=1; i<=nPage; i++) { + if (i= 0); +} + +int xdwaddatn(const char* file, char* atnlist) { + char in_path[_MAX_PATH]; + _fullpath(in_path, file, _MAX_PATH); + + XDW_DOCUMENT_HANDLE h = NULL; + XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_UPDATE, XDW_AUTH_NODIALOGUE}; + + int api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode); + if (api_result < 0) return api_result; + + XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0}; + XDW_GetDocumentInformation(h, &info); + + char *str, *token; + char *saveptr1, *saveptr2; + int x, y, sz, tr; + char *s; + + for (str = atnlist; ; str = NULL) { + token = strtok_r(str, ":", &saveptr1); + if (token == NULL) break; + //printf("%s\n", token); + + // atn.X, atn.Y, atn.Sz, tr, atn.Txt + x = atoi(strtok_r(token, ",", &saveptr2)); + y = atoi(strtok_r(NULL , ",", &saveptr2)); + sz = atoi(strtok_r(NULL, ",", &saveptr2)); + tr = atoi(strtok_r(NULL, ",", &saveptr2)); + s = strtok_r(NULL, ",", &saveptr2); + //printf("x=%d y=%d txt=%s sz=%d tr=%d\n", x, y, s, sz, tr); + + for (int i = 0; i < info.nPages; i++ ) { + XDW_ANNOTATION_HANDLE annoation; + int api_result = XDW_AddAnnotation(h, XDW_AID_TEXT, i + 1, x, y, NULL, &annoation, NULL); + + if (api_result < 0) return api_result; + + api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_Text, XDW_ATYPE_STRING, s, 0, NULL); + api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_FontSize, XDW_ATYPE_INT, (char*)&sz, 0, NULL); + + if (tr) { + int color = XDW_COLOR_NONE; + api_result = XDW_SetAnnotationAttribute(h, annoation, XDW_ATN_BackColor, XDW_ATYPE_INT, (char*)&color, 0, NULL); + } + } + } + + XDW_SaveDocument(h, NULL); + XDW_CloseDocumentHandle(h, NULL); + + return 0; +} + +int xdwsort(const char* file, const char* sorted, const char* order, const char* workdir, const char* prefix) { + char buf[MAXCOL]; + + // 繝。繝「繝ェ遒コ菫 + char *sl = (char*)malloc(MAXLINE * sizeof(char) * MAXCOL); + if (sl == NULL) return -1; + + int slN = 0; + char *p; + p = strtok(order, ":"); + strncpy(&sl[slN * MAXCOL], p, MAXCOL); + slN++; + + while (p = strtok(NULL, ":")) { + strncpy(&sl[slN * MAXCOL], p, MAXCOL); + slN++; + } + + //for (int j = 0; j < slN; j++) printf("%d : %s\n", j, &sl[j * MAXCOL]); + //return 0; + + // 驥阪∩莉倥¢ = 荳ヲ縺ウ鬆 + char in_path[_MAX_PATH]; + _fullpath(in_path, file, _MAX_PATH); + + XDW_DOCUMENT_HANDLE h = NULL; + XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE}; + + int api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode); + if (api_result < 0) return api_result; + + XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0}; + XDW_GetDocumentInformation(h, &info); + int last_page = info.nPages; + + int *table = (int*)malloc(sizeof(int) * last_page); + for (int p = 0; p < last_page; p++) *(table + p) = 9999; + + int index = 0; + XDW_FOUND_HANDLE pFoundHandle = NULL; + for (int i = 0; i < slN; i++) { + for (int p = 0; p < last_page; p++) { + if (*(table + p) != 9999) continue; + + api_result = XDW_FindTextInPage(h, p + 1, &sl[i * MAXCOL], NULL, &pFoundHandle, NULL); + if (api_result < 0) return api_result; + + if (pFoundHandle != NULL) { + *(table + p) = ++index; + pFoundHandle = NULL; + } + } + } + free(sl); + + for (int p = 0; p < last_page; p++) { + if (*(table + p) == 9999) *(table + p) = ++index; + + sprintf(buf, "%s/%s_%04d.xdw", workdir, prefix, *(table + p)); + _fullpath(in_path, buf, _MAX_PATH); + + api_result = XDW_GetPage(h, p + 1, in_path, NULL); + if (api_result < 0) return api_result; + } + free(table); + XDW_CloseDocumentHandle(h, NULL); + + // 繝悶Ο繝繧ッ蜃ヲ逅 + char *blk_path = (char*)malloc(BLOCKSZ * sizeof(char) * _MAX_PATH); + const char **blk_path_addr = (const char**)malloc((last_page / BLOCKSZ + 1) * sizeof(char*) * _MAX_PATH); + + int bn = 0; + for (int p = 0, m = 0; p < last_page; p++) { + m = p % BLOCKSZ; + + if (m == 0 && p > 0) { + sprintf(buf, "%s/%s_b%04d.xdw", workdir, prefix, ++bn); + _fullpath(in_path, buf, _MAX_PATH); + + api_result = XDW_MergeXdwFiles(blk_path_addr, BLOCKSZ, in_path, NULL); + if (api_result < 0) return api_result; + } + + sprintf(buf, "%s/%s_%04d.xdw", workdir, prefix, p + 1); + _fullpath(in_path, buf, _MAX_PATH); + + strncpy(&blk_path[m * _MAX_PATH], in_path, _MAX_PATH); + + blk_path_addr[m] = &blk_path[m * _MAX_PATH]; + } + + sprintf(buf, "%s/%s_b%04d.xdw", workdir, prefix, ++bn); + _fullpath(in_path, buf, _MAX_PATH); + + int mod = last_page % BLOCKSZ; + if (mod == 0) mod = BLOCKSZ; + + api_result = XDW_MergeXdwFiles(blk_path_addr, mod, in_path, NULL); + if (api_result < 0) return api_result; + + for (int b = 0; b < bn; b++) { + sprintf(buf, "%s/%s_b%04d.xdw", workdir, prefix, b + 1); + + _fullpath(in_path, buf, _MAX_PATH); + strncpy(&blk_path[b * _MAX_PATH], in_path, _MAX_PATH); + + blk_path_addr[b] = &blk_path[b * _MAX_PATH]; + } + + _fullpath(in_path, sorted, _MAX_PATH); + + api_result = XDW_MergeXdwFiles(blk_path_addr, bn, in_path, NULL); + if (api_result < 0) return api_result; + + free(blk_path); + free(blk_path_addr); + + return 0; +} + +int xdw2pdf(const char* xdwfile, const char* pdffile) { + char in_path[_MAX_PATH], out_path[_MAX_PATH]; + _fullpath(in_path, xdwfile, _MAX_PATH); + _fullpath(out_path, pdffile, _MAX_PATH); + + remove(out_path); + int api_result = 0; + + XDW_DOCUMENT_HANDLE h = NULL; + XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE}; + + api_result = XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode); + if (api_result < 0) return api_result; + + XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0}; + XDW_GetDocumentInformation(h, &info); + + XDW_IMAGE_OPTION_PDF pdf = { + sizeof(XDW_IMAGE_OPTION_PDF), + XDW_COMPRESS_MRC_NORMAL, + XDW_CONVERT_MRC_OS, + info.nPages + }; + + XDW_IMAGE_OPTION_EX ex = { + sizeof(XDW_IMAGE_OPTION_EX), + 600, // dpi + XDW_IMAGE_MONO_HIGHQUALITY, + XDW_IMAGE_PDF, + &pdf + }; + + api_result = XDW_ConvertPageToImageFile(h, 1, out_path, (XDW_IMAGE_OPTION*)&ex); + + XDW_SaveDocument(h, NULL); + XDW_CloseDocumentHandle(h, NULL); + + return 0; +} + +int xdwopt(const char* in, const char* out) { + char in_path[_MAX_PATH], out_path[_MAX_PATH]; + _fullpath(in_path, in, _MAX_PATH); + _fullpath(out_path, out, _MAX_PATH); + + int api_result = XDW_OptimizeDocument(in_path, out_path, NULL); + return (api_result >= 0); +} +*/ +import "C" + +import ( + "bufio" + "encoding/json" + "fmt" + "flag" + "io/ioutil" + "log" + "os" + "os/exec" + "path/filepath" + "regexp" + "sort" + "strings" + "time" + + "golang.org/x/text/encoding/japanese" + "golang.org/x/text/transform" +) + +var ( + ver = "0.1" + + flg_hb int + flg_time bool + flg_log bool + flg_debug bool + flg_clean bool + + confjson = "nk.json" + logfile = "nk.log" + hhscsv = "hhsdb.csv" + tmpdir string + tmpprefix = "nktemp_" + inputdir = "input" + outputdir = "output" + outcsv = "out.csv" + + start time.Time + + hb string // 逋コ逡ェ + fw, hs, kt = "", "", "kttemp.xdw" // 雋諡蜑イ蜷郁ィシ, 陲ォ菫晞匱閠險シ, 邨先棡騾夂衍 + + step, totalstep = 1, 13 +) + +type Annotation struct { + X, Y int + Sz int + Tr bool + Txt string +} + +type Config struct { + Atns []Annotation + Kyotaku []string +} + +func (c *Config) ProcessTemplate() { + today := time.Now().Format("莉、蜥 r 蟷エ 1 譛 2 譌・") + y := time.Now().Year() - 2018 + if y == 1 { + today = strings.ReplaceAll(today, "r", "蜈") + } else { + today = strings.ReplaceAll(today, "r", fmt.Sprintf("%d", y)) + } + + var atns []Annotation + for _, atn := range c.Atns { + s := atn.Txt + if atn.Txt == "date" { + s = today + } + if strings.ContainsAny(atn.Txt, "hb") { + s = strings.ReplaceAll(atn.Txt, "hb", hb) + } + atns = append(atns, Annotation{atn.X, atn.Y, atn.Sz, atn.Tr, s}) + } + c.Atns = atns +} + +func (c *Config) KyotakuList() []string { + return c.Kyotaku +} + +func (c *Config) AnnotationList() (al []string) { + for _, atn := range c.Atns { + tr := 0 + if atn.Tr { + tr = 1 + } + s := fmt.Sprintf("%d,%d,%d,%d,%s", atn.X, atn.Y, atn.Sz, tr, atn.Txt) + al = append(al, s) + } + return +} + +func init() { + /* INITIALIZE FLAGS */ + flag.IntVar(&flg_hb, "b", 0, "set hatsuban") + flag.BoolVar(&flg_time, "t", false, "print time") + flag.BoolVar(&flg_log, "l", false, "save log") + flag.BoolVar(&flg_debug, "d", false, "print data for debug") + flag.BoolVar(&flg_clean, "c", false, "clean temporary directory & exit") + + /* CREAN OUTPUT-FILE & TEMP-FILE */ + if err := os.RemoveAll(outputdir); err != nil { + log.Fatal(err) + } + os.Remove(logfile) + + /* PREPARATE OUTPUT-DIR & TEMP-DIR */ + if err := os.Mkdir(outputdir, 0755); err != nil { + log.Fatal(err) + } + + var err error + tmpdir, err = ioutil.TempDir(".", tmpprefix) + if err != nil { + log.Fatal(err) + } + logfile = filepath.Join(tmpdir, logfile) + kt = filepath.Join(tmpdir, kt) +} + +func main() { + flag.Parse() + + /* CLEAN TEMPORARY DIRECTORY */ + if flg_clean { + files, err := ioutil.ReadDir(".") + if err != nil { + log.Fatal(err) + } + for _, file := range files { + if strings.HasPrefix(file.Name(), tmpprefix) { + if err := os.RemoveAll(file.Name()); err != nil { + log.Fatal(err) + } + } + } + os.Exit(0) + } + + /* PRINT HEADER */ + fmt.Println("=======================================") + fmt.Println(" 陲ォ菫晞匱閠險シ縺ィ邨先棡騾夂衍縺ィ雋諡蜑イ蜷郁ィシ繧... ") + fmt.Printf(" - nk [ver %s] -\n", ver) + fmt.Println("=======================================\n") + + /* USER INPUT */ + hb = fmt.Sprintf("%d", flg_hb) + if flg_hb == 0 { + fmt.Print("逋コ逡ェ > ") + fmt.Scan(&hb) + } + + start = time.Now() + + /* READ CONFIG FROM JSON */ + print_step("險ュ螳夊ェュ霎シ縺ソ") + conf, err := read_conf(confjson) + if err != nil { + log.Fatal(err) + } + conf.ProcessTemplate() + step_start := print_time(start) + + /* CHECK INPUT-FILE */ + print_step("蜈・蜉帙ヵ繧。繧、繝ォ縺ョ繝√ぉ繝繧ッ") + files, err := ioutil.ReadDir(inputdir) + if err != nil { + log.Fatal(err) + } + + var kts []string + for _, file := range files { + if strings.HasSuffix(file.Name(), ".xdw") { + print_debug([]string{file.Name()}) + switch file.Name()[0:8] { + case "KBPV016G": + fw = filepath.Join(inputdir, file.Name()) + case "KBPG316G": + hs = filepath.Join(inputdir, file.Name()) + case "KBPG206G", "KBPG706G": + f := filepath.Join(inputdir, file.Name()) + kts = append(kts, f) + } + } + } + + fmt.Println() + fmt.Printf(" 雋諡蜑イ蜷郁ィシ繝輔ぃ繧、繝ォ = %s\n", fw) + fmt.Printf(" 陲ォ菫晞匱閠險シ繝輔ぃ繧、繝ォ = %s\n", hs) + fmt.Print(" 邨先棡騾夂衍繝輔ぃ繧、繝ォ =") + for _, f := range kts { + fmt.Printf(" %s", f) + } + fmt.Println() + if fw == "" || hs == "" || len(kts) == 0 { + fmt.Fprintf(os.Stderr, "Input file is wrong.\n") + os.Exit(1) + } + + bytes, err := ioutil.ReadFile(hhscsv) + if err != nil { + log.Fatal(err) + } + hash_hhs := make(map[string]string) // 陲ォ菫晞匱閠豌丞錐縺ョ繝上ャ繧キ繝・ + r := strings.NewReader(string(bytes)) + tr := transform.NewReader(r, japanese.ShiftJIS.NewDecoder()) + buf := bufio.NewScanner(tr) + for buf.Scan() { + records := strings.Split(buf.Text(), ",") + hash_hhs[records[0]] = records[2] + } + fmt.Printf(" 陲ォ菫晞匱閠繝輔ぃ繧、繝ォ = %s\n", hhscsv) + + step_start = print_time(step_start) + + /* CONCATNATE INPUT-FILE */ + print_step("邨先棡騾夂衍繝輔ぃ繧、繝ォ縺ョ騾」邨") + b, err := ioutil.ReadFile(kts[0]) + if err != nil { + log.Fatal(err) + } + if err = ioutil.WriteFile(kt, b, 0644); err != nil { + log.Fatal(err) + } + if len(kts) > 1 { + pp := 0 + fmt.Println() + for _, file := range kts { + p, _ := C.xdwpages(C.CString(file)) + fmt.Printf(" %s\t= %d 繝壹シ繧ク\n", file, int(p)) + pp += int(p) + } + fmt.Printf(" 蜷郁ィ\t= %d 繝壹シ繧ク\n", pp) + for _, file := range kts[1:] { + C.xdwpush(C.CString(kt), C.CString(file)) + } + } + step_start = print_time(step_start) + + /* MAKE SORT-TABEL */ + print_step("荳ヲ縺ウ鬆縺ョ豎コ螳") + + re_hhs := regexp.MustCompile(`05((2126)|(2159)|(4346))0[1238]\d{8}`) + re_kaigo := regexp.MustCompile(`隕((莉玖ュキ)|(謾ッ謠エ)).`) + + hash_fw := make(map[string]int) // 雋諡蜑イ蜷郁ィシ逋コ陦瑚縺ョ繝上ャ繧キ繝・ + for _, t := range xdw2txt(fw) { + hash_fw[re_hhs.FindString(t)]++ + print_debug([]string{re_hhs.FindString(t)}) + } + + kyotaku := conf.KyotakuList() + + hash_kaigo := make(map[string]string) // 陲ォ菫晞匱閠險シ逋コ陦瑚縺ョ隕∽サ玖ュキ蠎ヲ縺ョ繝上ャ繧キ繝・ + hash_kyotaku := make(map[string]string) // 陲ォ菫晞匱閠險シ逋コ陦瑚縺ョ螻螳莉玖ュキ謾ッ謠エ莠区・ュ謇縺ョ繝上ャ繧キ繝・ + var sorttable []string + for _, t := range xdw2txt(hs) { + h := re_hhs.FindString(t) + hash_kaigo[h] = re_kaigo.FindString(t) + for _, k := range kyotaku { + if strings.Contains(t, k) { + hash_kyotaku[h] = k + } + } + key := make_sort_key(hash_fw[h], re_kaigo.FindString(t), h) + s := fmt.Sprintf("%s#%d:%s:%s#%s", key, hash_fw[h], re_kaigo.FindString(t), hash_kyotaku[h], h) + sorttable = append(sorttable, s) + } + //sort.Sort(sort.Reverse(sort.StringSlice(sorttable))) + sort.Sort(sort.StringSlice(sorttable)) + print_debug(sorttable) + step_start = print_time(step_start) + + /* DO SORT */ + order := "" + for _, s := range sorttable { + t := strings.Split(s, "#") + order += ":" + t[len(t)-1][6:] + } + order = strings.Replace(order, ":", "", 1) + + print_step("陲ォ菫晞匱閠險シ荳ヲ縺ウ譖ソ縺") + hs_sorted := filepath.Join(tmpdir, "hs.xdw") + C.xdwsort(C.CString(hs), C.CString(hs_sorted), C.CString(order), C.CString(tmpdir), C.CString("hs")) + step_start = print_time(step_start) + + print_step("雋諡蜑イ蜷郁ィシ荳ヲ縺ウ譖ソ縺") + fw_sorted := filepath.Join(tmpdir, "fw.xdw") + C.xdwsort(C.CString(fw), C.CString(fw_sorted), C.CString(order), C.CString(tmpdir), C.CString("fw")) + step_start = print_time(step_start) + + print_step("邨先棡騾夂衍荳ヲ縺ウ譖ソ縺") + kt_sorted := filepath.Join(tmpdir, "kt.xdw") + C.xdwsort(C.CString(kt), C.CString(kt_sorted), C.CString(order), C.CString(tmpdir), C.CString("kt")) + step_start = print_time(step_start) + + /* ADD ANNOTATION */ + print_step("逋コ逡ェ蜊ー蟄") + al := strings.Join(conf.AnnotationList(), ":") + al, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), al) + C.xdwaddatn(C.CString(kt_sorted), C.CString(al)) + step_start = print_time(step_start) + + /* OPTIMIZE OUTPUT-FILE */ + print_step("譛驕ゥ蛹") + hs_opt := filepath.Join(outputdir, "hs.xdw") + C.xdwopt(C.CString(hs_sorted), C.CString(hs_opt)) + fw_opt := filepath.Join(outputdir, "fw.xdw") + C.xdwopt(C.CString(fw_sorted), C.CString(fw_opt)) + kt_opt := filepath.Join(outputdir, "kt.xdw") + C.xdwopt(C.CString(kt_sorted), C.CString(kt_opt)) + step_start = print_time(step_start) + + /* OUTPUT CSV */ + print_step("シ」シウシカ蜃コ蜉") + outcsv = filepath.Join(outputdir, outcsv) + fcsv, err := os.OpenFile(outcsv, os.O_RDWR|os.O_CREATE, 0644) + if err != nil { + log.Fatal(err) + } + for i, s := range sorttable { + t := strings.Split(s, "#") + u := strings.ReplaceAll(t[1], ":", ",") + u, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), u) + c := t[2][0:6] + h := t[2][6:16] + n, _, _ := transform.String(japanese.ShiftJIS.NewEncoder(), hash_hhs[h]) + // seq, city, hno, name, kaigo, fw, kyotaku + fmt.Fprintf(fcsv, "%04d,%s,%s,%s,%s\n", i + 1, c, h, n, u) + } + if err := fcsv.Close(); err != nil { + log.Fatal(err) + } + step_start = print_time(step_start) + + /* PDF */ + print_step("雋諡蜑イ蜷郁ィシ蜑イ莉假シーシ、シヲ菴懈") + fwpdf := filepath.Join(tmpdir, "fw.pdf") + C.xdw2pdf(C.CString(fw_opt), C.CString(fwpdf)) // 2min + step_start = print_time(step_start) + + print_step("雋諡蜑イ蜷郁ィシシーシ、シヲ蜑イ莉") + fw4pdf := filepath.Join(outputdir, "fw4.pdf") + cmd := exec.Command("fw4.exe", fwpdf, fw4pdf, tmpdir) + if err := cmd.Run(); err != nil { + log.Fatal(err) + } + step_start = print_time(step_start) + + print_step("邨ゆコ") + step_start = print_time(step_start) + + /* REMOVE TEMP-FILE */ + if flg_log { + logfile2 := filepath.Join(".", strings.Replace(logfile, tmpdir, "", 1)) + os.Link(logfile, logfile2) + } + + if !flg_debug { + if err := os.RemoveAll(tmpdir); err != nil { + log.Fatal(err) + } + } +} + +func make_sort_key(fw int, kaigo, h string) string { + key := fmt.Sprintf("%d:", 9 - fw) + if strings.HasPrefix(kaigo, "隕∵髪謠エ") { + key += "1" + } + if strings.HasPrefix(kaigo, "隕∽サ玖ュキ") { + key += "2" + } + switch { + case strings.HasSuffix(kaigo, "シ"): + key += "1:" + case strings.HasSuffix(kaigo, "シ"): + key += "2:" + case strings.HasSuffix(kaigo, "シ"): + key += "3:" + case strings.HasSuffix(kaigo, "シ"): + key += "4:" + case strings.HasSuffix(kaigo, "シ"): + key += "5:" + default: + key += "00:" + } + return key + h +} + +func xdw2txt(file string) (txt []string) { + s := C.GoString(C.xdw2txt(C.CString(file))) + r := strings.NewReader(s) + tr := transform.NewReader(r, japanese.ShiftJIS.NewDecoder()) + buf := bufio.NewScanner(tr) + for buf.Scan() { + txt = append(txt, buf.Text()) + } + return; +} + +func read_conf(file string) (conf Config, err error) { + content, err := ioutil.ReadFile(file) + if err != nil { + log.Fatal(err) + } + err = json.Unmarshal(content, &conf) + return +} + +func print_step(msg string) { + s := fmt.Sprintf("\n[%d/%d] %s\n", step, totalstep, msg) + step++ + fmt.Print(s) + save_log(s) +} + +func print_time(t time.Time) time.Time { + now := time.Now() + if !flg_time { + return now + } + elapsed := now.Sub(t) + total := now.Sub(start) + s := fmt.Sprintf("---- Elapsed: %v (total = %v) @ %02d:%02d\n", elapsed, total, now.Hour(), now.Minute()) + fmt.Print(s) + save_log(s) + return now +} + +func print_debug(msg []string) { + if !flg_debug { + return + } + s := "" + if len(msg) == 1 { + s = fmt.Sprintf("----- %s\n", msg) + } + for i, s := range msg { + s += fmt.Sprintf("%05d %s\n", i, s) + } + fmt.Print(s) + save_log(s) +} + +func save_log(logtxt string) error { + if !flg_log { + return nil + } + f, err := os.OpenFile(logfile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + return err + } + if _, err := f.Write([]byte(logtxt)); err != nil { + f.Close() + return err + } + if err := f.Close(); err != nil { + return err + } + return nil +} + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Nk/nk.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Nk/nk.json Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,140 @@ +{ + "Atns": [ + { + "x": 14711, + "y": 1216, + "sz": 100, + "tr": false, + "txt": "螟ァ莉吝コ莉狗匱隨ャ hb 蜿キ縲縲縲" + }, + { + "x": 14677, + "y": 1742, + "sz": 100, + "tr": false, + "txt": "date" + }, + { + "x": 16015, + "y": 25772, + "sz": 90, + "tr": false, + "txt": "縲縲縲縲縲" + }, + { + "x": 1563, + "y": 26969, + "sz": 90, + "tr": false, + "txt": "窶サ 65豁ウ莉・荳翫ョ髫懷ョウ閠謗ァ髯、蟇セ雎。閠隱榊ョ壽嶌縺ョ莠、莉倥↓縺、縺縺ヲ縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲縲" + }, + { + "x": 1787, + "y": 27384, + "sz": 90, + "tr": true, + "txt": "髫懷ョウ閠謇句クウ縺ョ莠、莉倥r蜿励¢縺ヲ縺縺ェ縺65豁ウ莉・荳翫ョ譁ケ縺ァ縲∬ヲ∽サ玖ュキシ郁ヲ∵髪謠エシ芽ェ榊ョ壹r蜿励¢縺ヲ縺翫j縲∽ク螳壹ョ蝓コ貅悶↓隧イ蠖薙@縺溷エ蜷医" + }, + { + "x": 1787, + "y": 27721, + "sz": 90, + "tr": true, + "txt": "縺ァ縺阪∪縺吶りェ榊ョ壽嶌縺ョ莠、莉倥r蟶梧悍縺吶k譁ケ縺ッ蜷蟶ら伴縺ョ諡蠖楢ェイ縺セ縺ァ縺雁撫縺蜷医o縺帙¥縺縺輔>縲" + }, + { + "x": 1877, + "y": 28136, + "sz": 90, + "tr": true, + "txt": "笳丞、ァ莉吝クらヲ冗・我コ句漁謇縲鬮倬ス「閠蛹諡ャ謾ッ謠エ繧サ繝ウ繧ソ繝シ縲0187-63-1111縲笳丈サ吝圏蟶らヲ冗・我コ句漁謇縲髟キ蟇ソ謾ッ謠エ隱イ縲髟キ蟇ソ縺縺阪′縺菫" + }, + { + "x": 1877, + "y": 28475, + "sz": 90, + "tr": true, + "txt": "0187-43-2281 笳冗セ朱キ逕コ蠖ケ蝣エシ亥鴻逡大コ∬趣シ臥ヲ冗・我ソ晏▼隱イ縲蝨ー蝓溷桁諡ャ謾ッ謠エ迴ュ縲0187-84-4907シ亥邱1506シ" + } + ], + "Kyotaku": [ + "シェシ。遘狗伐縺翫ー縺薙こ繧「繝励Λ繝ウ繧サ繝ウ繧ソ", + "縺ゅ>縺ア繧句、ァ譖イ螻螳莉玖ュキ謾ッ謠エ莠区・ュ謇", + "縺ゅj縺吶ョ陦励こ繧「繝励Λ繝ウ繧サ繝ウ繧ソ繝シ", + "縺縺薙>縺ョ驥御サ玖ュキ逶ク隲繧サ繝ウ繧ソ繝シ", + "縺医′縺翫こ繧「繝励Λ繝ウ繧サ繝ウ繧ソ繝シ", + "縺医′縺贋サ玖ュキ繧サ繝ウ繧ソ繝シ縺イ縺ウ縺肴", + "縺翫≧繧医≧縺九s莉玖ュキ繧サ繝ウ繧ソ繝シ蟇悟」ォ隕", + "縺翫≧繧医≧縺九s螻螳莉玖ュキ謾ッ謠エ繧サ繝ウ繧ソ", + "縺九¥縺ョ縺縺ヲ莉玖ュキ逶ク隲螳、", + "縺薙b繧後ウ謾ッ謠エ繧サ繝ウ繧ソ繝シ", + "縺ェ縺斐∩螻螳莉玖ュキ謾ッ謠エ繧サ繝ウ繧ソ繝シ", + "繧医▽縺ー莉玖ュキ逶ク隲繧サ繝ウ繧ソ繝シ", + "繧ア繧「繝励Λ繝ウ繧ゅ→縺セ縺。", + "繧ア繧「繝励Λ繝ウ繧サ繝ウ繧ソ繝シ逾槫イ。", + "繧ア繧「繝励Λ繝ウ繧サ繝ウ繧ソ繝シ隘ソ莉", + "繧ア繧「繝励Λ繝ウ繧サ繝ウ繧ソ繝シ荳ュ騾壹j", + "繧ア繧「繝励Λ繝ウ蟾・謌ソ", + "繧ア繧「繝励Λ繝ウ螟ァ譖イ", + "繧ア繧「繝槭ロ繧ケ繝繝シ繧キ繝ァ繝ウ縺輔&縺域", + "繧ア繧「繝ゥ繧、繝募ソ驛ス", + "繧オ繝昴シ繝医ワ繧ヲ繧ケ鬮倡", + "繧オ繝昴シ繝医ワ繧ヲ繧ケ莉吝圏", + "繧オ繝ウ繧ー繝ャ繧、繧ケ螻螳莉玖ュキ謾ッ謠エ莠区・ュ謇", + "繧オ繝ウ繧ソ蝨剃サ玖ュキ謾ッ謠エ繧サ繝ウ繧ソ繝シ", + "繧ケ繝槭シ繝医サ繧ア繧「繝励Λ繝ウ繧サ繝ウ繧ソ繝シ", + "繝九メ繧、繧ア繧「繧サ繝ウ繧ソ繝シ螟ァ譖イ", + "繝ェ繝ウ繝繝ウ繝舌え繝縺縺壹∩繧ア繧「繝励Λ繝ウ", + "繝ュ繝シ繝医ヴ繧「莉吝漉螻螳莉玖ュキ謾ッ謠エ莠区・ュ", + "繝ュ繝シ繝医ヴ繧「邱第ウ牙ア螳莉玖ュキ謾ッ謠エ莠区・ュ", + "蛹サ逋よウ穂ココ遉セ蝗」譚冗悄莨壹こ繧「繧オ繝昴シ繝", + "莉玖ュキ繝励Λ繧カ縺吶★繧峨s螟ァ莉吝ア螳莉玖ュキ", + "莉玖ュキ謾ッ謠エ繧サ繝ウ繧ソ繝シ縺阪◆縺繧", + "隗帝俣蟾昜サ玖ュキ謾ッ謠エ繧サ繝ウ繧ソ繝シ縺ゅ°繧", + "螻螳莉玖ュキ謾ッ謠エ繧サ繝ウ繧ソ繝シ繝繝ウ繝繝シ繝", + "螻螳莉玖ュキ謾ッ謠エ莠区・ュ謇逵悟漉", + "螻螳謾ッ謠エ莠区・ュ謇縺縺縺帙s", + "蜈豌励〒縺ュ繝繝域欠螳壼ア螳莉玖ュキ謾ッ謠エ莠", + "蜈豌励ワ繧ヲ繧ケ縺阪◆縺繧", + "蟆剰ヲ乗ィ。螟壽ゥ溯ス蝙句ア螳莉玖ュキ莠区・ュ謇繧ア", + "譽ョ縺薙@縺ョ荳伜ア螳莉玖ュキ謾ッ謠エ繧サ繝ウ繧ソ繝シ", + "莉吝圏蟶ょア螳莉玖ュキ謾ッ謠エ莠区・ュ謇", + "莉吝圏蟶ら、セ莨夂ヲ冗・牙鵠隴ー莨夊ァ帝、ィ繧ア繧「繝", + "莉吝圏蟶ら、セ莨夂ヲ冗・牙鵠隴ー莨夊・ソ譛ィ繧ア繧「繝", + "莉吝圏蟶ら、セ莨夂ヲ冗・牙鵠隴ー莨夂伐豐「貉悶こ繧「", + "莉吝圏蟶ょ桁諡ャ謾ッ謠エ繧サ繝ウ繧ソ繝シ", + "螟ァ譖イ險ェ蝠冗恚隴キ繧ケ繝繝シ繧キ繝ァ繝ウ莉玖ュキ謾ッ", + "螟ァ莉吝クら、セ莨夂ヲ冗・牙鵠隴ー莨夊・ソ驛ィ莉玖ュキ繧ケ", + "螟ァ莉吝クら、セ莨夂ヲ冗・牙鵠隴ー莨壻クュ螟ョ莉玖ュキ繧ケ", + "螟ァ莉吝クら、セ莨夂ヲ冗・牙鵠隴ー莨壽擲驛ィ莉玖ュキ繧ケ", + "螟ァ莉吝クょ慍蝓溷桁諡ャ謾ッ謠エ繧サ繝ウ繧ソ繝シ蜊泌柱", + "螟ァ莉吝クょ慍蝓溷桁諡ャ謾ッ謠エ繧サ繝ウ繧ソ繝シ隘ソ驛ィ", + "螟ァ莉吝クょ慍蝓溷桁諡ャ謾ッ謠エ繧サ繝ウ繧ソ繝シ荳ュ螟ョ", + "螟ァ莉吝クょ慍蝓溷桁諡ャ謾ッ謠エ繧サ繝ウ繧ソ繝シ譚ア驛ィ", + "螟ァ莉吝クょ慍蝓溷桁諡ャ謾ッ謠エ繧サ繝ウ繧ソ繝シ蜊鈴Κ", + "螟ァ莉咏セ朱キ莉玖ュキ遖冗・臥オ蜷 縺九>縺皮嶌", + "陌ケ縺ョ陦励♀縺翫∪縺後j繧ア繧「繝励Λ繝ウ繧サ繝ウ", + "陌ケ縺ョ陦励こ繧「繝励Λ繝ウ繧サ繝ウ繧ソ繝シ繧峨¥縺", + "鄒朱キ逕コ莉玖ュキ莠区・ュ謇", + "鄒朱キ逕コ蝨ー蝓溷桁諡ャ謾ッ謠エ繧サ繝ウ繧ソ繝シ", + "譛蛾剞莨夂、セ繝昴励Λ繝サ繧ア繧「繧オ繝シ繝薙せ", + "繝斐Η繧「縺ョ縺ョ縺ッ縺ェ", + "貉ァ豌エ縺ョ驛キ螻螳莉玖ュキ謾ッ謠エ莠区・ュ謇", + "蟆剰ヲ乗ィ。螟壽ゥ溯ス蝙句ア螳莉玖ュキ莠区・ュ謇縲", + "蝟懈・ス鬢ィ", + "蟆剰ヲ乗ィ。螟壽ゥ溯ス蝙句ア螳莉玖ュキ縺、縺ー縺崎拒", + "縺輔¥繧峨こ繧「繧サ繝ウ繧ソ繝シ", + "縺溘s縺ス縺ス", + "莉玖ュキ逶ク隲螳、縲隨代∩繧", + "繧ア繧「繝励Λ繝ウ繧サ繝ウ繧ソ繝シ縺ゅs繧", + "繧ア繧「繝励Λ繝ウ縺オ縺√∩繧翫<", + "縺ゅ>繧翫☆莉玖ュキ逶ク隲螳、", + "繧ア繧「繧ケ繝繝シ繧キ繝ァ繝ウ闃ア縺斐h縺ソ", + "縺翫≧繧医≧縺九s莉玖ュキ繧サ繝ウ繧ソ繝シ", + "縺翫≧繧医≧縺九s縲悟キ晏哨縺ョ螳カ縲", + "螟壽ゥ溯ス繝帙シ繝隘ソ莉", + "繧ア繧「繧オ繝昴シ繝育・槫イ。", + "貂豬∬拒螻螳莉玖ュキ謾ッ謠エ繧サ繝ウ繧ソ繝シ" + ] +} + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Nk/xdw_api.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Nk/xdw_api.h Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,1121 @@ +/* File: xdw_api.h +// Copyright(C) 1999-2013 by Fuji Xerox Co., Ltd. All right reserved. +*/ + +#ifndef XDW_API_H +#define XDW_API_H + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#ifndef XDWAPI_DECLARATIONS +#define XDWAPI_DECLARATIONS + +#ifdef _WIN64 +#ifndef XDW_DISABLE_PRAGMA_PACK +#pragma pack(push, xdwapi_enter_parser) +#pragma pack(8) +#endif /* XDW_DISABLE_PRAGMA_PACK */ +#endif /* _WIN64 */ + +#define XDWAPI __stdcall + +#define XDW_GI_VERSION 1 +#define XDW_GI_INSTALLPATH 2 +#define XDW_GI_BINPATH 3 +#define XDW_GI_PLUGINPATH 4 +#define XDW_GI_FOLDERROOTPATH 5 +#define XDW_GI_USERFOLDERPATH 6 +#define XDW_GI_SYSTEMFOLDERPATH 7 +#define XDW_GI_RECEIVEFOLDERPATH 8 +#define XDW_GI_SENDFOLDERPATH 9 +#define XDW_GI_DWINPUTPATH 10 +#define XDW_GI_DWDESKPATH 11 +#define XDW_GI_DWVIEWERPATH 12 +#define XDW_GI_DWVLTPATH 13 +#define XDW_GI_DWDESK_FILENAME_DELIMITER 1001 +#define XDW_GI_DWDESK_FILENAME_DIGITS 1002 + + +#define XDW_PGT_NULL 0 +#define XDW_PGT_FROMIMAGE 1 +#define XDW_PGT_FROMAPPL 2 + +#define XDW_MAXPATH 255 +#define XDW_MAXINPUTIMAGEPATH 127 + +#define XDW_OPEN_READONLY 0 +#define XDW_OPEN_UPDATE 1 + +#define XDW_AUTH_NONE 0 +#define XDW_AUTH_NODIALOGUE 1 +#define XDW_AUTH_CONDITIONAL_DIALOGUE 2 + +#define XDW_PERM_DOC_EDIT 0x02 +#define XDW_PERM_ANNO_EDIT 0x04 +#define XDW_PERM_PRINT 0x08 +#define XDW_PERM_COPY 0x10 + +#define XDW_DT_DOCUMENT 0 +#define XDW_DT_BINDER 1 +#define XDW_DT_CONTAINER 2 + +#define XDW_ROT_0 0 +#define XDW_ROT_90 90 +#define XDW_ROT_180 180 +#define XDW_ROT_270 270 + +#define XDW_CREATE_FITDEF 0 +#define XDW_CREATE_FIT 1 +#define XDW_CREATE_USERDEF 2 +#define XDW_CREATE_USERDEF_FIT 3 +#define XDW_CREATE_FITDEF_DIVIDEBMP 4 + +#define XDW_COMPRESS_NORMAL 0 +#define XDW_COMPRESS_LOSSLESS 1 +#define XDW_COMPRESS_HIGHQUALITY 2 +#define XDW_COMPRESS_HIGHCOMPRESS 3 +#define XDW_COMPRESS_NOCOMPRESS 4 +#define XDW_COMPRESS_JPEG 5 +#define XDW_COMPRESS_PACKBITS 6 +#define XDW_COMPRESS_G4 7 +#define XDW_COMPRESS_MRC_NORMAL 8 +#define XDW_COMPRESS_MRC_HIGHQUALITY 9 +#define XDW_COMPRESS_MRC_HIGHCOMPRESS 10 +#define XDW_COMPRESS_MRC 11 +#define XDW_COMPRESS_JPEG_TTN2 12 + +#define XDW_CONVERT_MRC_ORIGINAL 0 +#define XDW_CONVERT_MRC_OS 1 + +#define XDW_IMAGE_DIB 0 +#define XDW_IMAGE_TIFF 1 +#define XDW_IMAGE_JPEG 2 +#define XDW_IMAGE_PDF 3 + +#define XDW_CREATE_HCENTER 0 +#define XDW_CREATE_LEFT 1 +#define XDW_CREATE_RIGHT 2 + +#define XDW_CREATE_VCENTER 0 +#define XDW_CREATE_TOP 1 +#define XDW_CREATE_BOTTOM 2 + +#define XDW_CREATE_DEFAULT_SIZE 0 +#define XDW_CREATE_A3_SIZE 1 +#define XDW_CREATE_2A0_SIZE 2 + +#define XDW_LINE_NONE 0 +#define XDW_LINE_BEGINNING 1 +#define XDW_LINE_ENDING 2 +#define XDW_LINE_BOTH 3 +#define XDW_LINE_WIDE_POLYLINE 0 +#define XDW_LINE_POLYLINE 1 +#define XDW_LINE_POLYGON 2 + +#define XDW_BORDER_TYPE_SOLID 0 +#define XDW_BORDER_TYPE_DOT 1 +#define XDW_BORDER_TYPE_DASH 2 +#define XDW_BORDER_TYPE_DASHDOT 3 +#define XDW_BORDER_TYPE_DOUBLE 4 + +#define XDW_STAMP_AUTO 0 +#define XDW_STAMP_MANUAL 1 +#define XDW_STAMP_NO_BASISYEAR 0 +#define XDW_STAMP_BASISYEAR 1 +#define XDW_STAMP_DATE_YMD 0 +#define XDW_STAMP_DATE_DMY 1 + +#define XDW_PAGEFORM_HEADER 0 +#define XDW_PAGEFORM_FOOTER 1 +#define XDW_PAGEFORM_TOPIMAGE 2 +#define XDW_PAGEFORM_BOTTOMIMAGE 3 +#define XDW_PAGEFORM_PAGENUMBER 4 + +#define XDW_PAGEFORM_STAY 0 +#define XDW_PAGEFORM_REMOVE 1 + +#define XDW_ALIGN_LEFT 0 +#define XDW_ALIGN_HCENTER 1 +#define XDW_ALIGN_RIGHT 2 +#define XDW_ALIGN_TOP 0 +#define XDW_ALIGN_BOTTOM 1 +#define XDW_ALIGN_VCENTER 2 + +#define XDW_PAGERANGE_ALL 0 +#define XDW_PAGERANGE_SPECIFIED 1 + +#define XDW_CRTP_BEGINNING 1 +#define XDW_CRTP_PRINTING 2 +#define XDW_CRTP_PAGE_CREATING 3 +#define XDW_CRTP_ORIGINAL_APPENDING 4 +#define XDW_CRTP_WRITING 5 +#define XDW_CRTP_ENDING 6 +#define XDW_CRTP_CANCELING 7 +#define XDW_CRTP_FINISHED 8 +#define XDW_CRTP_CANCELED 9 + +#define XDW_AID_FUSEN 32794 +#define XDW_AID_TEXT 32785 +#define XDW_AID_STAMP 32819 +#define XDW_AID_STRAIGHTLINE 32828 +#define XDW_AID_RECTANGLE 32829 +#define XDW_AID_ARC 32830 +#define XDW_AID_POLYGON 32834 +#define XDW_AID_MARKER 32795 +#define XDW_AID_LINK 49199 +#define XDW_AID_PAGEFORM 32814 +#define XDW_AID_OLE 32783 +#define XDW_AID_BITMAP 32831 +#define XDW_AID_RECEIVEDSTAMP 32832 +#define XDW_AID_CUSTOM 32837 +#define XDW_AID_TITLE 32838 +#define XDW_AID_GROUP 32839 + +#define XDW_ATYPE_INT 0 +#define XDW_ATYPE_STRING 1 +#define XDW_ATYPE_DATE 2 +#define XDW_ATYPE_BOOL 3 +#define XDW_ATYPE_OCTS 4 +#define XDW_ATYPE_OTHER 999 + +#define XDW_SUMMARY_INFO 1 +#define XDW_USER_DEF 2 +#define XDW_ANNOTATION 4 + +#define XDW_SIZE_FREE 0 +#define XDW_SIZE_A3_PORTRAIT 1 +#define XDW_SIZE_A3_LANDSCAPE 2 +#define XDW_SIZE_A4_PORTRAIT 3 +#define XDW_SIZE_A4_LANDSCAPE 4 +#define XDW_SIZE_A5_PORTRAIT 5 +#define XDW_SIZE_A5_LANDSCAPE 6 +#define XDW_SIZE_B4_PORTRAIT 7 +#define XDW_SIZE_B4_LANDSCAPE 8 +#define XDW_SIZE_B5_PORTRAIT 9 +#define XDW_SIZE_B5_LANDSCAPE 10 + +#define XDW_BINDER_COLOR_0 0 +#define XDW_BINDER_COLOR_1 1 +#define XDW_BINDER_COLOR_2 2 +#define XDW_BINDER_COLOR_3 3 +#define XDW_BINDER_COLOR_4 4 +#define XDW_BINDER_COLOR_5 5 +#define XDW_BINDER_COLOR_6 6 +#define XDW_BINDER_COLOR_7 7 +#define XDW_BINDER_COLOR_8 8 +#define XDW_BINDER_COLOR_9 9 +#define XDW_BINDER_COLOR_10 10 +#define XDW_BINDER_COLOR_11 11 +#define XDW_BINDER_COLOR_12 12 +#define XDW_BINDER_COLOR_13 13 +#define XDW_BINDER_COLOR_14 14 +#define XDW_BINDER_COLOR_15 15 + +#define XDW_REDUCENOISE_NONE 0 +#define XDW_REDUCENOISE_NORMAL 1 +#define XDW_REDUCENOISE_WEAK 2 +#define XDW_REDUCENOISE_STRONG 3 + +#define XDW_PRIORITY_NONE 0 +#define XDW_PRIORITY_SPEED 1 +#define XDW_PRIORITY_RECOGNITION 2 + +#define XDW_OCR_ENGINE_V4 1 // old name - should be here for compatibility +#define XDW_OCR_ENGINE_DEFAULT 1 +#define XDW_OCR_ENGINE_WRP 2 +#define XDW_OCR_ENGINE_FRE 3 +#define XDW_OCR_ENGINE_FRE_MULTI 4 + +#define XDW_OCR_LANGUAGE_AUTO -1 +#define XDW_OCR_LANGUAGE_JAPANESE 0 +#define XDW_OCR_LANGUAGE_ENGLISH 1 + +#define XDW_OCR_MULTIPLELANGUAGES_ENGLISH 0x02 +#define XDW_OCR_MULTIPLELANGUAGES_FRENCH 0x04 +#define XDW_OCR_MULTIPLELANGUAGES_SIMPLIFIED_CHINESE 0x08 +#define XDW_OCR_MULTIPLELANGUAGES_TRADITIONAL_CHINESE 0x10 +#define XDW_OCR_MULTIPLELANGUAGES_THAI 0x20 +#define XDW_OCR_MULTIPLELANGUAGES_JAPANESE 0x40 +#define XDW_OCR_MULTIPLELANGUAGES_KOREAN 0x80 + +#define XDW_OCR_FORM_AUTO 0 +#define XDW_OCR_FORM_TABLE 1 +#define XDW_OCR_FORM_WRITING 2 + +#define XDW_OCR_COLUMN_AUTO 0 +#define XDW_OCR_COLUMN_HORIZONTAL_SINGLE 1 +#define XDW_OCR_COLUMN_HORIZONTAL_MULTI 2 +#define XDW_OCR_COLUMN_VERTICAL_SINGLE 3 +#define XDW_OCR_COLUMN_VERTICAL_MULTI 4 + +#define XDW_OCR_DOCTYPE_AUTO 0 +#define XDW_OCR_DOCTYPE_HORIZONTAL_SINGLE 1 +#define XDW_OCR_DOCTYPE_PLAINTEXT 2 + +#define XDW_OCR_ENGINE_LEVEL_SPEED 1 +#define XDW_OCR_ENGINE_LEVEL_STANDARD 2 +#define XDW_OCR_ENGINE_LEVEL_ACCURACY 3 + +#define XDW_OCR_MIXEDRATE_JAPANESE 1 +#define XDW_OCR_MIXEDRATE_BALANCED 2 +#define XDW_OCR_MIXEDRATE_ENGLISH 3 + +#define XDW_PROTECT_PSWD 1 +#define XDW_PROTECT_PSWD128 3 +#define XDW_PROTECT_PKI 4 +#define XDW_PROTECT_STAMP 5 +#define XDW_PROTECT_CONTEXT_SERVICE 6 +#define XDW_PROTECT_PSWD256 7 +#define XDW_PROTECT_PKI256 8 + +#define XDW_GPTI_TYPE_EMF 0 +#define XDW_GPTI_TYPE_OCRTEXT 1 + +#define XDW_IMAGE_MONO 0 +#define XDW_IMAGE_COLOR 1 +#define XDW_IMAGE_MONO_HIGHQUALITY 2 + +#define XDW_SIGNATURE_STAMP 100 +#define XDW_SIGNATURE_PKI 102 +#define XDW_SIGNATURE_PKI_SHA256 105 + +#define XDW_SIGNATURE_STAMP_DOC_NONE 0 +#define XDW_SIGNATURE_STAMP_DOC_NOEDIT 1 +#define XDW_SIGNATURE_STAMP_DOC_EDIT 2 +#define XDW_SIGNATURE_STAMP_DOC_BAD 3 + +#define XDW_SIGNATURE_STAMP_STAMP_NONE 0 +#define XDW_SIGNATURE_STAMP_STAMP_TRUSTED 1 +#define XDW_SIGNATURE_STAMP_STAMP_NOTRUST 2 + +#define XDW_SIGNATURE_STAMP_ERROR_OK 0 +#define XDW_SIGNATURE_STAMP_ERROR_NO_OPENING_CASE 1 +#define XDW_SIGNATURE_STAMP_ERROR_NO_SELFSTAMP 2 +#define XDW_SIGNATURE_STAMP_ERROR_OUT_OF_VALIDITY 3 +#define XDW_SIGNATURE_STAMP_ERROR_INVALID_DATA 4 +#define XDW_SIGNATURE_STAMP_ERROR_OUT_OF_MEMORY 100 +#define XDW_SIGNATURE_STAMP_ERROR_UNKNOWN 9999 + +#define XDW_SIGNATURE_PKI_DOC_UNKNOWN 0 +#define XDW_SIGNATURE_PKI_DOC_GOOD 1 +#define XDW_SIGNATURE_PKI_DOC_MODIFIED 2 +#define XDW_SIGNATURE_PKI_DOC_BAD 3 +#define XDW_SIGNATURE_PKI_DOC_GOOD_TRUSTED 4 +#define XDW_SIGNATURE_PKI_DOC_MODIFIED_TRUSTED 5 + +#define XDW_SIGNATURE_PKI_TYPE_LOW 0 +#define XDW_SIGNATURE_PKI_TYPE_MID_LOCAL 1 +#define XDW_SIGNATURE_PKI_TYPE_MID_NETWORK 2 +#define XDW_SIGNATURE_PKI_TYPE_HIGH_LOCAL 3 +#define XDW_SIGNATURE_PKI_TYPE_HIGH_NETWORK 4 + +#define XDW_SIGNATURE_PKI_CERT_UNKNOWN 0 +#define XDW_SIGNATURE_PKI_CERT_OK 1 +#define XDW_SIGNATURE_PKI_CERT_NO_ROOT_CERTIFICATE 2 +#define XDW_SIGNATURE_PKI_CERT_NO_REVOCATION_CHECK 3 +#define XDW_SIGNATURE_PKI_CERT_OUT_OF_VALIDITY 4 +#define XDW_SIGNATURE_PKI_CERT_OUT_OF_VALIDITY_AT_SIGNED_TIME 5 +#define XDW_SIGNATURE_PKI_CERT_REVOKE_CERTIFICATE 6 +#define XDW_SIGNATURE_PKI_CERT_REVOKE_INTERMEDIATE_CERTIFICATE 7 +#define XDW_SIGNATURE_PKI_CERT_INVALID_SIGNATURE 8 +#define XDW_SIGNATURE_PKI_CERT_INVALID_USAGE 9 +#define XDW_SIGNATURE_PKI_CERT_UNDEFINED_ERROR 10 + +#define XDW_SIGNATURE_PKI_ERROR_UNKNOWN 0 +#define XDW_SIGNATURE_PKI_ERROR_OK 1 +#define XDW_SIGNATURE_PKI_ERROR_BAD_PLATFORM 2 +#define XDW_SIGNATURE_PKI_ERROR_WRITE_REG_ERROR 3 +#define XDW_SIGNATURE_PKI_ERROR_BAD_TRUST_LEVEL 4 +#define XDW_SIGNATURE_PKI_ERROR_BAD_REVOKE_CHECK_TYPE 5 +#define XDW_SIGNATURE_PKI_ERROR_BAD_AUTO_IMPORT_CERT_FLAG 6 +#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN_CONFIG 7 +#define XDW_SIGNATURE_PKI_ERROR_NO_IMAGE_FILE 8 +#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN_CERT 9 +#define XDW_SIGNATURE_PKI_ERROR_NO_SIGN_CERT 10 +#define XDW_SIGNATURE_PKI_ERROR_NOT_USE_PRIVATE_KEY 11 +#define XDW_SIGNATURE_PKI_ERROR_INVALID 12 +#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN 13 +#define XDW_SIGNATURE_PKI_ERROR_REVOKE_CHECK_ERROR 14 +#define XDW_SIGNATURE_PKI_ERROR_OUT_OF_VALIDITY 15 +#define XDW_SIGNATURE_PKI_ERROR_NO_CERT 16 +#define XDW_SIGNATURE_PKI_ERROR_FAILURE_IMPOPT_CERT 17 +#define XDW_SIGNATURE_PKI_ERROR_NO_ROOT_CERT 18 +#define XDW_SIGNATURE_PKI_ERROR_BAD_CERT_SIZE 19 +#define XDW_SIGNATURE_PKI_ERROR_BAD_ARG 20 +#define XDW_SIGNATURE_PKI_ERROR_BAD_CERT_FORMAT 21 + +#define XDW_SECURITY_PKI_ERROR_UNKNOWN 0 +#define XDW_SECURITY_PKI_ERROR_OK 1 +#define XDW_SECURITY_PKI_ERROR_BAD_PLATFORM 2 +#define XDW_SECURITY_PKI_ERROR_WRITE_REG_ERROR 3 +#define XDW_SECURITY_PKI_ERROR_BAD_TRUST_LEVEL 4 +#define XDW_SECURITY_PKI_ERROR_BAD_REVOKE_CHECK_TYPE 5 +#define XDW_SECURITY_PKI_ERROR_REVOKED 6 +#define XDW_SECURITY_PKI_ERROR_BAD_SIGN 7 +#define XDW_SECURITY_PKI_ERROR_REVOKE_CHECK_ERROR 8 +#define XDW_SECURITY_PKI_ERROR_OUT_OF_VALIDITY 9 +#define XDW_SECURITY_PKI_ERROR_NO_CERT 10 +#define XDW_SECURITY_PKI_ERROR_FAILURE_IMPORT_CERT 11 +#define XDW_SECURITY_PKI_ERROR_NO_ROOT_CERT 12 +#define XDW_SECURITY_PKI_ERROR_BAD_CERT_FORMAT 13 +#define XDW_SECURITY_PKI_ERROR_BAD_CERT_USAGE 14 +#define XDW_SECURITY_PKI_ERROR_CA_CERT_IS_REVOKED 15 +#define XDW_SECURITY_PKI_ERROR_TOO_MANY_CERT 16 + +#define XDW_IGNORE_CASE 0x02 +#define XDW_IGNORE_WIDTH 0x04 +#define XDW_IGNORE_HIRAKATA 0x08 + +#define XDW_STARCH 1 +#define XDW_STARCH_OFF 0 + +#define XDW_TEXT_UNKNOWN 0 +#define XDW_TEXT_MULTIBYTE 1 +#define XDW_TEXT_UNICODE 2 +#define XDW_TEXT_UNICODE_IFNECESSARY 3 + +#define XDW_HGLOBAL void* + +typedef struct { int dummy; } *XDW_DOCUMENT_HANDLE; +typedef struct { int dummy; } *XDW_CREATE_HANDLE; +typedef struct { int dummy; } *XDW_ANNOTATION_HANDLE; +typedef struct { int dummy; } *XDW_FOUND_HANDLE; + +typedef unsigned short XDW_WCHAR; + +typedef struct tag_XDW_RECT { + long left; + long top; + long right; + long bottom; +} XDW_RECT; + +typedef struct tag_XDW_GPTI_OCRTEXT_UNIT { + const char* lpszText; + XDW_RECT rect; +} XDW_GPTI_OCRTEXT_UNIT; + +typedef struct tag_XDW_GPTI_OCRTEXT { + int nUnitNum; + XDW_GPTI_OCRTEXT_UNIT* pUnits; +} XDW_GPTI_OCRTEXT; + +typedef struct tag_XDW_GPTI_INFO { + int nSize; + int nInfoType; + int nPageWidth; + int nPageHeight; + int nRotateDegree; + int nDataSize; + XDW_HGLOBAL pData; +} XDW_GPTI_INFO; + +typedef struct tag_XDW_DOCUMENT_INFO { + int nSize; + int nPages; + int nVersion; + int nOriginalData; + int nDocType; + int nPermission; + int nShowAnnotations; + int nDocuments; + int nBinderColor; + int nBinderSize; +} XDW_DOCUMENT_INFO; + +typedef struct tag_XDW_PAGE_INFO { + int nSize; + int nWidth; + int nHeight; + int nPageType; + int nHorRes; + int nVerRes; + int nCompressType; + int nAnnotations; +} XDW_PAGE_INFO; + +typedef struct tag_XDW_PAGE_INFO_EX { + int nSize; + int nWidth; + int nHeight; + int nPageType; + int nHorRes; + int nVerRes; + int nCompressType; + int nAnnotations; + int nDegree; + int nOrgWidth; + int nOrgHeight; + int nOrgHorRes; + int nOrgVerRes; + int nImageWidth; + int nImageHeight; +} XDW_PAGE_INFO_EX; + +typedef struct tag_XDW_IMAGE_OPTION { + int nSize; + int nDpi; + int nColor; +} XDW_IMAGE_OPTION; + +typedef struct tag_XDW_OPEN_MODE { + int nSize; + int nOption; +} XDW_OPEN_MODE; + +typedef struct tag_XDW_OPEN_MODE_EX { + int nSize; + int nOption; + int nAuthMode; +} XDW_OPEN_MODE_EX; + +typedef struct tag_XDW_CREATE_OPTION { + int nSize; + int nFitImage; + int nCompress; + int nZoom; + int nWidth; + int nHeight; + int nHorPos; + int nVerPos; +} XDW_CREATE_OPTION; + +typedef struct tag_XDW_CREATE_OPTION_EX { + int nSize; + int nFitImage; + int nCompress; + int nZoom; + int nWidth; + int nHeight; + int nHorPos; + int nVerPos; + int nZoomDetail; +} XDW_CREATE_OPTION_EX; + +typedef struct tag_XDW_CREATE_OPTION_EX2 { + int nSize; + int nFitImage; + int nCompress; + int nZoom; + int nWidth; + int nHeight; + int nHorPos; + int nVerPos; + int nZoomDetail; + int nMaxPaperSize; +} XDW_CREATE_OPTION_EX2; + + +#define XDW_SIZEOF_ORGDATANAME 256 +typedef struct tag_XDW_ORGDATA_INFO { + int nSize; + int nDataSize; + long nDate; + char szName[XDW_SIZEOF_ORGDATANAME]; +} XDW_ORGDATA_INFO; + +typedef struct tag_XDW_ORGDATA_INFOW { + int nSize; + int nDataSize; + long nDate; + XDW_WCHAR szName[XDW_SIZEOF_ORGDATANAME]; +} XDW_ORGDATA_INFOW; + +#define XDW_SIZEOF_LINKROOTFOLDER 256 +typedef struct tag_XDW_LINKROOTFOLDER_INFO { + int nSize; + char szPath[XDW_SIZEOF_LINKROOTFOLDER]; + char szLinkRootFolderName[XDW_SIZEOF_LINKROOTFOLDER]; +} XDW_LINKROOTFOLDER_INFO ; + +typedef struct tag_XDW_LINKROOTFOLDER_INFOW { + int nSize; + XDW_WCHAR wszPath[XDW_SIZEOF_LINKROOTFOLDER]; + XDW_WCHAR wszLinkRootFolderName[XDW_SIZEOF_LINKROOTFOLDER]; +} XDW_LINKROOTFOLDER_INFOW ; + +typedef struct tag_XDW_CREATE_STATUS { + int nSize; + int phase; + int nTotalPage; + int nPage; +} XDW_CREATE_STATUS; + +typedef struct tag_XDW_ANNOTATION_INFO { + int nSize; + XDW_ANNOTATION_HANDLE handle; + int nHorPos; + int nVerPos; + int nWidth; + int nHeight; + int nAnnotationType; + int nChildAnnotations; +} XDW_ANNOTATION_INFO; + + +typedef struct tag_XDW_AA_INITIAL_DATA { + int nSize; + int nAnnotationType; + int nReserved1; + int nReserved2; +} XDW_AA_INITIAL_DATA; + +typedef struct tag_XDW_AA_FUSEN_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nWidth; + int nHeight; +} XDW_AA_FUSEN_INITIAL_DATA; + +typedef struct tag_XDW_AA_STRAIGHTLINE_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nHorVec; + int nVerVec; +} XDW_AA_STRAIGHTLINE_INITIAL_DATA; + +typedef struct tag_XDW_AA_RECT_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nWidth; + int nHeight; +} XDW_AA_RECT_INITIAL_DATA; + +typedef struct tag_XDW_AA_ARC_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nWidth; + int nHeight; +} XDW_AA_ARC_INITIAL_DATA; + +typedef struct tag_XDW_AA_BITMAP_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + char szImagePath[256]; +} XDW_AA_BITMAP_INITIAL_DATA; + +typedef struct tag_XDW_AA_BITMAP_INITIAL_DATAW { + XDW_AA_INITIAL_DATA common; + XDW_WCHAR wszImagePath[256]; +} XDW_AA_BITMAP_INITIAL_DATAW; + +typedef struct tag_XDW_AA_STAMP_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nWidth; +} XDW_AA_STAMP_INITIAL_DATA; + +typedef struct tag_XDW_AA_RECEIVEDSTAMP_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nWidth; +} XDW_AA_RECEIVEDSTAMP_INITIAL_DATA; + +#define XDW_SIZEOF_GUID 36 +typedef struct tag_XDW_AA_CUSTOM_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nWidth; + int nHeight; + char* lpszGuid; + int nCustomDataSize; + unsigned char* pCustomData; +} XDW_AA_CUSTOM_INITIAL_DATA; + +typedef struct tag_XDW_IMAGE_OPTION_EX { + int nSize; + int nDpi; + int nColor; + int nImageType; + void* pDetailOption; +} XDW_IMAGE_OPTION_EX; + +typedef struct tag_XDW_IMAGE_OPTION_TIFF { + int nSize; + int nCompress; + int nEndOfMultiPages; +} XDW_IMAGE_OPTION_TIFF; + +typedef struct tag_XDW_IMAGE_OPTION_JPEG { + int nSize; + int nCompress; +} XDW_IMAGE_OPTION_JPEG; + +typedef struct tag_XDW_IMAGE_OPTION_PDF { + int nSize; + int nCompress; + int nConvertMethod; + int nEndOfMultiPages; +} XDW_IMAGE_OPTION_PDF; + +typedef struct tag_XDW_BINDER_INITIAL_DATA { + int nSize; + int nBinderColor; + int nBinderSize; +} XDW_BINDER_INITIAL_DATA; + +typedef struct tag_XDW_OCR_OPTION_V4 { + int nSize; + int nNoiseReduction; + int nLanguage; + int nInsertSpaceCharacter; + int nJapaneseKnowledgeProcessing; + int nForm; + int nColumn; + int nDisplayProcess; + int nAutoDeskew; +} XDW_OCR_OPTION_V4; + +typedef struct tag_XDW_OCR_OPTION_V5 { + int nSize; + int nNoiseReduction; + int nLanguage; + int nInsertSpaceCharacter; + int nJapaneseKnowledgeProcessing; + int nForm; + int nColumn; + int nDisplayProcess; + int nAutoDeskew; + unsigned int nAreaNum; + XDW_RECT** pAreaRects; +} XDW_OCR_OPTION_V5; + +typedef struct tag_XDW_OCR_OPTION_V5_EX { + int nSize; + int nNoiseReduction; + int nLanguage; + int nInsertSpaceCharacter; + int nJapaneseKnowledgeProcessing; + int nForm; + int nColumn; + int nDisplayProcess; + int nAutoDeskew; + unsigned int nAreaNum; + XDW_RECT** pAreaRects; + int nPriority; +} XDW_OCR_OPTION_V5_EX; + +typedef struct tag_XDW_OCR_OPTION_WRP { + int nSize; + int nNoiseReduction; + int nLanguage; + int nInsertSpaceCharacter; + int nForm; + int nColumn; + int nAutoDeskew; + int nPriority; +} XDW_OCR_OPTION_WRP; + +typedef struct tag_XDW_OCR_OPTION_FRE { + int nSize; + int nNoiseReduction; + int nLanguage; + int nDocumentType; + int nDisplayProcess; + int nAutoDeskew; + unsigned int nAreaNum; + XDW_RECT** pAreaRects; + int nPriority; +} XDW_OCR_OPTION_FRE; + +typedef struct tag_XDW_OCR_OPTION_V7 { + int nSize; + int nNoiseReduction; + int nLanguage; + int nInsertSpaceCharacter; + int nJapaneseKnowledgeProcessing; + int nForm; + int nColumn; + int nDisplayProcess; + int nAutoDeskew; + unsigned int nAreaNum; + XDW_RECT** pAreaRects; + int nPriority; + int nEngineLevel; + int nLanguageMixedRate; + int nHalfSizeChar; +} XDW_OCR_OPTION_V7; + +typedef struct tag_XDW_OCR_OPTION_FRE_V7 { + int nSize; + int nNoiseReduction; + int nLanguage; + int nDocumentType; + int nDisplayProcess; + int nAutoDeskew; + unsigned int nAreaNum; + XDW_RECT** pAreaRects; + int nPriority; + int nEngineLevel; +} XDW_OCR_OPTION_FRE_V7; + +typedef struct tag_XDW_PAGE_COLOR_INFO { + int nSize; + int nColor; + int nImageDepth; +} XDW_PAGE_COLOR_INFO; + +#define XDW_SIZEOF_PSWD 256 +typedef struct tag_XDW_SECURITY_OPTION_PSWD { + int nSize; + int nPermission; + char szOpenPswd[XDW_SIZEOF_PSWD]; + char szFullAccessPswd[XDW_SIZEOF_PSWD]; + char* lpszComment; +} XDW_SECURITY_OPTION_PSWD; + +typedef struct tag_XDW_DER_CERTIFICATE { + void *pCert; + int nCertSize; +} XDW_DER_CERTIFICATE; + +typedef struct tag_XDW_SECURITY_OPTION_PKI { + int nSize; + int nPermission; + XDW_DER_CERTIFICATE* lpxdcCerts; + int nCertsNum; + int nFullAccessCertsNum; + int nErrorStatus; + int nFirstErrorCert; +} XDW_SECURITY_OPTION_PKI; + +typedef struct tag_XDW_PROTECT_OPTION { + int nSize; + int nAuthMode; +} XDW_PROTECT_OPTION; + +typedef struct tag_XDW_RELEASE_PROTECTION_OPTION { + int nSize; + int nAuthMode; +} XDW_RELEASE_PROTECTION_OPTION; + +typedef struct tag_XDW_PROTECTION_INFO { + int nSize; + int nProtectType; + int nPermission; +} XDW_PROTECTION_INFO; + +typedef struct tag_XDW_SIGNATURE_OPTION_V5 { + int nSize; + int nPage; + int nHorPos; + int nVerPos; + int nSignatureType; +} XDW_SIGNATURE_OPTION_V5; + +typedef struct tag_XDW_SIGNATURE_INFO_V5 { + int nSize; + int nSignatureType; + int nPage; + int nHorPos; + int nVerPos; + int nWidth; + int nHeight; + long nSignedTime; +} XDW_SIGNATURE_INFO_V5; + +typedef struct tag_XDW_SIGNATURE_MODULE_STATUS { + int nSize; + int nSignatureType; + int nErrorStatus; +} XDW_SIGNATURE_MODULE_STATUS; + +typedef struct tag_XDW_SIGNATURE_MODULE_OPTION_PKI { + int nSize; + void *pSignerCert; + int nSignerCertSize; +} XDW_SIGNATURE_MODULE_OPTION_PKI; + +#define XDW_SIZEOF_STAMPNAME 256 +#define XDW_SIZEOF_STAMPOWNERNAME 64 +#define XDW_SIZEOF_STAMPREMARKS 1024 +typedef struct tag_XDW_SIGNATURE_STAMP_INFO_V5 { + int nSize; + char lpszStampName[XDW_SIZEOF_STAMPNAME]; + char lpszOwnerName[XDW_SIZEOF_STAMPOWNERNAME]; + long nValidDate; + char lpszRemarks[XDW_SIZEOF_STAMPREMARKS]; + int nDocVerificationStatus; + int nStampVerificationStatus; +} XDW_SIGNATURE_STAMP_INFO_V5; + +#define XDW_SIZEOF_PKIMODULENAME 16 +#define XDW_SIZEOF_PKISUBJECTDN 512 +#define XDW_SIZEOF_PKISUBJECT 256 +#define XDW_SIZEOF_PKIISSUERDN 512 +#define XDW_SIZEOF_PKIISSUER 256 +#define XDW_SIZEOF_PKINOTBEFORE 32 +#define XDW_SIZEOF_PKINOTAFTER 32 +#define XDW_SIZEOF_PKISERIAL 64 +#define XDW_SIZEOF_PKIREMARKS 64 +#define XDW_SIZEOF_PKISIGNEDTIME 32 + +typedef struct tag_XDW_SIGNATURE_PKI_INFO_V5 { + int nSize; + char lpszModule[XDW_SIZEOF_PKIMODULENAME]; + char lpszSubjectDN[XDW_SIZEOF_PKISUBJECTDN]; + char lpszSubject[XDW_SIZEOF_PKISUBJECT]; + char lpszIssuerDN[XDW_SIZEOF_PKIISSUERDN]; + char lpszIssuer[XDW_SIZEOF_PKIISSUER]; + char lpszNotBefore[XDW_SIZEOF_PKINOTBEFORE]; + char lpszNotAfter[XDW_SIZEOF_PKINOTAFTER]; + char lpszSerial[XDW_SIZEOF_PKISERIAL]; + void* pSignerCert; + int nSignerCertSize; + char lpszRemarks[XDW_SIZEOF_PKIREMARKS]; + char lpszSigningTime[XDW_SIZEOF_PKISIGNEDTIME]; + int nDocVerificationStatus; + int nCertVerificationType; + int nCertVerificationStatus; +} XDW_SIGNATURE_PKI_INFO_V5; + +typedef struct tag_XDW_OCR_TEXTINFO { + int nSize; + int nWidth; + int nHeight; + long charset; + char* lpszText; + int nLineRect; + XDW_RECT* pLineRect; +} XDW_OCR_TEXTINFO; + +typedef struct tag_XDW_OCRIMAGE_OPTION { + int nSize; + int nDpi; + int nNoiseReduction; + int nPriority; +} XDW_OCRIMAGE_OPTION; + +typedef struct tag_XDW_FIND_TEXT_OPTION { + int nSize; + int nIgnoreMode; + int nReserved; + int nReserved2; +} XDW_FIND_TEXT_OPTION; + +#define XDW_FOUND_RECT_STATUS_HIT (0) +#define XDW_FOUND_RECT_STATUS_PAGE (1) + +typedef struct tag_XDW_POINT { + int x; + int y; +} XDW_POINT; + + +typedef struct tag_XDW_AA_MARKER_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nCounts; + XDW_POINT* pPoints; +} XDW_AA_MARKER_INITIAL_DATA; + +typedef struct tag_XDW_AA_POLYGON_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nCounts; + XDW_POINT* pPoints; +} XDW_AA_POLYGON_INITIAL_DATA; + +typedef struct XDW_BEGIN_CREATE_OPTION { + int nSize; + BOOL bNoUseSpecifiedApp; +} XDW_BEGIN_CREATE_OPTION; + +#ifdef _WIN64 +#ifndef XDW_DISABLE_PRAGMA_PACK +#pragma pack(pop, xdwapi_enter_parser) +#endif /* XDW_DISABLE_PRAGMA_PACK */ +#endif /* _WIN64 */ + +#endif //XDWAPI_DECLARATIONS + + +int XDWAPI XDW_GetInformation(int nIndex, char* lpszOutput, int nSize, void* reserved); +int XDWAPI XDW_GetInformationW(int nIndex, XDW_WCHAR* lpwszOutput, int nSize, void* reserved); +int XDWAPI XDW_AddSystemFolder(int nIndex, void* reserved ); + +int XDWAPI XDW_MergeXdwFiles(const char** lpszInputPaths, int nFiles, const char* lpszOutputPath, void* reserved ); +int XDWAPI XDW_MergeXdwFilesW(const XDW_WCHAR** lpwszInputPaths, int nFiles, const XDW_WCHAR* lpwszOutputPath, void* reserved ); +int XDWAPI XDW_OpenDocumentHandle(const char* lpszFilePath, XDW_DOCUMENT_HANDLE* pHandle, XDW_OPEN_MODE* pOpenMode); +int XDWAPI XDW_OpenDocumentHandleW(const XDW_WCHAR* lpwszFilePath, XDW_DOCUMENT_HANDLE* pHandle, XDW_OPEN_MODE* pOpenMode); +int XDWAPI XDW_CloseDocumentHandle(XDW_DOCUMENT_HANDLE handle, void* reserved ); +int XDWAPI XDW_GetDocumentInformation(XDW_DOCUMENT_HANDLE handle, XDW_DOCUMENT_INFO* pDocumentInfo); +int XDWAPI XDW_GetPageInformation(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_PAGE_INFO* pPageInfo); +int XDWAPI XDW_GetPageImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_GetPageImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_GetPageText(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved ); +int XDWAPI XDW_ConvertPageToImageFile(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, XDW_IMAGE_OPTION* pImageOption); +int XDWAPI XDW_ConvertPageToImageFileW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, XDW_IMAGE_OPTION* pImageOption); +int XDWAPI XDW_GetPage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_GetPageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_DeletePage(XDW_DOCUMENT_HANDLE handle, int nPage, void* reserved); +int XDWAPI XDW_RotatePage(XDW_DOCUMENT_HANDLE handle, int nPage, int nDegree, void* reserved); +int XDWAPI XDW_SaveDocument(XDW_DOCUMENT_HANDLE handle, void* reserved); +int XDWAPI XDW_CreateXdwFromImageFile(const char* lpszInputPath, const char* lpszOutputPath, XDW_CREATE_OPTION* pOption); +int XDWAPI XDW_CreateXdwFromImageFileW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, XDW_CREATE_OPTION* pOption); + +int XDWAPI XDW_GetOriginalDataInformation(XDW_DOCUMENT_HANDLE handle, int nOriginalData, XDW_ORGDATA_INFO* pOriginalDataInfo, void* reserved); +int XDWAPI XDW_GetOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_GetOriginalDataW(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_InsertOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const char* lpszInputPath, void* reserved); +int XDWAPI XDW_DeleteOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, void* reserved); + +int XDWAPI XDW_BeginCreationFromAppFile(const char* lpszInputPath, const char* lpszOutputPath, BOOL bWithOriginal, XDW_CREATE_HANDLE* handle, void* pCreateOption); +int XDWAPI XDW_BeginCreationFromAppFileW(const XDW_WCHAR* lpszInputPath, const XDW_WCHAR* lpszOutputPath, BOOL bWithOriginal, XDW_CREATE_HANDLE* handle, void* pCreateOption); +int XDWAPI XDW_EndCreationFromAppFile(XDW_CREATE_HANDLE handle, void* reserved); +int XDWAPI XDW_GetStatusCreationFromAppFile(XDW_CREATE_HANDLE handle, XDW_CREATE_STATUS* pStatus); +int XDWAPI XDW_CancelCreationFromAppFile(XDW_CREATE_HANDLE handle, void* reserved); + +int XDWAPI XDW_GetUserAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved); +int XDWAPI XDW_SetUserAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved); + +int XDWAPI XDW_GetAnnotationInformation(XDW_DOCUMENT_HANDLE hDocument, int nPage, XDW_ANNOTATION_HANDLE hAnnotation,int nIndex, XDW_ANNOTATION_INFO* pAnnotationInfo, void* reserved); +int XDWAPI XDW_GetAnnotationAttribute(XDW_ANNOTATION_HANDLE handle, const char* lpszAttributeName, char* pAttribute, int nDataSize, void* reserved); + +int XDWAPI XDW_AddAnnotation(XDW_DOCUMENT_HANDLE handle, int hAnnotationType, int nPage, int nHorPos, int nVerPos, XDW_AA_INITIAL_DATA *pInitialData, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved); +int XDWAPI XDW_RemoveAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hRemoveAnnotation, void* reserved); +int XDWAPI XDW_SetAnnotationAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, int nReserved, void* pReserved); +int XDWAPI XDW_SetAnnotationSize(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nWidth, int nHeight, void* reserved); +int XDWAPI XDW_SetAnnotationPosition(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, void* reserved); +int XDWAPI XDW_CreateSfxDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_CreateSfxDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_ExtractFromSfxDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_ExtractFromSfxDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved); + +int XDWAPI XDW_ConvertPageToImageHandle(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_HGLOBAL* phDIB, XDW_IMAGE_OPTION* pImageOption); +int XDWAPI XDW_GetThumbnailImageHandle(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_HGLOBAL* phDIB, void* reserved); + +int XDWAPI XDW_GetPageTextToMemory(XDW_DOCUMENT_HANDLE handle, int nPage, char* lpszValue, int nDataSize, void* reserved); +int XDWAPI XDW_GetFullText(XDW_DOCUMENT_HANDLE handle, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_GetPageUserAttribute(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved); +int XDWAPI XDW_SetPageUserAttribute(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved); + +int XDWAPI XDW_ReducePageNoise(XDW_DOCUMENT_HANDLE handle, int nPage, int nLevel, void* reserved); +int XDWAPI XDW_ShowOrHideAnnotations(XDW_DOCUMENT_HANDLE handle, int nShowAnnotations, void* reserved); +int XDWAPI XDW_GetCompressedPageImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_GetCompressedPageImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_InsertDocument(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszInputPath, void* reserved); +int XDWAPI XDW_InsertDocumentW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszInputPath, void* reserved); +int XDWAPI XDW_ApplyOcr(XDW_DOCUMENT_HANDLE handle, int nPage, int nOcrEngine, void* pOption, void* reserved); +int XDWAPI XDW_RotatePageAuto(XDW_DOCUMENT_HANDLE handle, int nPage, void* reserved); +int XDWAPI XDW_CreateBinder(const char* lpszOutputPath, XDW_BINDER_INITIAL_DATA* pInitialData, void* reserved); +int XDWAPI XDW_CreateBinderW(const XDW_WCHAR* lpwszOutputPath, XDW_BINDER_INITIAL_DATA* pInitialData, void* reserved); +int XDWAPI XDW_InsertDocumentToBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszInputPath, void* reserved); + +int XDWAPI XDW_GetDocumentFromBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_GetDocumentFromBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_DeleteDocumentInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, void* reserved); +int XDWAPI XDW_GetDocumentNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, char* lpszDocName, int nDocNameSize, void* reserved); +int XDWAPI XDW_SetDocumentNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, char* lpszDocName, void* reserved); +int XDWAPI XDW_GetDocumentInformationInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, XDW_DOCUMENT_INFO* pDocumentInfo, void* reserved); +int XDWAPI XDW_Finalize(void* reserved); +int XDWAPI XDW_GetPageColorInformation(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_PAGE_COLOR_INFO* pColorInfo, void* reserved); +int XDWAPI XDW_OptimizeDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_OptimizeDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_ProtectDocument(const char* lpszInputPath, const char* lpszOutputPath, int nProtectType, void* pModuleOption, void* pProtectOption); +int XDWAPI XDW_ProtectDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, int nProtectType, void* pModuleOption, void* pProtectOption); + +int XDWAPI XDW_CreateXdwFromImageFileAndInsertDocument(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszInputPath, XDW_CREATE_OPTION* pOption, void* reserved); +int XDWAPI XDW_CreateXdwFromImageFileAndInsertDocumentW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszInputPath, XDW_CREATE_OPTION* pOption, void* reserved); +int XDWAPI XDW_GetDocumentAttributeNumber(XDW_DOCUMENT_HANDLE handle, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByName(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByOrder(XDW_DOCUMENT_HANDLE handle, int nOrder, char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved); +int XDWAPI XDW_SetDocumentAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, void* reserved); +int XDWAPI XDW_SucceedAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszFilePath, int nDocument, int nSuccession, void* reserved); +int XDWAPI XDW_SucceedAttributeW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* lpwszFilePath, int nDocument, int nSuccession, void* reserved); +int XDWAPI XDW_GetPageFormAttribute(XDW_DOCUMENT_HANDLE handle, int nPageForm, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void* reserved); +int XDWAPI XDW_SetPageFormAttribute(XDW_DOCUMENT_HANDLE handle, int nPageForm, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, int nReserved, void* pReserved); +int XDWAPI XDW_UpdatePageForm(XDW_DOCUMENT_HANDLE handle, int nOtherPageForm, void* reserved); +int XDWAPI XDW_RemovePageForm(XDW_DOCUMENT_HANDLE handle, int nOtherPageForm, void* reserved); +int XDWAPI XDW_GetLinkRootFolderInformation(int nOrder, XDW_LINKROOTFOLDER_INFO* pLinkRootFolderInfo, void* reserved); +int XDWAPI XDW_GetLinkRootFolderInformationW(int nOrder, XDW_LINKROOTFOLDER_INFOW* pLinkRootFolderInfo, void* reserved); +int XDWAPI XDW_GetLinkRootFolderNumber(void* reserved); +int XDWAPI XDW_GetLinkRootFolderNumberW(void* reserved); +int XDWAPI XDW_GetPageTextInformation(XDW_DOCUMENT_HANDLE handle, int nPage, void* pInfo, void* reserved); +int XDWAPI XDW_GetDocumentSignatureNumber(XDW_DOCUMENT_HANDLE handle, void* reserved); +int XDWAPI XDW_AddAnnotationOnParentAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int hAnnotationType, int nHorPos, int nVerPos, XDW_AA_INITIAL_DATA *pInitialData, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved); +int XDWAPI XDW_SignDocument(const char* lpszInputPath, const char* lpszOutputPath, void* pOption, void* pModuleOption, void* pReserved, void* pModuleStatus); +int XDWAPI XDW_SignDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* pOption, void* pModuleOption, void* pReserved, void* pModuleStatus); +int XDWAPI XDW_GetSignatureInformation(XDW_DOCUMENT_HANDLE handle, int nSignature, void* pInfo, void* pModuleInfo, void* pReserved, void* pModuleStatus); +int XDWAPI XDW_UpdateSignatureStatus(XDW_DOCUMENT_HANDLE handle, int nSignature, void* pModuleOption, void* pReserved, void* pModuleStatus); + +int XDWAPI XDW_GetOcrImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* pImageOption, void* reserved); +int XDWAPI XDW_GetOcrImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* pImageOption, void* reserved); +int XDWAPI XDW_SetOcrData(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_OCR_TEXTINFO* pData, void* reserved); + +int XDWAPI XDW_GetDocumentAttributeNumberInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByOrderInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, int nOrder, char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved); + +int XDWAPI XDW_GetTMInfo(XDW_DOCUMENT_HANDLE handle, void* pTMInfo, int nTMInfoSize, void* reserved); +int XDWAPI XDW_SetTMInfo(XDW_DOCUMENT_HANDLE handle, const void* pTMInfo, int nTMInfoSize, void* reserved); + +int XDWAPI XDW_CreateXdwFromImagePdfFile(const char* lpszInputPath, const char* lpszOutputPath, void* reserved); + +int XDWAPI XDW_FindTextInPage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszText, XDW_FIND_TEXT_OPTION* pOption, XDW_FOUND_HANDLE* pFoundHandle, void* reserved); +int XDWAPI XDW_FindNext(XDW_FOUND_HANDLE* pFoundHandle, void* reserved); +int XDWAPI XDW_GetNumberOfRectsInFoundObject(XDW_FOUND_HANDLE foundHandle, void* reserved); +int XDWAPI XDW_GetRectInFoundObject(XDW_FOUND_HANDLE foundHandle, int nRect, XDW_RECT* pRect, int* pnStatus, void* reserved); +int XDWAPI XDW_CloseFoundHandle(XDW_FOUND_HANDLE foundHandle); + +int XDWAPI XDW_GetAnnotationUserAttribute(XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved); +int XDWAPI XDW_SetAnnotationUserAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved); + +int XDWAPI XDW_StarchAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nStarch, void* reserved); + +int XDWAPI XDW_ReleaseProtectionOfDocument(const char* lpszInputPath, const char* lpszOutputPath, void* pOption); +int XDWAPI XDW_ReleaseProtectionOfDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* pOption); +int XDWAPI XDW_GetProtectionInformation(const char* lpszInputPath, XDW_PROTECTION_INFO* pProtectionInfo, void* reserved); +int XDWAPI XDW_GetProtectionInformationW(const XDW_WCHAR* lpwszInputPath, XDW_PROTECTION_INFO* pProtectionInfo, void* reserved); + +int XDWAPI XDW_GetAnnotationCustomAttributeByName(XDW_ANNOTATION_HANDLE hAnnotation, XDW_WCHAR* lpszAttributeName, int* pnAttributeType, char* pAttributeValue, int nDataSize, void* reserved); +int XDWAPI XDW_GetAnnotationCustomAttributeByOrder(XDW_ANNOTATION_HANDLE hAnnotation, int nOrder, XDW_WCHAR* lpszAttributeName, int* pnAttributeType, char* pAttributeValue, int nDataSize, void* reserved); +int XDWAPI XDW_GetAnnotationCustomAttributeNumber(XDW_ANNOTATION_HANDLE hAnnotation, void* reserved); +int XDWAPI XDW_SetAnnotationCustomAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, XDW_WCHAR* lpszAttributeName, int nAttributeType, char* pAttributeValue, void* reserved); + +int XDWAPI XDW_GetPageTextToMemoryW(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_WCHAR* pValue, int nBufferLength, void* reserved); +int XDWAPI XDW_GetFullTextW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pOutputPath, void* reserved); +int XDWAPI XDW_GetAnnotationAttributeW(XDW_ANNOTATION_HANDLE handle, const char* lpszAttributeName, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_SetAnnotationAttributeW(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, int nAttributeType, void* pAttributeValue, int nTextType, unsigned int codepage, int nReserved, void* pReserved); +int XDWAPI XDW_GetDocumentAttributeByNameW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByOrderW(XDW_DOCUMENT_HANDLE handle, int nOrder, XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByOrderInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, int nOrder, XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_SetDocumentAttributeW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pAttributeName, int nAttributeType, void* pAttributeValue, int nTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_GetDocumentNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, XDW_WCHAR* pDocName, int nBufferLength, int* pnTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_SetDocumentNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* pDocName, int nTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_GetOriginalDataInformationW(XDW_DOCUMENT_HANDLE handle, int nOriginalData, XDW_ORGDATA_INFOW* pOriginalDataInfoW, int* pnTextType, unsigned int codepage, void* reserved); + +int XDWAPI XDW_AddAnnotationFromAnnFile(XDW_DOCUMENT_HANDLE handle, const char* lpszAnnFilePath, int nIndex, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved); +int XDWAPI XDW_AddAnnotationFromAnnFileW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* lpwszAnnFilePath, int nIndex, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved); +int XDWAPI XDW_GroupAnnotations(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int* pnAnntationIndexes, int nAnnotationNum, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved); +int XDWAPI XDW_UnGroupAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, void* reserved); + +/* error code */ +#ifndef XDWAPI_E_DECLARATIONS +#define XDWAPI_E_DECLARATIONS + +#define XDW_E_NOT_INSTALLED ((int)0x80040001) +#define XDW_E_INFO_NOT_FOUND ((int)0x80040002) +#define XDW_E_INSUFFICIENT_BUFFER ((int)0x8007007A) +#define XDW_E_FILE_NOT_FOUND ((int)0x80070002) +#define XDW_E_FILE_EXISTS ((int)0x80070050) +#define XDW_E_ACCESSDENIED ((int)0x80070005) +#define XDW_E_BAD_FORMAT ((int)0x8007000B) +#define XDW_E_OUTOFMEMORY ((int)0x8007000E) +#define XDW_E_WRITE_FAULT ((int)0x8007001D) +#define XDW_E_SHARING_VIOLATION ((int)0x80070020) +#define XDW_E_DISK_FULL ((int)0x80070027) +#define XDW_E_INVALIDARG ((int)0x80070057) +#define XDW_E_INVALID_NAME ((int)0x8007007B) +#define XDW_E_INVALID_ACCESS ((int)0x80040003) +#define XDW_E_INVALID_OPERATION ((int)0x80040004) +#define XDW_E_NEWFORMAT ((int)0x800E0004) +#define XDW_E_BAD_NETPATH ((int)0x800E0005) +#define XDW_E_APPLICATION_FAILED ((int)0x80001156) +#define XDW_E_SIGNATURE_MODULE ((int)0x800E0010) +#define XDW_E_PROTECT_MODULE ((int)0x800E0012) +#define XDW_E_UNEXPECTED ((int)0x8000FFFF) +#define XDW_E_CANCELED ((int)0x80040005) +#define XDW_E_ANNOTATION_NOT_ACCEPTED ((int)0x80040006) + +#endif //XDWAPI_E_DECLARATIONS + +#ifdef __cplusplus +} /* end of extern "C" */ +#endif /* __cplusplus */ + +#endif /* XDW_API_H */ + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Nk/xdwapi.lib Binary file src/kaigo/Nk/xdwapi.lib has changed diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Nk/xdwapian.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Nk/xdwapian.h Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,133 @@ +/* File: xdwapian.h +// Copyright(C) 1999-2002 by Fuji Xerox Co., Ltd. All right reserved. +*/ + +#ifndef __XDWAPIAN_H__ +#define __XDWAPIAN_H__ 1 + +#define XDW_ATN_Text "%Text" +#define XDW_ATN_FontName "%FontName" +#define XDW_ATN_FontStyle "%FontStyle" +#define XDW_ATN_FontSize "%FontSize" +#define XDW_ATN_ForeColor "%ForeColor" +#define XDW_ATN_FontPitchAndFamily "%FontPitchAndFamily" +#define XDW_ATN_FontCharSet "%FontCharSet" +#define XDW_ATN_BackColor "%BackColor" +#define XDW_ATN_Caption "%Caption" +#define XDW_ATN_Url "%Url" +#define XDW_ATN_XdwPath "%XdwPath" +#define XDW_ATN_ShowIcon "%ShowIcon" +#define XDW_ATN_LinkType "%LinkType" +#define XDW_ATN_XdwPage "%XdwPage" +#define XDW_ATN_Tooltip "%Tooltip" +#define XDW_ATN_Tooltip_String "%TooltipString" +#define XDW_ATN_XdwPath_Relative "%XdwPathRelative" +#define XDW_ATN_XdwLink "%XdwLink" +#define XDW_ATN_LinkAtn_Title "%LinkAtnTitle" +#define XDW_ATN_OtherFilePath "%OtherFilePath" +#define XDW_ATN_OtherFilePath_Relative "%OtherFilePathRelative" +#define XDW_ATN_MailAddress "%MailAddress" +#define XDW_ATN_BorderStyle "%BorderStyle" +#define XDW_ATN_BorderWidth "%BorderWidth" +#define XDW_ATN_BorderColor "%BorderColor" +#define XDW_ATN_BorderTransparent "%BorderTransparent" +#define XDW_ATN_BorderType "%BorderType" +#define XDW_ATN_FillStyle "%FillStyle" +#define XDW_ATN_FillColor "%FillColor" +#define XDW_ATN_FillTransparent "%FillTransparent" +#define XDW_ATN_ArrowheadType "%ArrowheadType" +#define XDW_ATN_ArrowheadStyle "%ArrowheadStyle" +#define XDW_ATN_WordWrap "%WordWrap" +#define XDW_ATN_TextDirection "%TextDirection" +#define XDW_ATN_TextOrientation "%TextOrientation" +#define XDW_ATN_LineSpace "%LineSpace" +#define XDW_ATN_AutoResize "%AutoResize" +#define XDW_ATN_Invisible "%Invisible" +#define XDW_ATN_PageFrom "%PageFrom" +#define XDW_ATN_XdwNameInXbd "%XdwNameInXbd" +#define XDW_ATN_TopField "%TopField" +#define XDW_ATN_BottomField "%BottomField" +#define XDW_ATN_DateStyle "%DateStyle" +#define XDW_ATN_YearField "%YearField" +#define XDW_ATN_MonthField "%MonthField" +#define XDW_ATN_DayField "%DayField" +#define XDW_ATN_BasisYearStyle "%BasisYearStyle" +#define XDW_ATN_BasisYear "%BasisYear" +#define XDW_ATN_DateField_FirstChar "%DateFieldFirstChar" +#define XDW_ATN_Alignment "%Alignment" +#define XDW_ATN_LeftRightMargin "%LeftRightMargin" +#define XDW_ATN_TopBottomMargin "%TopBottomMargin" +#define XDW_ATN_VerPosition "%VerPosition" +#define XDW_ATN_StartingNumber "%StartingNumber" +#define XDW_ATN_Digit "%Digit" +#define XDW_ATN_PageRange "%PageRange" +#define XDW_ATN_BeginningPage "%BeginningPage" +#define XDW_ATN_EndingPage "%EndingPage" +#define XDW_ATN_Zoom "%Zoom" +#define XDW_ATN_ImageFile "%ImageFile" +#define XDW_ATN_Points "%Points" +#define XDW_ATN_DateFormat "%DateFormat" +#define XDW_ATN_DateOrder "%DateOrder" +#define XDW_ATN_TextSpacing "%Spacing" +#define XDW_ATN_TextTopMargin "%TopMargin" +#define XDW_ATN_TextLeftMargin "%LeftMargin" +#define XDW_ATN_TextBottomMargin "%BottomMargin" +#define XDW_ATN_TextRightMargin "%RightMargin" +#define XDW_ATN_TextAutoResizeHeight "%AutoResizeHeight" +#define XDW_ATN_GUID "%CustomAnnGuid" +#define XDW_ATN_CustomData "%CustomAnnCustomData" + +#define XDW_PROP_TITLE "%Title" +#define XDW_PROP_SUBJECT "%Subject" +#define XDW_PROP_AUTHOR "%Author" +#define XDW_PROP_KEYWORDS "%Keywords" +#define XDW_PROP_COMMENTS "%Comments" + +#define XDW_PROPW_TITLE L"%Title" +#define XDW_PROPW_SUBJECT L"%Subject" +#define XDW_PROPW_AUTHOR L"%Author" +#define XDW_PROPW_KEYWORDS L"%Keywords" +#define XDW_PROPW_COMMENTS L"%Comments" + +#define XDW_COLOR_NONE 0x010101 +#define XDW_COLOR_BLACK 0x000000 +#define XDW_COLOR_MAROON 0x000080 +#define XDW_COLOR_GREEN 0x008000 +#define XDW_COLOR_OLIVE 0x008080 +#define XDW_COLOR_NAVY 0x800000 +#define XDW_COLOR_PURPLE 0x800080 +#define XDW_COLOR_TEAL 0x808000 +#define XDW_COLOR_GRAY 0x808080 +#define XDW_COLOR_SILVER 0xC0C0C0 +#define XDW_COLOR_RED 0x0000FF +#define XDW_COLOR_LIME 0x00FF00 +#define XDW_COLOR_YELLOW 0x00FFFF +#define XDW_COLOR_BLUE 0xFF0000 +#define XDW_COLOR_FUCHIA 0xFF00FF +#define XDW_COLOR_AQUA 0xFFFF00 +#define XDW_COLOR_WHITE 0xFFFFFF +#define XDW_COLOR_FUSEN_RED 0xFFC2FF +#define XDW_COLOR_FUSEN_BLUE 0xFFBF9D +#define XDW_COLOR_FUSEN_YELLOW 0x64FFFF +#define XDW_COLOR_FUSEN_LIME 0xC2FF9D +#define XDW_COLOR_FUSEN_PALE_RED 0xE1D7FF +#define XDW_COLOR_FUSEN_PALE_BLUE 0xFAE1C8 +#define XDW_COLOR_FUSEN_PALE_YELLOW 0xC3FAFF +#define XDW_COLOR_FUSEN_PALE_LIME 0xD2FACD + +#define XDW_FS_ITALIC_FLAG 1 +#define XDW_FS_BOLD_FLAG 2 +#define XDW_FS_UNDERLINE_FLAG 4 +#define XDW_FS_STRIKEOUT_FLAG 8 + +#define XDW_LT_LINK_TO_ME 0 +#define XDW_LT_LINK_TO_XDW 1 +#define XDW_LT_LINK_TO_URL 2 +#define XDW_LT_LINK_TO_OTHERFILE 3 +#define XDW_LT_LINK_TO_MAILADDR 4 + +#define XDW_PF_XDW 0 +#define XDW_PF_XBD 1 +#define XDW_PF_XDW_IN_XBD 2 + +#endif //__XDWAPIAN_H__ diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Nk/雜シ.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Nk/雜シ.bat Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,4 @@ +@echo off +rem nk -l -t -b 555 +nk -c +nk -l -t diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Perori/Perori.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Perori/Perori.bat Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,9 @@ +@echo off +set PDIR=C:\Users\KAIGO\Desktop\Perori +mkdir %PDIR% + +copy S:\Current\0000_Every\意見書・調査依頼\* %PDIR% +C: +cd %PDIR% +call %PDIR%\make.bat + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Perori/addtoday.go --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Perori/addtoday.go Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,14 @@ +package main + +import ( + "io/ioutil" + "os" + "time" +) + +func main() { + t := time.Now().Format("20060102_") + b, _ := ioutil.ReadFile(os.Args[1]) + ioutil.WriteFile(t + os.Args[1], b, 0644) +} + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Perori/bk.go --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Perori/bk.go Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,437 @@ +/* + bk.go: Insert Biko & Hatsuban + + Last Change: 2020-03-04 豌エ 16:48:05. +*/ + +package main + +/* +#cgo LDFLAGS: -L. -lxdwapi -static +#include +#include +#include +#include +#include +#include +#include + +#define MAXCOL 1024 +#define MAXLINE 9999 +#define BLOCKSZ 128 + +char* xdw2txt(const char* file) { + char in_path[_MAX_PATH]; + _fullpath(in_path, file, _MAX_PATH); + + XDW_DOCUMENT_HANDLE h = NULL; // 譁譖ク繝上Φ繝峨Ν繧帝幕縺 + XDW_OPEN_MODE_EX mode = {sizeof(XDW_OPEN_MODE_EX), XDW_OPEN_READONLY, XDW_AUTH_NODIALOGUE}; + if (XDW_OpenDocumentHandle(in_path, &h, (XDW_OPEN_MODE*)&mode)) { + printf("Error: cannot open %s\n", file); + return NULL; + } + + XDW_DOCUMENT_INFO info = {sizeof(XDW_DOCUMENT_INFO), 0, 0, 0}; // 邱上壹シ繧ク謨ー繧貞セ励k + XDW_GetDocumentInformation(h, &info); + int nPage = info.nPages; + + // 繝。繧、繝ウ蜃ヲ逅 + char *lpszvalue, *all_lpszvalue; + long datasize[9999]; + for (int i = 1; i <= nPage; i++) { + datasize[i] = XDW_GetPageTextToMemory(h, i, NULL, 0, NULL); + datasize[0] += datasize[i]; + } + datasize[0] += nPage - 1; // for "\n" + all_lpszvalue = (char*)malloc(sizeof(char)*datasize[0]); + all_lpszvalue[0] = '\0'; + for (int i = 1; i <= nPage; i++) { + if (i ") + fmt.Scan(&hbi) + } + i, err := strconv.Atoi(hbi) + if err != nil { + log.Fatal(err) + } + hbc = fmt.Sprintf("%d", i + 1) + + /* READ BIKO FROM CSV */ + bhash, err := getBiko_fromCSV(default_ccsvfile, today) + if err != nil { + log.Fatal(err) + } + fmt.Println(" 蛯呵繝繝シ繧ソ隱ュ霎シ") + step_start := print_time(start) + + /* READ KUBUN FROM CSV */ + khash, err := getKubun_fromCSV(default_icsvfile, bhash) + if err != nil { + log.Fatal(err) + } + fmt.Println(" 逕ウ隲句玄蛻繝繝シ繧ソ隱ュ霎シ") + step_start = print_time(start) + + /* INSERT BIKO */ + var ctxt []string + copy_tmp(default_cxdwfile) + for p, t := range xdw2txt(default_cxdwfile) { + for r, hno := range re_hhsno.FindAllString(t, -1) { + if bk, ok := bhash[hno]; ok { + C.xdwbiko(C.CString(default_tmpxdw), C.int(p + 1), C.int(r), C.CString(bk), C.CString(khash[hno])) + } + } + ctxt = append(ctxt, t) + } + fmt.Println(" 蛯呵縺ィ逕ウ隲句玄蛻繧定ソス蜉") + + /* INSERT HATSU-BAN & OPTIMIZE */ + stxt, _, _ := transform.String(japanese.ShiftJIS.NewEncoder(), "螟ァ莉吝コ莉") + C.xdwhb(C.CString(default_tmpxdw), C.CString(default_cout), C.CString(hbi), C.CString(stxt)) + fmt.Println(" 逋コ逡ェ霑ス蜉シ郁ェソ譟サ萓晞シ繝輔ぃ繧、繝ォシ") + step_start = print_time(step_start) + + copy_tmp(default_ixdwfile) + C.xdwhb(C.CString(default_tmpxdw), C.CString(default_iout), C.CString(hbc), C.CString(stxt)) + fmt.Println(" 逋コ逡ェ霑ス蜉シ 諢剰ヲ区嶌萓晞シ繝輔ぃ繧、繝ォシ") + step_start = print_time(step_start) + + /* CHOSA IRAI LIST */ + f, err := os.Create(default_lout) + if err != nil { + log.Fatal(err) + } + defer f.Close() + w := bufio.NewWriter(transform.NewWriter(f, japanese.ShiftJIS.NewEncoder())) + + header := []string{"逕ウ隲区律", "陲ォ菫晉分", "豌丞錐", "逕溷ケエ譛域律", "蟶ら伴譚", "-", "-", "-", "萓晞シ譌・"} + fmt.Fprintln(w, strings.Join(header, ",")) + + var req string + for _, txt := range ctxt { + str := strings.TrimRight(txt, " ") + if strings.HasSuffix(str, "萓晞シ譖ク") { + req = re_date.FindString(str) + req = strings.Replace(req, " ", "", -1) + } else { + row := strings.Split(str, "縲") + for i := 0; i < len(row) - 1; i++ { + var app, hhsno, name, birth, city, empty string + + d := re_date.FindAllString(row[i], -1) + if len(d) > 0 { + birth = strings.Replace(d[0], " ", "", -1) + app = strings.Replace(d[1], " ", "", -1) + } + if re_hhsno.MatchString(row[i]) { + hhsno = "=\"" + re_hhsno.FindString(row[i]) + "\"" + } + if re_name.MatchString(row[i]) { + n := []rune(re_name.FindString(row[i])) + kana := string(n[10:36]) + kana = strings.Trim(kana, " ") + name = string(n[37:55]) + name = strings.Trim(name, " ") + name = re_zensp.ReplaceAllString(name, "") + name += "(" + kana + ")" + } + if re_city.MatchString(row[i]) { + c := []rune(re_city.FindString(row[i])) + city = string(c[len(c)-3:]) + city = strings.Replace(city, "莉吝圏驛。", "鄒朱キ逕コ", -1) + } + + if hhsno != "" { + fields := []string{app, hhsno, name, birth, city, empty, empty, empty, req} + fmt.Fprintln(w, strings.Join(fields, ",")) + } + } + } + } + w.Flush() + + fmt.Println(" 隱ソ譟サ萓晞シ繝ェ繧ケ繝井ス懈") + step_start = print_time(step_start) + + /* CLEAN */ + os.Remove(default_tmpxdw) + fmt.Println(" 邨ゆコ") + step_start = print_time(step_start) +} + +func getBiko_fromCSV(file, date string) (bikohash map[string]string, err error) { + bikohash = make(map[string]string) + + data, err := ioutil.ReadFile(file) + if err != nil { + return bikohash, err + } + + r := csv.NewReader(strings.NewReader(string(data))) + records, err := r.ReadAll() + if err != nil { + return bikohash, err + } + + for _, record := range records { + hno := strings.TrimSpace(record[0]) + iraiymd := strings.TrimSpace(record[5]) + if iraiymd != date { + continue + } + bikohash[hno] = record[3] + } + + return bikohash, nil +} + +func getKubun_fromCSV(file string, hhshash map[string]string) (kubunhash map[string]string, err error) { + kubunhash = make(map[string]string) + ymdhash := make(map[string]string) + + data, err := ioutil.ReadFile(file) + if err != nil { + return kubunhash, err + } + + r := csv.NewReader(strings.NewReader(string(data))) + records, err := r.ReadAll() + if err != nil { + return kubunhash, err + } + + for _, record := range records { + hno := strings.TrimSpace(record[0]) + if _, ok := hhshash[hno]; !ok { + continue + } + if ymd, ok := ymdhash[hno]; !ok || ymd < record[8] { + ymdhash[hno] = record[8] + } + var buf string + switch strings.TrimSpace(record[9]) { + case "01": + buf = "[譁ー隕従" + case "02": + buf = "[譖エ譁ー]" + case "10": + buf = "[謾ッ莉犠" + case "05": + buf = "[蛹コ螟云" + case "03": + buf = "[霆「蜈・]" + case "09": + buf = "[險シ莠、]" + } + kubun, _, _ := transform.String(japanese.ShiftJIS.NewEncoder(), buf) + kubunhash[hno] = kubun + } + + return kubunhash, nil +} + + +func copy_tmp(file string) error { + os.Remove(default_tmpxdw) + b, err := ioutil.ReadFile(file) + if err != nil { + return err + } + if err := ioutil.WriteFile(default_tmpxdw, b, 0644); err != nil { + return err + } + return nil +} + +func xdw2txt(file string) (txt []string) { + s := C.GoString(C.xdw2txt(C.CString(file))) + r := strings.NewReader(s) + tr := transform.NewReader(r, japanese.ShiftJIS.NewDecoder()) + buf := bufio.NewScanner(tr) + for buf.Scan() { + txt = append(txt, buf.Text()) + } + return +} + +func print_time(t time.Time) time.Time { + now := time.Now() + if !flg_time { + return now + } + elapsed := now.Sub(t) + total := now.Sub(start) + s := fmt.Sprintf("---- Elapsed: %v (total = %v) @ %02d:%02d\n", elapsed, total, now.Hour(), now.Minute()) + fmt.Print(s) + return now +} + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Perori/export.mdb Binary file src/kaigo/Perori/export.mdb has changed diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Perori/make.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Perori/make.bat Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,15 @@ +@echo off +set ACCESS="C:\Program Files\Microsoft Office\Office15\MSACCESS.EXE" +set MDB=C:\Users\KAIGO\Desktop\Perori\export.mdb +set OUTPUT=意見書依頼一覧.html + +%ACCESS% %MDB% /nostartup /x data + +copy C:\Users\KAIGO\Documents\chosairai.csv . +copy C:\Users\KAIGO\Documents\ikenshoirai.csv . + +rem perori.exe -d -c hoge.csv -b fuga.db -r 20202014 > a.html +perori_go.exe > %OUTPUT% +addtoday_go.exe %OUTPUT% +rem start %OUTPUT% + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Perori/manual.docx Binary file src/kaigo/Perori/manual.docx has changed diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Perori/perori.go --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Perori/perori.go Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,386 @@ +package main + +import ( + "flag" + "compress/gzip" + "encoding/csv" + "fmt" + "html/template" + "io/ioutil" + "log" + "os" + "strings" + "sort" + "time" + + "golang.org/x/text/encoding/japanese" + "golang.org/x/text/transform" +) + +var debug_log bool + +// Constants +const version = "0.2" +const default_dbfile = "ikenshoirai.db" +const default_csvfile = "ikenshoirai.csv" + +const tpl = ` + + + + - + + + +

List ( Date = {{.Ymd}} / N = {{.NHhs}} / Dr = {{.NDr}} )

+ {{range .Doctors}} +

{{.Name}} ..... {{.Hp}}:{{.Senmon}}

+ {{range .Clients}} + + + + + + + + + + + +
{{.Name}}{{.Kubun}} {{.Ymd}} + + {{if .Prev.Ymd}} + {{if eq .DrId .Prev.DrId}} + {{str2cp932 "笘 邯咏カ -"}} {{.Prev.Ymd}} + {{else}} + {{.Prev.Dr}} {{.Prev.Ymd}} + {{end}} + {{else}} + New ! + {{end}} + + {{.Hhsno}}
{{.Biko}}
+ {{end}} + {{end}} + +
+ {{$hpno := 0}} +

N by Hp

+ + + {{range $hp, $n := .Hp}} + + {{$hpno = add1 $hpno}} + + + + + {{end}} + +
no hp n
{{$hpno}} {{$hp}} {{$n}}
sum > > > {{.HpSum}}
+ +` + + +// Define Types +type PrevSinsei struct { + Biko string + DrId string + Dr string + IraiYmd string + Ymd string + Kubun string +} + +type Sinsei struct { + Hhsno string + Name string + Biko string + DrId string + Dr string + DrKana string + Hp string + IraiYmd string + Ymd string + Kubun string + Senmon string + Prev PrevSinsei +} + +func (s *Sinsei) SetPrev(prev PrevSinsei) { + s.Prev = prev +} + +func (s Sinsei) String() string { + return strings.Join([]string{s.Hhsno, s.Name, s.Ymd, s.Kubun, s.Dr, s.Hp, s.Senmon, s.IraiYmd, s.Biko}, ",") +} + +func (s *Sinsei) Humanize() { + var buf string + + switch s.Kubun { + case "01": + buf = "譁ー隕" + case "02": + buf = "譖エ譁ー" + case "10": + buf = "謾ッ莉" + case "05": + buf = "蛹コ螟" + case "03": + buf = "霆「蜈・" + case "09": + buf = "險シ莠、" + } + s.Kubun, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), buf) + + s.Ymd = strings.Join([]string{s.Ymd[4:6], s.Ymd[6:8]}, ".") +} + +type Doctor struct { + Id string + Name string + Kana string + Hp string + Senmon string + Clients []Sinsei +} + +func (d *Doctor) AddClient(sinsei Sinsei) { + d.Clients = append(d.Clients, sinsei) +} + +func (d Doctor) String() string { + return d.Name +} + +// Main +func main() { + var csvfile, dbfile, date string + + today := time.Now().Format("20060102") + + flag.StringVar(&csvfile, "c", default_csvfile, "csv file") + flag.StringVar(&dbfile, "b", default_dbfile, "db file") + flag.StringVar(&date, "r", today, "Ikensho Irai YMD") + flag.BoolVar(&debug_log, "d", false, "print debug-log (stderr)") + flag.Parse() + + csvdata, hhshash, err := getdata_fromCSV(csvfile, date) + if err != nil { + log.Fatal(err) + } + print_debug_log(fmt.Sprintf("csvdata: n=%d", len(csvdata))) // + print_debug_log(fmt.Sprintf("hhshash: n=%d", len(hhshash))) // + + dbdata, err := getdata_fromDB(dbfile, hhshash) + if err != nil { + log.Fatal(err) + } + print_debug_log(fmt.Sprintf("dbdata: n=%d", len(dbdata))) // + + dbdata = append(dbdata, csvdata...) + print_debug_log(fmt.Sprintf("dbdata: n=%d", len(dbdata))) // + + sort.Slice(dbdata, func(i, j int) bool { + if dbdata[i].Hhsno != dbdata[j].Hhsno { + return dbdata[i].Hhsno < dbdata[j].Hhsno + } + if dbdata[i].Ymd != dbdata[j].Ymd { + return dbdata[i].Ymd > dbdata[j].Ymd + } + return false + }) + + var recentdata []Sinsei + prevhash := make(map[string]PrevSinsei) + hhscnt := make(map[string]int) + for _, ss := range dbdata { + ss.Humanize() + if n := hhscnt[ss.Hhsno]; n == 1 { + prevhash[ss.Hhsno] = PrevSinsei{ + Biko: ss.Biko, + DrId: ss.DrId, + Dr: ss.Dr + "(" + ss.Hp + ":" + ss.Senmon + ")", + IraiYmd: ss.IraiYmd, + Ymd: ss.Ymd, + Kubun: ss.Kubun, + } + } else { + recentdata = append(recentdata, ss) + hhscnt[ss.Hhsno]++; + } + } + print_debug_log(fmt.Sprintf("recentdata: n=%d", len(recentdata))) // + + doctorhash := make(map[string]Doctor) + hpcnt := make(map[string]int) + var hpcntsum int + for _, ss := range recentdata { + ss.SetPrev(prevhash[ss.Hhsno]) + if d, ok := doctorhash[ss.DrId]; !ok { + doctorhash[ss.DrId] = Doctor{ + Id: ss.DrId, + Name: ss.Dr, + Kana: ss.DrKana, + Hp: ss.Hp, + Senmon: ss.Senmon, + Clients: []Sinsei{ss}, + } + } else { + d.AddClient(ss) + doctorhash[ss.DrId] = d + } + hpcnt[ss.Hp]++ + hpcntsum++ + } + + var doctors []Doctor + for _, dr := range doctorhash { + doctors = append(doctors, dr) + } + sort.Slice(doctors, func(i, j int) bool { + return doctors[i].Kana < doctors[j].Kana + }) + + irai := struct { + Ymd string + NHhs int + NSinsei int + NDr int + Doctors []Doctor + Hp map[string]int + HpSum int + }{ + Ymd: strings.Join([]string{date[0:4], date[4:6], date[6:8]}, "."), + NHhs: len(hhshash), + NSinsei: len(dbdata), + NDr: len(doctors), + Doctors: doctors, + Hp: hpcnt, + HpSum: hpcntsum, + } + + funcmap := template.FuncMap{ + "shorten": shorten, + "str2cp932": str2cp932, + "add1": func(a int) int { return a + 1 }, + } + + t, err := template.New("webpage").Funcs(funcmap).Parse(tpl) + if err != nil { + log.Fatal(err) + } + + err = t.Execute(os.Stdout, irai) + if err != nil { + log.Fatal(err) + } +} + +// Utility functions +func csv2sinsei(record []string) Sinsei { + return Sinsei{ + Hhsno: strings.TrimSpace(record[0]), + Name: strings.TrimSpace(record[1]), + Biko: strings.TrimSpace(record[2]), + DrId: strings.TrimSpace(record[3]), + Dr: strings.TrimSpace(record[4]), + DrKana: strings.TrimSpace(record[5]), + Hp: strings.TrimSpace(record[6]), + IraiYmd: strings.TrimSpace(record[7]), + Ymd: strings.TrimSpace(record[8]), + Kubun: strings.TrimSpace(record[9]), + Senmon: strings.TrimSpace(record[10]), + } +} + +func getdata_fromCSV(file, date string) (sinsei []Sinsei, hhshash map[string]bool, err error) { + hhshash = make(map[string]bool) + + data, err := ioutil.ReadFile(file) + if err != nil { + return sinsei, hhshash, err + } + + r := csv.NewReader(strings.NewReader(string(data))) + records, err := r.ReadAll() + if err != nil { + return sinsei, hhshash, err + } + + for _, record := range records { + ss := csv2sinsei(record) + if ss.IraiYmd != date { + continue + } + hhshash[ss.Hhsno] = true + sinsei = append(sinsei, ss) + } + + return sinsei, hhshash, nil +} + +func getdata_fromDB(file string, hhshash map[string]bool) (sinsei []Sinsei, err error) { + f, err := os.Open(file) + if err != nil { + return sinsei, err + } + defer f.Close() + + zr, err := gzip.NewReader(f) + if err != nil { + return sinsei, err + } + + data, err := ioutil.ReadAll(zr) + if err != nil { + return sinsei, err + } + + if err := zr.Close(); err != nil { + return sinsei, err + } + + r := csv.NewReader(strings.NewReader(string(data))) + records, err := r.ReadAll() + if err != nil { + return sinsei, err + } + + for _, record := range records { + hno := strings.TrimSpace(record[0]) + if _, ok := hhshash[hno]; ok { + sinsei = append(sinsei, csv2sinsei(record)) + } + } + + return sinsei, nil +} + +func shorten(msg string, length int) string { + if len(msg) > length { + msg = msg[0:length] + "..." + } + return msg +} + +func str2cp932(s string) string { + s, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), s) + return s +} + +func print_debug_log(msg string) { + if debug_log { + fmt.Fprintf(os.Stderr, "%s\n", msg) + } +} + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Perori/xdw_api.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Perori/xdw_api.h Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,1121 @@ +/* File: xdw_api.h +// Copyright(C) 1999-2013 by Fuji Xerox Co., Ltd. All right reserved. +*/ + +#ifndef XDW_API_H +#define XDW_API_H + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#ifndef XDWAPI_DECLARATIONS +#define XDWAPI_DECLARATIONS + +#ifdef _WIN64 +#ifndef XDW_DISABLE_PRAGMA_PACK +#pragma pack(push, xdwapi_enter_parser) +#pragma pack(8) +#endif /* XDW_DISABLE_PRAGMA_PACK */ +#endif /* _WIN64 */ + +#define XDWAPI __stdcall + +#define XDW_GI_VERSION 1 +#define XDW_GI_INSTALLPATH 2 +#define XDW_GI_BINPATH 3 +#define XDW_GI_PLUGINPATH 4 +#define XDW_GI_FOLDERROOTPATH 5 +#define XDW_GI_USERFOLDERPATH 6 +#define XDW_GI_SYSTEMFOLDERPATH 7 +#define XDW_GI_RECEIVEFOLDERPATH 8 +#define XDW_GI_SENDFOLDERPATH 9 +#define XDW_GI_DWINPUTPATH 10 +#define XDW_GI_DWDESKPATH 11 +#define XDW_GI_DWVIEWERPATH 12 +#define XDW_GI_DWVLTPATH 13 +#define XDW_GI_DWDESK_FILENAME_DELIMITER 1001 +#define XDW_GI_DWDESK_FILENAME_DIGITS 1002 + + +#define XDW_PGT_NULL 0 +#define XDW_PGT_FROMIMAGE 1 +#define XDW_PGT_FROMAPPL 2 + +#define XDW_MAXPATH 255 +#define XDW_MAXINPUTIMAGEPATH 127 + +#define XDW_OPEN_READONLY 0 +#define XDW_OPEN_UPDATE 1 + +#define XDW_AUTH_NONE 0 +#define XDW_AUTH_NODIALOGUE 1 +#define XDW_AUTH_CONDITIONAL_DIALOGUE 2 + +#define XDW_PERM_DOC_EDIT 0x02 +#define XDW_PERM_ANNO_EDIT 0x04 +#define XDW_PERM_PRINT 0x08 +#define XDW_PERM_COPY 0x10 + +#define XDW_DT_DOCUMENT 0 +#define XDW_DT_BINDER 1 +#define XDW_DT_CONTAINER 2 + +#define XDW_ROT_0 0 +#define XDW_ROT_90 90 +#define XDW_ROT_180 180 +#define XDW_ROT_270 270 + +#define XDW_CREATE_FITDEF 0 +#define XDW_CREATE_FIT 1 +#define XDW_CREATE_USERDEF 2 +#define XDW_CREATE_USERDEF_FIT 3 +#define XDW_CREATE_FITDEF_DIVIDEBMP 4 + +#define XDW_COMPRESS_NORMAL 0 +#define XDW_COMPRESS_LOSSLESS 1 +#define XDW_COMPRESS_HIGHQUALITY 2 +#define XDW_COMPRESS_HIGHCOMPRESS 3 +#define XDW_COMPRESS_NOCOMPRESS 4 +#define XDW_COMPRESS_JPEG 5 +#define XDW_COMPRESS_PACKBITS 6 +#define XDW_COMPRESS_G4 7 +#define XDW_COMPRESS_MRC_NORMAL 8 +#define XDW_COMPRESS_MRC_HIGHQUALITY 9 +#define XDW_COMPRESS_MRC_HIGHCOMPRESS 10 +#define XDW_COMPRESS_MRC 11 +#define XDW_COMPRESS_JPEG_TTN2 12 + +#define XDW_CONVERT_MRC_ORIGINAL 0 +#define XDW_CONVERT_MRC_OS 1 + +#define XDW_IMAGE_DIB 0 +#define XDW_IMAGE_TIFF 1 +#define XDW_IMAGE_JPEG 2 +#define XDW_IMAGE_PDF 3 + +#define XDW_CREATE_HCENTER 0 +#define XDW_CREATE_LEFT 1 +#define XDW_CREATE_RIGHT 2 + +#define XDW_CREATE_VCENTER 0 +#define XDW_CREATE_TOP 1 +#define XDW_CREATE_BOTTOM 2 + +#define XDW_CREATE_DEFAULT_SIZE 0 +#define XDW_CREATE_A3_SIZE 1 +#define XDW_CREATE_2A0_SIZE 2 + +#define XDW_LINE_NONE 0 +#define XDW_LINE_BEGINNING 1 +#define XDW_LINE_ENDING 2 +#define XDW_LINE_BOTH 3 +#define XDW_LINE_WIDE_POLYLINE 0 +#define XDW_LINE_POLYLINE 1 +#define XDW_LINE_POLYGON 2 + +#define XDW_BORDER_TYPE_SOLID 0 +#define XDW_BORDER_TYPE_DOT 1 +#define XDW_BORDER_TYPE_DASH 2 +#define XDW_BORDER_TYPE_DASHDOT 3 +#define XDW_BORDER_TYPE_DOUBLE 4 + +#define XDW_STAMP_AUTO 0 +#define XDW_STAMP_MANUAL 1 +#define XDW_STAMP_NO_BASISYEAR 0 +#define XDW_STAMP_BASISYEAR 1 +#define XDW_STAMP_DATE_YMD 0 +#define XDW_STAMP_DATE_DMY 1 + +#define XDW_PAGEFORM_HEADER 0 +#define XDW_PAGEFORM_FOOTER 1 +#define XDW_PAGEFORM_TOPIMAGE 2 +#define XDW_PAGEFORM_BOTTOMIMAGE 3 +#define XDW_PAGEFORM_PAGENUMBER 4 + +#define XDW_PAGEFORM_STAY 0 +#define XDW_PAGEFORM_REMOVE 1 + +#define XDW_ALIGN_LEFT 0 +#define XDW_ALIGN_HCENTER 1 +#define XDW_ALIGN_RIGHT 2 +#define XDW_ALIGN_TOP 0 +#define XDW_ALIGN_BOTTOM 1 +#define XDW_ALIGN_VCENTER 2 + +#define XDW_PAGERANGE_ALL 0 +#define XDW_PAGERANGE_SPECIFIED 1 + +#define XDW_CRTP_BEGINNING 1 +#define XDW_CRTP_PRINTING 2 +#define XDW_CRTP_PAGE_CREATING 3 +#define XDW_CRTP_ORIGINAL_APPENDING 4 +#define XDW_CRTP_WRITING 5 +#define XDW_CRTP_ENDING 6 +#define XDW_CRTP_CANCELING 7 +#define XDW_CRTP_FINISHED 8 +#define XDW_CRTP_CANCELED 9 + +#define XDW_AID_FUSEN 32794 +#define XDW_AID_TEXT 32785 +#define XDW_AID_STAMP 32819 +#define XDW_AID_STRAIGHTLINE 32828 +#define XDW_AID_RECTANGLE 32829 +#define XDW_AID_ARC 32830 +#define XDW_AID_POLYGON 32834 +#define XDW_AID_MARKER 32795 +#define XDW_AID_LINK 49199 +#define XDW_AID_PAGEFORM 32814 +#define XDW_AID_OLE 32783 +#define XDW_AID_BITMAP 32831 +#define XDW_AID_RECEIVEDSTAMP 32832 +#define XDW_AID_CUSTOM 32837 +#define XDW_AID_TITLE 32838 +#define XDW_AID_GROUP 32839 + +#define XDW_ATYPE_INT 0 +#define XDW_ATYPE_STRING 1 +#define XDW_ATYPE_DATE 2 +#define XDW_ATYPE_BOOL 3 +#define XDW_ATYPE_OCTS 4 +#define XDW_ATYPE_OTHER 999 + +#define XDW_SUMMARY_INFO 1 +#define XDW_USER_DEF 2 +#define XDW_ANNOTATION 4 + +#define XDW_SIZE_FREE 0 +#define XDW_SIZE_A3_PORTRAIT 1 +#define XDW_SIZE_A3_LANDSCAPE 2 +#define XDW_SIZE_A4_PORTRAIT 3 +#define XDW_SIZE_A4_LANDSCAPE 4 +#define XDW_SIZE_A5_PORTRAIT 5 +#define XDW_SIZE_A5_LANDSCAPE 6 +#define XDW_SIZE_B4_PORTRAIT 7 +#define XDW_SIZE_B4_LANDSCAPE 8 +#define XDW_SIZE_B5_PORTRAIT 9 +#define XDW_SIZE_B5_LANDSCAPE 10 + +#define XDW_BINDER_COLOR_0 0 +#define XDW_BINDER_COLOR_1 1 +#define XDW_BINDER_COLOR_2 2 +#define XDW_BINDER_COLOR_3 3 +#define XDW_BINDER_COLOR_4 4 +#define XDW_BINDER_COLOR_5 5 +#define XDW_BINDER_COLOR_6 6 +#define XDW_BINDER_COLOR_7 7 +#define XDW_BINDER_COLOR_8 8 +#define XDW_BINDER_COLOR_9 9 +#define XDW_BINDER_COLOR_10 10 +#define XDW_BINDER_COLOR_11 11 +#define XDW_BINDER_COLOR_12 12 +#define XDW_BINDER_COLOR_13 13 +#define XDW_BINDER_COLOR_14 14 +#define XDW_BINDER_COLOR_15 15 + +#define XDW_REDUCENOISE_NONE 0 +#define XDW_REDUCENOISE_NORMAL 1 +#define XDW_REDUCENOISE_WEAK 2 +#define XDW_REDUCENOISE_STRONG 3 + +#define XDW_PRIORITY_NONE 0 +#define XDW_PRIORITY_SPEED 1 +#define XDW_PRIORITY_RECOGNITION 2 + +#define XDW_OCR_ENGINE_V4 1 // old name - should be here for compatibility +#define XDW_OCR_ENGINE_DEFAULT 1 +#define XDW_OCR_ENGINE_WRP 2 +#define XDW_OCR_ENGINE_FRE 3 +#define XDW_OCR_ENGINE_FRE_MULTI 4 + +#define XDW_OCR_LANGUAGE_AUTO -1 +#define XDW_OCR_LANGUAGE_JAPANESE 0 +#define XDW_OCR_LANGUAGE_ENGLISH 1 + +#define XDW_OCR_MULTIPLELANGUAGES_ENGLISH 0x02 +#define XDW_OCR_MULTIPLELANGUAGES_FRENCH 0x04 +#define XDW_OCR_MULTIPLELANGUAGES_SIMPLIFIED_CHINESE 0x08 +#define XDW_OCR_MULTIPLELANGUAGES_TRADITIONAL_CHINESE 0x10 +#define XDW_OCR_MULTIPLELANGUAGES_THAI 0x20 +#define XDW_OCR_MULTIPLELANGUAGES_JAPANESE 0x40 +#define XDW_OCR_MULTIPLELANGUAGES_KOREAN 0x80 + +#define XDW_OCR_FORM_AUTO 0 +#define XDW_OCR_FORM_TABLE 1 +#define XDW_OCR_FORM_WRITING 2 + +#define XDW_OCR_COLUMN_AUTO 0 +#define XDW_OCR_COLUMN_HORIZONTAL_SINGLE 1 +#define XDW_OCR_COLUMN_HORIZONTAL_MULTI 2 +#define XDW_OCR_COLUMN_VERTICAL_SINGLE 3 +#define XDW_OCR_COLUMN_VERTICAL_MULTI 4 + +#define XDW_OCR_DOCTYPE_AUTO 0 +#define XDW_OCR_DOCTYPE_HORIZONTAL_SINGLE 1 +#define XDW_OCR_DOCTYPE_PLAINTEXT 2 + +#define XDW_OCR_ENGINE_LEVEL_SPEED 1 +#define XDW_OCR_ENGINE_LEVEL_STANDARD 2 +#define XDW_OCR_ENGINE_LEVEL_ACCURACY 3 + +#define XDW_OCR_MIXEDRATE_JAPANESE 1 +#define XDW_OCR_MIXEDRATE_BALANCED 2 +#define XDW_OCR_MIXEDRATE_ENGLISH 3 + +#define XDW_PROTECT_PSWD 1 +#define XDW_PROTECT_PSWD128 3 +#define XDW_PROTECT_PKI 4 +#define XDW_PROTECT_STAMP 5 +#define XDW_PROTECT_CONTEXT_SERVICE 6 +#define XDW_PROTECT_PSWD256 7 +#define XDW_PROTECT_PKI256 8 + +#define XDW_GPTI_TYPE_EMF 0 +#define XDW_GPTI_TYPE_OCRTEXT 1 + +#define XDW_IMAGE_MONO 0 +#define XDW_IMAGE_COLOR 1 +#define XDW_IMAGE_MONO_HIGHQUALITY 2 + +#define XDW_SIGNATURE_STAMP 100 +#define XDW_SIGNATURE_PKI 102 +#define XDW_SIGNATURE_PKI_SHA256 105 + +#define XDW_SIGNATURE_STAMP_DOC_NONE 0 +#define XDW_SIGNATURE_STAMP_DOC_NOEDIT 1 +#define XDW_SIGNATURE_STAMP_DOC_EDIT 2 +#define XDW_SIGNATURE_STAMP_DOC_BAD 3 + +#define XDW_SIGNATURE_STAMP_STAMP_NONE 0 +#define XDW_SIGNATURE_STAMP_STAMP_TRUSTED 1 +#define XDW_SIGNATURE_STAMP_STAMP_NOTRUST 2 + +#define XDW_SIGNATURE_STAMP_ERROR_OK 0 +#define XDW_SIGNATURE_STAMP_ERROR_NO_OPENING_CASE 1 +#define XDW_SIGNATURE_STAMP_ERROR_NO_SELFSTAMP 2 +#define XDW_SIGNATURE_STAMP_ERROR_OUT_OF_VALIDITY 3 +#define XDW_SIGNATURE_STAMP_ERROR_INVALID_DATA 4 +#define XDW_SIGNATURE_STAMP_ERROR_OUT_OF_MEMORY 100 +#define XDW_SIGNATURE_STAMP_ERROR_UNKNOWN 9999 + +#define XDW_SIGNATURE_PKI_DOC_UNKNOWN 0 +#define XDW_SIGNATURE_PKI_DOC_GOOD 1 +#define XDW_SIGNATURE_PKI_DOC_MODIFIED 2 +#define XDW_SIGNATURE_PKI_DOC_BAD 3 +#define XDW_SIGNATURE_PKI_DOC_GOOD_TRUSTED 4 +#define XDW_SIGNATURE_PKI_DOC_MODIFIED_TRUSTED 5 + +#define XDW_SIGNATURE_PKI_TYPE_LOW 0 +#define XDW_SIGNATURE_PKI_TYPE_MID_LOCAL 1 +#define XDW_SIGNATURE_PKI_TYPE_MID_NETWORK 2 +#define XDW_SIGNATURE_PKI_TYPE_HIGH_LOCAL 3 +#define XDW_SIGNATURE_PKI_TYPE_HIGH_NETWORK 4 + +#define XDW_SIGNATURE_PKI_CERT_UNKNOWN 0 +#define XDW_SIGNATURE_PKI_CERT_OK 1 +#define XDW_SIGNATURE_PKI_CERT_NO_ROOT_CERTIFICATE 2 +#define XDW_SIGNATURE_PKI_CERT_NO_REVOCATION_CHECK 3 +#define XDW_SIGNATURE_PKI_CERT_OUT_OF_VALIDITY 4 +#define XDW_SIGNATURE_PKI_CERT_OUT_OF_VALIDITY_AT_SIGNED_TIME 5 +#define XDW_SIGNATURE_PKI_CERT_REVOKE_CERTIFICATE 6 +#define XDW_SIGNATURE_PKI_CERT_REVOKE_INTERMEDIATE_CERTIFICATE 7 +#define XDW_SIGNATURE_PKI_CERT_INVALID_SIGNATURE 8 +#define XDW_SIGNATURE_PKI_CERT_INVALID_USAGE 9 +#define XDW_SIGNATURE_PKI_CERT_UNDEFINED_ERROR 10 + +#define XDW_SIGNATURE_PKI_ERROR_UNKNOWN 0 +#define XDW_SIGNATURE_PKI_ERROR_OK 1 +#define XDW_SIGNATURE_PKI_ERROR_BAD_PLATFORM 2 +#define XDW_SIGNATURE_PKI_ERROR_WRITE_REG_ERROR 3 +#define XDW_SIGNATURE_PKI_ERROR_BAD_TRUST_LEVEL 4 +#define XDW_SIGNATURE_PKI_ERROR_BAD_REVOKE_CHECK_TYPE 5 +#define XDW_SIGNATURE_PKI_ERROR_BAD_AUTO_IMPORT_CERT_FLAG 6 +#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN_CONFIG 7 +#define XDW_SIGNATURE_PKI_ERROR_NO_IMAGE_FILE 8 +#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN_CERT 9 +#define XDW_SIGNATURE_PKI_ERROR_NO_SIGN_CERT 10 +#define XDW_SIGNATURE_PKI_ERROR_NOT_USE_PRIVATE_KEY 11 +#define XDW_SIGNATURE_PKI_ERROR_INVALID 12 +#define XDW_SIGNATURE_PKI_ERROR_BAD_SIGN 13 +#define XDW_SIGNATURE_PKI_ERROR_REVOKE_CHECK_ERROR 14 +#define XDW_SIGNATURE_PKI_ERROR_OUT_OF_VALIDITY 15 +#define XDW_SIGNATURE_PKI_ERROR_NO_CERT 16 +#define XDW_SIGNATURE_PKI_ERROR_FAILURE_IMPOPT_CERT 17 +#define XDW_SIGNATURE_PKI_ERROR_NO_ROOT_CERT 18 +#define XDW_SIGNATURE_PKI_ERROR_BAD_CERT_SIZE 19 +#define XDW_SIGNATURE_PKI_ERROR_BAD_ARG 20 +#define XDW_SIGNATURE_PKI_ERROR_BAD_CERT_FORMAT 21 + +#define XDW_SECURITY_PKI_ERROR_UNKNOWN 0 +#define XDW_SECURITY_PKI_ERROR_OK 1 +#define XDW_SECURITY_PKI_ERROR_BAD_PLATFORM 2 +#define XDW_SECURITY_PKI_ERROR_WRITE_REG_ERROR 3 +#define XDW_SECURITY_PKI_ERROR_BAD_TRUST_LEVEL 4 +#define XDW_SECURITY_PKI_ERROR_BAD_REVOKE_CHECK_TYPE 5 +#define XDW_SECURITY_PKI_ERROR_REVOKED 6 +#define XDW_SECURITY_PKI_ERROR_BAD_SIGN 7 +#define XDW_SECURITY_PKI_ERROR_REVOKE_CHECK_ERROR 8 +#define XDW_SECURITY_PKI_ERROR_OUT_OF_VALIDITY 9 +#define XDW_SECURITY_PKI_ERROR_NO_CERT 10 +#define XDW_SECURITY_PKI_ERROR_FAILURE_IMPORT_CERT 11 +#define XDW_SECURITY_PKI_ERROR_NO_ROOT_CERT 12 +#define XDW_SECURITY_PKI_ERROR_BAD_CERT_FORMAT 13 +#define XDW_SECURITY_PKI_ERROR_BAD_CERT_USAGE 14 +#define XDW_SECURITY_PKI_ERROR_CA_CERT_IS_REVOKED 15 +#define XDW_SECURITY_PKI_ERROR_TOO_MANY_CERT 16 + +#define XDW_IGNORE_CASE 0x02 +#define XDW_IGNORE_WIDTH 0x04 +#define XDW_IGNORE_HIRAKATA 0x08 + +#define XDW_STARCH 1 +#define XDW_STARCH_OFF 0 + +#define XDW_TEXT_UNKNOWN 0 +#define XDW_TEXT_MULTIBYTE 1 +#define XDW_TEXT_UNICODE 2 +#define XDW_TEXT_UNICODE_IFNECESSARY 3 + +#define XDW_HGLOBAL void* + +typedef struct { int dummy; } *XDW_DOCUMENT_HANDLE; +typedef struct { int dummy; } *XDW_CREATE_HANDLE; +typedef struct { int dummy; } *XDW_ANNOTATION_HANDLE; +typedef struct { int dummy; } *XDW_FOUND_HANDLE; + +typedef unsigned short XDW_WCHAR; + +typedef struct tag_XDW_RECT { + long left; + long top; + long right; + long bottom; +} XDW_RECT; + +typedef struct tag_XDW_GPTI_OCRTEXT_UNIT { + const char* lpszText; + XDW_RECT rect; +} XDW_GPTI_OCRTEXT_UNIT; + +typedef struct tag_XDW_GPTI_OCRTEXT { + int nUnitNum; + XDW_GPTI_OCRTEXT_UNIT* pUnits; +} XDW_GPTI_OCRTEXT; + +typedef struct tag_XDW_GPTI_INFO { + int nSize; + int nInfoType; + int nPageWidth; + int nPageHeight; + int nRotateDegree; + int nDataSize; + XDW_HGLOBAL pData; +} XDW_GPTI_INFO; + +typedef struct tag_XDW_DOCUMENT_INFO { + int nSize; + int nPages; + int nVersion; + int nOriginalData; + int nDocType; + int nPermission; + int nShowAnnotations; + int nDocuments; + int nBinderColor; + int nBinderSize; +} XDW_DOCUMENT_INFO; + +typedef struct tag_XDW_PAGE_INFO { + int nSize; + int nWidth; + int nHeight; + int nPageType; + int nHorRes; + int nVerRes; + int nCompressType; + int nAnnotations; +} XDW_PAGE_INFO; + +typedef struct tag_XDW_PAGE_INFO_EX { + int nSize; + int nWidth; + int nHeight; + int nPageType; + int nHorRes; + int nVerRes; + int nCompressType; + int nAnnotations; + int nDegree; + int nOrgWidth; + int nOrgHeight; + int nOrgHorRes; + int nOrgVerRes; + int nImageWidth; + int nImageHeight; +} XDW_PAGE_INFO_EX; + +typedef struct tag_XDW_IMAGE_OPTION { + int nSize; + int nDpi; + int nColor; +} XDW_IMAGE_OPTION; + +typedef struct tag_XDW_OPEN_MODE { + int nSize; + int nOption; +} XDW_OPEN_MODE; + +typedef struct tag_XDW_OPEN_MODE_EX { + int nSize; + int nOption; + int nAuthMode; +} XDW_OPEN_MODE_EX; + +typedef struct tag_XDW_CREATE_OPTION { + int nSize; + int nFitImage; + int nCompress; + int nZoom; + int nWidth; + int nHeight; + int nHorPos; + int nVerPos; +} XDW_CREATE_OPTION; + +typedef struct tag_XDW_CREATE_OPTION_EX { + int nSize; + int nFitImage; + int nCompress; + int nZoom; + int nWidth; + int nHeight; + int nHorPos; + int nVerPos; + int nZoomDetail; +} XDW_CREATE_OPTION_EX; + +typedef struct tag_XDW_CREATE_OPTION_EX2 { + int nSize; + int nFitImage; + int nCompress; + int nZoom; + int nWidth; + int nHeight; + int nHorPos; + int nVerPos; + int nZoomDetail; + int nMaxPaperSize; +} XDW_CREATE_OPTION_EX2; + + +#define XDW_SIZEOF_ORGDATANAME 256 +typedef struct tag_XDW_ORGDATA_INFO { + int nSize; + int nDataSize; + long nDate; + char szName[XDW_SIZEOF_ORGDATANAME]; +} XDW_ORGDATA_INFO; + +typedef struct tag_XDW_ORGDATA_INFOW { + int nSize; + int nDataSize; + long nDate; + XDW_WCHAR szName[XDW_SIZEOF_ORGDATANAME]; +} XDW_ORGDATA_INFOW; + +#define XDW_SIZEOF_LINKROOTFOLDER 256 +typedef struct tag_XDW_LINKROOTFOLDER_INFO { + int nSize; + char szPath[XDW_SIZEOF_LINKROOTFOLDER]; + char szLinkRootFolderName[XDW_SIZEOF_LINKROOTFOLDER]; +} XDW_LINKROOTFOLDER_INFO ; + +typedef struct tag_XDW_LINKROOTFOLDER_INFOW { + int nSize; + XDW_WCHAR wszPath[XDW_SIZEOF_LINKROOTFOLDER]; + XDW_WCHAR wszLinkRootFolderName[XDW_SIZEOF_LINKROOTFOLDER]; +} XDW_LINKROOTFOLDER_INFOW ; + +typedef struct tag_XDW_CREATE_STATUS { + int nSize; + int phase; + int nTotalPage; + int nPage; +} XDW_CREATE_STATUS; + +typedef struct tag_XDW_ANNOTATION_INFO { + int nSize; + XDW_ANNOTATION_HANDLE handle; + int nHorPos; + int nVerPos; + int nWidth; + int nHeight; + int nAnnotationType; + int nChildAnnotations; +} XDW_ANNOTATION_INFO; + + +typedef struct tag_XDW_AA_INITIAL_DATA { + int nSize; + int nAnnotationType; + int nReserved1; + int nReserved2; +} XDW_AA_INITIAL_DATA; + +typedef struct tag_XDW_AA_FUSEN_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nWidth; + int nHeight; +} XDW_AA_FUSEN_INITIAL_DATA; + +typedef struct tag_XDW_AA_STRAIGHTLINE_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nHorVec; + int nVerVec; +} XDW_AA_STRAIGHTLINE_INITIAL_DATA; + +typedef struct tag_XDW_AA_RECT_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nWidth; + int nHeight; +} XDW_AA_RECT_INITIAL_DATA; + +typedef struct tag_XDW_AA_ARC_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nWidth; + int nHeight; +} XDW_AA_ARC_INITIAL_DATA; + +typedef struct tag_XDW_AA_BITMAP_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + char szImagePath[256]; +} XDW_AA_BITMAP_INITIAL_DATA; + +typedef struct tag_XDW_AA_BITMAP_INITIAL_DATAW { + XDW_AA_INITIAL_DATA common; + XDW_WCHAR wszImagePath[256]; +} XDW_AA_BITMAP_INITIAL_DATAW; + +typedef struct tag_XDW_AA_STAMP_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nWidth; +} XDW_AA_STAMP_INITIAL_DATA; + +typedef struct tag_XDW_AA_RECEIVEDSTAMP_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nWidth; +} XDW_AA_RECEIVEDSTAMP_INITIAL_DATA; + +#define XDW_SIZEOF_GUID 36 +typedef struct tag_XDW_AA_CUSTOM_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nWidth; + int nHeight; + char* lpszGuid; + int nCustomDataSize; + unsigned char* pCustomData; +} XDW_AA_CUSTOM_INITIAL_DATA; + +typedef struct tag_XDW_IMAGE_OPTION_EX { + int nSize; + int nDpi; + int nColor; + int nImageType; + void* pDetailOption; +} XDW_IMAGE_OPTION_EX; + +typedef struct tag_XDW_IMAGE_OPTION_TIFF { + int nSize; + int nCompress; + int nEndOfMultiPages; +} XDW_IMAGE_OPTION_TIFF; + +typedef struct tag_XDW_IMAGE_OPTION_JPEG { + int nSize; + int nCompress; +} XDW_IMAGE_OPTION_JPEG; + +typedef struct tag_XDW_IMAGE_OPTION_PDF { + int nSize; + int nCompress; + int nConvertMethod; + int nEndOfMultiPages; +} XDW_IMAGE_OPTION_PDF; + +typedef struct tag_XDW_BINDER_INITIAL_DATA { + int nSize; + int nBinderColor; + int nBinderSize; +} XDW_BINDER_INITIAL_DATA; + +typedef struct tag_XDW_OCR_OPTION_V4 { + int nSize; + int nNoiseReduction; + int nLanguage; + int nInsertSpaceCharacter; + int nJapaneseKnowledgeProcessing; + int nForm; + int nColumn; + int nDisplayProcess; + int nAutoDeskew; +} XDW_OCR_OPTION_V4; + +typedef struct tag_XDW_OCR_OPTION_V5 { + int nSize; + int nNoiseReduction; + int nLanguage; + int nInsertSpaceCharacter; + int nJapaneseKnowledgeProcessing; + int nForm; + int nColumn; + int nDisplayProcess; + int nAutoDeskew; + unsigned int nAreaNum; + XDW_RECT** pAreaRects; +} XDW_OCR_OPTION_V5; + +typedef struct tag_XDW_OCR_OPTION_V5_EX { + int nSize; + int nNoiseReduction; + int nLanguage; + int nInsertSpaceCharacter; + int nJapaneseKnowledgeProcessing; + int nForm; + int nColumn; + int nDisplayProcess; + int nAutoDeskew; + unsigned int nAreaNum; + XDW_RECT** pAreaRects; + int nPriority; +} XDW_OCR_OPTION_V5_EX; + +typedef struct tag_XDW_OCR_OPTION_WRP { + int nSize; + int nNoiseReduction; + int nLanguage; + int nInsertSpaceCharacter; + int nForm; + int nColumn; + int nAutoDeskew; + int nPriority; +} XDW_OCR_OPTION_WRP; + +typedef struct tag_XDW_OCR_OPTION_FRE { + int nSize; + int nNoiseReduction; + int nLanguage; + int nDocumentType; + int nDisplayProcess; + int nAutoDeskew; + unsigned int nAreaNum; + XDW_RECT** pAreaRects; + int nPriority; +} XDW_OCR_OPTION_FRE; + +typedef struct tag_XDW_OCR_OPTION_V7 { + int nSize; + int nNoiseReduction; + int nLanguage; + int nInsertSpaceCharacter; + int nJapaneseKnowledgeProcessing; + int nForm; + int nColumn; + int nDisplayProcess; + int nAutoDeskew; + unsigned int nAreaNum; + XDW_RECT** pAreaRects; + int nPriority; + int nEngineLevel; + int nLanguageMixedRate; + int nHalfSizeChar; +} XDW_OCR_OPTION_V7; + +typedef struct tag_XDW_OCR_OPTION_FRE_V7 { + int nSize; + int nNoiseReduction; + int nLanguage; + int nDocumentType; + int nDisplayProcess; + int nAutoDeskew; + unsigned int nAreaNum; + XDW_RECT** pAreaRects; + int nPriority; + int nEngineLevel; +} XDW_OCR_OPTION_FRE_V7; + +typedef struct tag_XDW_PAGE_COLOR_INFO { + int nSize; + int nColor; + int nImageDepth; +} XDW_PAGE_COLOR_INFO; + +#define XDW_SIZEOF_PSWD 256 +typedef struct tag_XDW_SECURITY_OPTION_PSWD { + int nSize; + int nPermission; + char szOpenPswd[XDW_SIZEOF_PSWD]; + char szFullAccessPswd[XDW_SIZEOF_PSWD]; + char* lpszComment; +} XDW_SECURITY_OPTION_PSWD; + +typedef struct tag_XDW_DER_CERTIFICATE { + void *pCert; + int nCertSize; +} XDW_DER_CERTIFICATE; + +typedef struct tag_XDW_SECURITY_OPTION_PKI { + int nSize; + int nPermission; + XDW_DER_CERTIFICATE* lpxdcCerts; + int nCertsNum; + int nFullAccessCertsNum; + int nErrorStatus; + int nFirstErrorCert; +} XDW_SECURITY_OPTION_PKI; + +typedef struct tag_XDW_PROTECT_OPTION { + int nSize; + int nAuthMode; +} XDW_PROTECT_OPTION; + +typedef struct tag_XDW_RELEASE_PROTECTION_OPTION { + int nSize; + int nAuthMode; +} XDW_RELEASE_PROTECTION_OPTION; + +typedef struct tag_XDW_PROTECTION_INFO { + int nSize; + int nProtectType; + int nPermission; +} XDW_PROTECTION_INFO; + +typedef struct tag_XDW_SIGNATURE_OPTION_V5 { + int nSize; + int nPage; + int nHorPos; + int nVerPos; + int nSignatureType; +} XDW_SIGNATURE_OPTION_V5; + +typedef struct tag_XDW_SIGNATURE_INFO_V5 { + int nSize; + int nSignatureType; + int nPage; + int nHorPos; + int nVerPos; + int nWidth; + int nHeight; + long nSignedTime; +} XDW_SIGNATURE_INFO_V5; + +typedef struct tag_XDW_SIGNATURE_MODULE_STATUS { + int nSize; + int nSignatureType; + int nErrorStatus; +} XDW_SIGNATURE_MODULE_STATUS; + +typedef struct tag_XDW_SIGNATURE_MODULE_OPTION_PKI { + int nSize; + void *pSignerCert; + int nSignerCertSize; +} XDW_SIGNATURE_MODULE_OPTION_PKI; + +#define XDW_SIZEOF_STAMPNAME 256 +#define XDW_SIZEOF_STAMPOWNERNAME 64 +#define XDW_SIZEOF_STAMPREMARKS 1024 +typedef struct tag_XDW_SIGNATURE_STAMP_INFO_V5 { + int nSize; + char lpszStampName[XDW_SIZEOF_STAMPNAME]; + char lpszOwnerName[XDW_SIZEOF_STAMPOWNERNAME]; + long nValidDate; + char lpszRemarks[XDW_SIZEOF_STAMPREMARKS]; + int nDocVerificationStatus; + int nStampVerificationStatus; +} XDW_SIGNATURE_STAMP_INFO_V5; + +#define XDW_SIZEOF_PKIMODULENAME 16 +#define XDW_SIZEOF_PKISUBJECTDN 512 +#define XDW_SIZEOF_PKISUBJECT 256 +#define XDW_SIZEOF_PKIISSUERDN 512 +#define XDW_SIZEOF_PKIISSUER 256 +#define XDW_SIZEOF_PKINOTBEFORE 32 +#define XDW_SIZEOF_PKINOTAFTER 32 +#define XDW_SIZEOF_PKISERIAL 64 +#define XDW_SIZEOF_PKIREMARKS 64 +#define XDW_SIZEOF_PKISIGNEDTIME 32 + +typedef struct tag_XDW_SIGNATURE_PKI_INFO_V5 { + int nSize; + char lpszModule[XDW_SIZEOF_PKIMODULENAME]; + char lpszSubjectDN[XDW_SIZEOF_PKISUBJECTDN]; + char lpszSubject[XDW_SIZEOF_PKISUBJECT]; + char lpszIssuerDN[XDW_SIZEOF_PKIISSUERDN]; + char lpszIssuer[XDW_SIZEOF_PKIISSUER]; + char lpszNotBefore[XDW_SIZEOF_PKINOTBEFORE]; + char lpszNotAfter[XDW_SIZEOF_PKINOTAFTER]; + char lpszSerial[XDW_SIZEOF_PKISERIAL]; + void* pSignerCert; + int nSignerCertSize; + char lpszRemarks[XDW_SIZEOF_PKIREMARKS]; + char lpszSigningTime[XDW_SIZEOF_PKISIGNEDTIME]; + int nDocVerificationStatus; + int nCertVerificationType; + int nCertVerificationStatus; +} XDW_SIGNATURE_PKI_INFO_V5; + +typedef struct tag_XDW_OCR_TEXTINFO { + int nSize; + int nWidth; + int nHeight; + long charset; + char* lpszText; + int nLineRect; + XDW_RECT* pLineRect; +} XDW_OCR_TEXTINFO; + +typedef struct tag_XDW_OCRIMAGE_OPTION { + int nSize; + int nDpi; + int nNoiseReduction; + int nPriority; +} XDW_OCRIMAGE_OPTION; + +typedef struct tag_XDW_FIND_TEXT_OPTION { + int nSize; + int nIgnoreMode; + int nReserved; + int nReserved2; +} XDW_FIND_TEXT_OPTION; + +#define XDW_FOUND_RECT_STATUS_HIT (0) +#define XDW_FOUND_RECT_STATUS_PAGE (1) + +typedef struct tag_XDW_POINT { + int x; + int y; +} XDW_POINT; + + +typedef struct tag_XDW_AA_MARKER_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nCounts; + XDW_POINT* pPoints; +} XDW_AA_MARKER_INITIAL_DATA; + +typedef struct tag_XDW_AA_POLYGON_INITIAL_DATA { + XDW_AA_INITIAL_DATA common; + int nCounts; + XDW_POINT* pPoints; +} XDW_AA_POLYGON_INITIAL_DATA; + +typedef struct XDW_BEGIN_CREATE_OPTION { + int nSize; + BOOL bNoUseSpecifiedApp; +} XDW_BEGIN_CREATE_OPTION; + +#ifdef _WIN64 +#ifndef XDW_DISABLE_PRAGMA_PACK +#pragma pack(pop, xdwapi_enter_parser) +#endif /* XDW_DISABLE_PRAGMA_PACK */ +#endif /* _WIN64 */ + +#endif //XDWAPI_DECLARATIONS + + +int XDWAPI XDW_GetInformation(int nIndex, char* lpszOutput, int nSize, void* reserved); +int XDWAPI XDW_GetInformationW(int nIndex, XDW_WCHAR* lpwszOutput, int nSize, void* reserved); +int XDWAPI XDW_AddSystemFolder(int nIndex, void* reserved ); + +int XDWAPI XDW_MergeXdwFiles(const char** lpszInputPaths, int nFiles, const char* lpszOutputPath, void* reserved ); +int XDWAPI XDW_MergeXdwFilesW(const XDW_WCHAR** lpwszInputPaths, int nFiles, const XDW_WCHAR* lpwszOutputPath, void* reserved ); +int XDWAPI XDW_OpenDocumentHandle(const char* lpszFilePath, XDW_DOCUMENT_HANDLE* pHandle, XDW_OPEN_MODE* pOpenMode); +int XDWAPI XDW_OpenDocumentHandleW(const XDW_WCHAR* lpwszFilePath, XDW_DOCUMENT_HANDLE* pHandle, XDW_OPEN_MODE* pOpenMode); +int XDWAPI XDW_CloseDocumentHandle(XDW_DOCUMENT_HANDLE handle, void* reserved ); +int XDWAPI XDW_GetDocumentInformation(XDW_DOCUMENT_HANDLE handle, XDW_DOCUMENT_INFO* pDocumentInfo); +int XDWAPI XDW_GetPageInformation(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_PAGE_INFO* pPageInfo); +int XDWAPI XDW_GetPageImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_GetPageImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_GetPageText(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved ); +int XDWAPI XDW_ConvertPageToImageFile(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, XDW_IMAGE_OPTION* pImageOption); +int XDWAPI XDW_ConvertPageToImageFileW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, XDW_IMAGE_OPTION* pImageOption); +int XDWAPI XDW_GetPage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_GetPageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_DeletePage(XDW_DOCUMENT_HANDLE handle, int nPage, void* reserved); +int XDWAPI XDW_RotatePage(XDW_DOCUMENT_HANDLE handle, int nPage, int nDegree, void* reserved); +int XDWAPI XDW_SaveDocument(XDW_DOCUMENT_HANDLE handle, void* reserved); +int XDWAPI XDW_CreateXdwFromImageFile(const char* lpszInputPath, const char* lpszOutputPath, XDW_CREATE_OPTION* pOption); +int XDWAPI XDW_CreateXdwFromImageFileW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, XDW_CREATE_OPTION* pOption); + +int XDWAPI XDW_GetOriginalDataInformation(XDW_DOCUMENT_HANDLE handle, int nOriginalData, XDW_ORGDATA_INFO* pOriginalDataInfo, void* reserved); +int XDWAPI XDW_GetOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_GetOriginalDataW(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_InsertOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, const char* lpszInputPath, void* reserved); +int XDWAPI XDW_DeleteOriginalData(XDW_DOCUMENT_HANDLE handle, int nOriginalData, void* reserved); + +int XDWAPI XDW_BeginCreationFromAppFile(const char* lpszInputPath, const char* lpszOutputPath, BOOL bWithOriginal, XDW_CREATE_HANDLE* handle, void* pCreateOption); +int XDWAPI XDW_BeginCreationFromAppFileW(const XDW_WCHAR* lpszInputPath, const XDW_WCHAR* lpszOutputPath, BOOL bWithOriginal, XDW_CREATE_HANDLE* handle, void* pCreateOption); +int XDWAPI XDW_EndCreationFromAppFile(XDW_CREATE_HANDLE handle, void* reserved); +int XDWAPI XDW_GetStatusCreationFromAppFile(XDW_CREATE_HANDLE handle, XDW_CREATE_STATUS* pStatus); +int XDWAPI XDW_CancelCreationFromAppFile(XDW_CREATE_HANDLE handle, void* reserved); + +int XDWAPI XDW_GetUserAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved); +int XDWAPI XDW_SetUserAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved); + +int XDWAPI XDW_GetAnnotationInformation(XDW_DOCUMENT_HANDLE hDocument, int nPage, XDW_ANNOTATION_HANDLE hAnnotation,int nIndex, XDW_ANNOTATION_INFO* pAnnotationInfo, void* reserved); +int XDWAPI XDW_GetAnnotationAttribute(XDW_ANNOTATION_HANDLE handle, const char* lpszAttributeName, char* pAttribute, int nDataSize, void* reserved); + +int XDWAPI XDW_AddAnnotation(XDW_DOCUMENT_HANDLE handle, int hAnnotationType, int nPage, int nHorPos, int nVerPos, XDW_AA_INITIAL_DATA *pInitialData, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved); +int XDWAPI XDW_RemoveAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hRemoveAnnotation, void* reserved); +int XDWAPI XDW_SetAnnotationAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, int nReserved, void* pReserved); +int XDWAPI XDW_SetAnnotationSize(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nWidth, int nHeight, void* reserved); +int XDWAPI XDW_SetAnnotationPosition(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, void* reserved); +int XDWAPI XDW_CreateSfxDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_CreateSfxDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_ExtractFromSfxDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_ExtractFromSfxDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved); + +int XDWAPI XDW_ConvertPageToImageHandle(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_HGLOBAL* phDIB, XDW_IMAGE_OPTION* pImageOption); +int XDWAPI XDW_GetThumbnailImageHandle(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_HGLOBAL* phDIB, void* reserved); + +int XDWAPI XDW_GetPageTextToMemory(XDW_DOCUMENT_HANDLE handle, int nPage, char* lpszValue, int nDataSize, void* reserved); +int XDWAPI XDW_GetFullText(XDW_DOCUMENT_HANDLE handle, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_GetPageUserAttribute(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved); +int XDWAPI XDW_SetPageUserAttribute(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved); + +int XDWAPI XDW_ReducePageNoise(XDW_DOCUMENT_HANDLE handle, int nPage, int nLevel, void* reserved); +int XDWAPI XDW_ShowOrHideAnnotations(XDW_DOCUMENT_HANDLE handle, int nShowAnnotations, void* reserved); +int XDWAPI XDW_GetCompressedPageImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_GetCompressedPageImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_InsertDocument(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszInputPath, void* reserved); +int XDWAPI XDW_InsertDocumentW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszInputPath, void* reserved); +int XDWAPI XDW_ApplyOcr(XDW_DOCUMENT_HANDLE handle, int nPage, int nOcrEngine, void* pOption, void* reserved); +int XDWAPI XDW_RotatePageAuto(XDW_DOCUMENT_HANDLE handle, int nPage, void* reserved); +int XDWAPI XDW_CreateBinder(const char* lpszOutputPath, XDW_BINDER_INITIAL_DATA* pInitialData, void* reserved); +int XDWAPI XDW_CreateBinderW(const XDW_WCHAR* lpwszOutputPath, XDW_BINDER_INITIAL_DATA* pInitialData, void* reserved); +int XDWAPI XDW_InsertDocumentToBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszInputPath, void* reserved); + +int XDWAPI XDW_GetDocumentFromBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_GetDocumentFromBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_DeleteDocumentInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, void* reserved); +int XDWAPI XDW_GetDocumentNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, char* lpszDocName, int nDocNameSize, void* reserved); +int XDWAPI XDW_SetDocumentNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, char* lpszDocName, void* reserved); +int XDWAPI XDW_GetDocumentInformationInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, XDW_DOCUMENT_INFO* pDocumentInfo, void* reserved); +int XDWAPI XDW_Finalize(void* reserved); +int XDWAPI XDW_GetPageColorInformation(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_PAGE_COLOR_INFO* pColorInfo, void* reserved); +int XDWAPI XDW_OptimizeDocument(const char* lpszInputPath, const char* lpszOutputPath, void* reserved); +int XDWAPI XDW_OptimizeDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* reserved); +int XDWAPI XDW_ProtectDocument(const char* lpszInputPath, const char* lpszOutputPath, int nProtectType, void* pModuleOption, void* pProtectOption); +int XDWAPI XDW_ProtectDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, int nProtectType, void* pModuleOption, void* pProtectOption); + +int XDWAPI XDW_CreateXdwFromImageFileAndInsertDocument(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszInputPath, XDW_CREATE_OPTION* pOption, void* reserved); +int XDWAPI XDW_CreateXdwFromImageFileAndInsertDocumentW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszInputPath, XDW_CREATE_OPTION* pOption, void* reserved); +int XDWAPI XDW_GetDocumentAttributeNumber(XDW_DOCUMENT_HANDLE handle, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByName(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByOrder(XDW_DOCUMENT_HANDLE handle, int nOrder, char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved); +int XDWAPI XDW_SetDocumentAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, void* reserved); +int XDWAPI XDW_SucceedAttribute(XDW_DOCUMENT_HANDLE handle, const char* lpszFilePath, int nDocument, int nSuccession, void* reserved); +int XDWAPI XDW_SucceedAttributeW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* lpwszFilePath, int nDocument, int nSuccession, void* reserved); +int XDWAPI XDW_GetPageFormAttribute(XDW_DOCUMENT_HANDLE handle, int nPageForm, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void* reserved); +int XDWAPI XDW_SetPageFormAttribute(XDW_DOCUMENT_HANDLE handle, int nPageForm, const char* lpszAttributeName, int nAttributeType, char* pAttributeValue, int nReserved, void* pReserved); +int XDWAPI XDW_UpdatePageForm(XDW_DOCUMENT_HANDLE handle, int nOtherPageForm, void* reserved); +int XDWAPI XDW_RemovePageForm(XDW_DOCUMENT_HANDLE handle, int nOtherPageForm, void* reserved); +int XDWAPI XDW_GetLinkRootFolderInformation(int nOrder, XDW_LINKROOTFOLDER_INFO* pLinkRootFolderInfo, void* reserved); +int XDWAPI XDW_GetLinkRootFolderInformationW(int nOrder, XDW_LINKROOTFOLDER_INFOW* pLinkRootFolderInfo, void* reserved); +int XDWAPI XDW_GetLinkRootFolderNumber(void* reserved); +int XDWAPI XDW_GetLinkRootFolderNumberW(void* reserved); +int XDWAPI XDW_GetPageTextInformation(XDW_DOCUMENT_HANDLE handle, int nPage, void* pInfo, void* reserved); +int XDWAPI XDW_GetDocumentSignatureNumber(XDW_DOCUMENT_HANDLE handle, void* reserved); +int XDWAPI XDW_AddAnnotationOnParentAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int hAnnotationType, int nHorPos, int nVerPos, XDW_AA_INITIAL_DATA *pInitialData, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved); +int XDWAPI XDW_SignDocument(const char* lpszInputPath, const char* lpszOutputPath, void* pOption, void* pModuleOption, void* pReserved, void* pModuleStatus); +int XDWAPI XDW_SignDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* pOption, void* pModuleOption, void* pReserved, void* pModuleStatus); +int XDWAPI XDW_GetSignatureInformation(XDW_DOCUMENT_HANDLE handle, int nSignature, void* pInfo, void* pModuleInfo, void* pReserved, void* pModuleStatus); +int XDWAPI XDW_UpdateSignatureStatus(XDW_DOCUMENT_HANDLE handle, int nSignature, void* pModuleOption, void* pReserved, void* pModuleStatus); + +int XDWAPI XDW_GetOcrImage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszOutputPath, void* pImageOption, void* reserved); +int XDWAPI XDW_GetOcrImageW(XDW_DOCUMENT_HANDLE handle, int nPage, const XDW_WCHAR* lpwszOutputPath, void* pImageOption, void* reserved); +int XDWAPI XDW_SetOcrData(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_OCR_TEXTINFO* pData, void* reserved); + +int XDWAPI XDW_GetDocumentAttributeNumberInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByNameInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, const char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByOrderInBinder(XDW_DOCUMENT_HANDLE handle, int nPosition, int nOrder, char* lpszAttributeName, int* nAttributeType, char* pAttributeValue, int nDataSize, void* reserved); + +int XDWAPI XDW_GetTMInfo(XDW_DOCUMENT_HANDLE handle, void* pTMInfo, int nTMInfoSize, void* reserved); +int XDWAPI XDW_SetTMInfo(XDW_DOCUMENT_HANDLE handle, const void* pTMInfo, int nTMInfoSize, void* reserved); + +int XDWAPI XDW_CreateXdwFromImagePdfFile(const char* lpszInputPath, const char* lpszOutputPath, void* reserved); + +int XDWAPI XDW_FindTextInPage(XDW_DOCUMENT_HANDLE handle, int nPage, const char* lpszText, XDW_FIND_TEXT_OPTION* pOption, XDW_FOUND_HANDLE* pFoundHandle, void* reserved); +int XDWAPI XDW_FindNext(XDW_FOUND_HANDLE* pFoundHandle, void* reserved); +int XDWAPI XDW_GetNumberOfRectsInFoundObject(XDW_FOUND_HANDLE foundHandle, void* reserved); +int XDWAPI XDW_GetRectInFoundObject(XDW_FOUND_HANDLE foundHandle, int nRect, XDW_RECT* pRect, int* pnStatus, void* reserved); +int XDWAPI XDW_CloseFoundHandle(XDW_FOUND_HANDLE foundHandle); + +int XDWAPI XDW_GetAnnotationUserAttribute(XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved); +int XDWAPI XDW_SetAnnotationUserAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, char* pAttributeValue, int nDataSize, void *reserved); + +int XDWAPI XDW_StarchAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, int nStarch, void* reserved); + +int XDWAPI XDW_ReleaseProtectionOfDocument(const char* lpszInputPath, const char* lpszOutputPath, void* pOption); +int XDWAPI XDW_ReleaseProtectionOfDocumentW(const XDW_WCHAR* lpwszInputPath, const XDW_WCHAR* lpwszOutputPath, void* pOption); +int XDWAPI XDW_GetProtectionInformation(const char* lpszInputPath, XDW_PROTECTION_INFO* pProtectionInfo, void* reserved); +int XDWAPI XDW_GetProtectionInformationW(const XDW_WCHAR* lpwszInputPath, XDW_PROTECTION_INFO* pProtectionInfo, void* reserved); + +int XDWAPI XDW_GetAnnotationCustomAttributeByName(XDW_ANNOTATION_HANDLE hAnnotation, XDW_WCHAR* lpszAttributeName, int* pnAttributeType, char* pAttributeValue, int nDataSize, void* reserved); +int XDWAPI XDW_GetAnnotationCustomAttributeByOrder(XDW_ANNOTATION_HANDLE hAnnotation, int nOrder, XDW_WCHAR* lpszAttributeName, int* pnAttributeType, char* pAttributeValue, int nDataSize, void* reserved); +int XDWAPI XDW_GetAnnotationCustomAttributeNumber(XDW_ANNOTATION_HANDLE hAnnotation, void* reserved); +int XDWAPI XDW_SetAnnotationCustomAttribute(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, XDW_WCHAR* lpszAttributeName, int nAttributeType, char* pAttributeValue, void* reserved); + +int XDWAPI XDW_GetPageTextToMemoryW(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_WCHAR* pValue, int nBufferLength, void* reserved); +int XDWAPI XDW_GetFullTextW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pOutputPath, void* reserved); +int XDWAPI XDW_GetAnnotationAttributeW(XDW_ANNOTATION_HANDLE handle, const char* lpszAttributeName, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_SetAnnotationAttributeW(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, const char* lpszAttributeName, int nAttributeType, void* pAttributeValue, int nTextType, unsigned int codepage, int nReserved, void* pReserved); +int XDWAPI XDW_GetDocumentAttributeByNameW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByOrderW(XDW_DOCUMENT_HANDLE handle, int nOrder, XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_GetDocumentAttributeByOrderInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, int nOrder, XDW_WCHAR* pAttributeName, int* pnAttributeType, void* pAttributeValue, int nDataSize, int* pnTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_SetDocumentAttributeW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* pAttributeName, int nAttributeType, void* pAttributeValue, int nTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_GetDocumentNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, XDW_WCHAR* pDocName, int nBufferLength, int* pnTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_SetDocumentNameInBinderW(XDW_DOCUMENT_HANDLE handle, int nPosition, const XDW_WCHAR* pDocName, int nTextType, unsigned int codepage, void* reserved); +int XDWAPI XDW_GetOriginalDataInformationW(XDW_DOCUMENT_HANDLE handle, int nOriginalData, XDW_ORGDATA_INFOW* pOriginalDataInfoW, int* pnTextType, unsigned int codepage, void* reserved); + +int XDWAPI XDW_AddAnnotationFromAnnFile(XDW_DOCUMENT_HANDLE handle, const char* lpszAnnFilePath, int nIndex, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved); +int XDWAPI XDW_AddAnnotationFromAnnFileW(XDW_DOCUMENT_HANDLE handle, const XDW_WCHAR* lpwszAnnFilePath, int nIndex, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int nHorPos, int nVerPos, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved); +int XDWAPI XDW_GroupAnnotations(XDW_DOCUMENT_HANDLE handle, int nPage, XDW_ANNOTATION_HANDLE hAnnotation, int* pnAnntationIndexes, int nAnnotationNum, XDW_ANNOTATION_HANDLE* phNewAnnotation, void* reserved); +int XDWAPI XDW_UnGroupAnnotation(XDW_DOCUMENT_HANDLE handle, XDW_ANNOTATION_HANDLE hAnnotation, void* reserved); + +/* error code */ +#ifndef XDWAPI_E_DECLARATIONS +#define XDWAPI_E_DECLARATIONS + +#define XDW_E_NOT_INSTALLED ((int)0x80040001) +#define XDW_E_INFO_NOT_FOUND ((int)0x80040002) +#define XDW_E_INSUFFICIENT_BUFFER ((int)0x8007007A) +#define XDW_E_FILE_NOT_FOUND ((int)0x80070002) +#define XDW_E_FILE_EXISTS ((int)0x80070050) +#define XDW_E_ACCESSDENIED ((int)0x80070005) +#define XDW_E_BAD_FORMAT ((int)0x8007000B) +#define XDW_E_OUTOFMEMORY ((int)0x8007000E) +#define XDW_E_WRITE_FAULT ((int)0x8007001D) +#define XDW_E_SHARING_VIOLATION ((int)0x80070020) +#define XDW_E_DISK_FULL ((int)0x80070027) +#define XDW_E_INVALIDARG ((int)0x80070057) +#define XDW_E_INVALID_NAME ((int)0x8007007B) +#define XDW_E_INVALID_ACCESS ((int)0x80040003) +#define XDW_E_INVALID_OPERATION ((int)0x80040004) +#define XDW_E_NEWFORMAT ((int)0x800E0004) +#define XDW_E_BAD_NETPATH ((int)0x800E0005) +#define XDW_E_APPLICATION_FAILED ((int)0x80001156) +#define XDW_E_SIGNATURE_MODULE ((int)0x800E0010) +#define XDW_E_PROTECT_MODULE ((int)0x800E0012) +#define XDW_E_UNEXPECTED ((int)0x8000FFFF) +#define XDW_E_CANCELED ((int)0x80040005) +#define XDW_E_ANNOTATION_NOT_ACCEPTED ((int)0x80040006) + +#endif //XDWAPI_E_DECLARATIONS + +#ifdef __cplusplus +} /* end of extern "C" */ +#endif /* __cplusplus */ + +#endif /* XDW_API_H */ + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Perori/xdwapi.lib Binary file src/kaigo/Perori/xdwapi.lib has changed diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Perori/xdwapian.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Perori/xdwapian.h Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,133 @@ +/* File: xdwapian.h +// Copyright(C) 1999-2002 by Fuji Xerox Co., Ltd. All right reserved. +*/ + +#ifndef __XDWAPIAN_H__ +#define __XDWAPIAN_H__ 1 + +#define XDW_ATN_Text "%Text" +#define XDW_ATN_FontName "%FontName" +#define XDW_ATN_FontStyle "%FontStyle" +#define XDW_ATN_FontSize "%FontSize" +#define XDW_ATN_ForeColor "%ForeColor" +#define XDW_ATN_FontPitchAndFamily "%FontPitchAndFamily" +#define XDW_ATN_FontCharSet "%FontCharSet" +#define XDW_ATN_BackColor "%BackColor" +#define XDW_ATN_Caption "%Caption" +#define XDW_ATN_Url "%Url" +#define XDW_ATN_XdwPath "%XdwPath" +#define XDW_ATN_ShowIcon "%ShowIcon" +#define XDW_ATN_LinkType "%LinkType" +#define XDW_ATN_XdwPage "%XdwPage" +#define XDW_ATN_Tooltip "%Tooltip" +#define XDW_ATN_Tooltip_String "%TooltipString" +#define XDW_ATN_XdwPath_Relative "%XdwPathRelative" +#define XDW_ATN_XdwLink "%XdwLink" +#define XDW_ATN_LinkAtn_Title "%LinkAtnTitle" +#define XDW_ATN_OtherFilePath "%OtherFilePath" +#define XDW_ATN_OtherFilePath_Relative "%OtherFilePathRelative" +#define XDW_ATN_MailAddress "%MailAddress" +#define XDW_ATN_BorderStyle "%BorderStyle" +#define XDW_ATN_BorderWidth "%BorderWidth" +#define XDW_ATN_BorderColor "%BorderColor" +#define XDW_ATN_BorderTransparent "%BorderTransparent" +#define XDW_ATN_BorderType "%BorderType" +#define XDW_ATN_FillStyle "%FillStyle" +#define XDW_ATN_FillColor "%FillColor" +#define XDW_ATN_FillTransparent "%FillTransparent" +#define XDW_ATN_ArrowheadType "%ArrowheadType" +#define XDW_ATN_ArrowheadStyle "%ArrowheadStyle" +#define XDW_ATN_WordWrap "%WordWrap" +#define XDW_ATN_TextDirection "%TextDirection" +#define XDW_ATN_TextOrientation "%TextOrientation" +#define XDW_ATN_LineSpace "%LineSpace" +#define XDW_ATN_AutoResize "%AutoResize" +#define XDW_ATN_Invisible "%Invisible" +#define XDW_ATN_PageFrom "%PageFrom" +#define XDW_ATN_XdwNameInXbd "%XdwNameInXbd" +#define XDW_ATN_TopField "%TopField" +#define XDW_ATN_BottomField "%BottomField" +#define XDW_ATN_DateStyle "%DateStyle" +#define XDW_ATN_YearField "%YearField" +#define XDW_ATN_MonthField "%MonthField" +#define XDW_ATN_DayField "%DayField" +#define XDW_ATN_BasisYearStyle "%BasisYearStyle" +#define XDW_ATN_BasisYear "%BasisYear" +#define XDW_ATN_DateField_FirstChar "%DateFieldFirstChar" +#define XDW_ATN_Alignment "%Alignment" +#define XDW_ATN_LeftRightMargin "%LeftRightMargin" +#define XDW_ATN_TopBottomMargin "%TopBottomMargin" +#define XDW_ATN_VerPosition "%VerPosition" +#define XDW_ATN_StartingNumber "%StartingNumber" +#define XDW_ATN_Digit "%Digit" +#define XDW_ATN_PageRange "%PageRange" +#define XDW_ATN_BeginningPage "%BeginningPage" +#define XDW_ATN_EndingPage "%EndingPage" +#define XDW_ATN_Zoom "%Zoom" +#define XDW_ATN_ImageFile "%ImageFile" +#define XDW_ATN_Points "%Points" +#define XDW_ATN_DateFormat "%DateFormat" +#define XDW_ATN_DateOrder "%DateOrder" +#define XDW_ATN_TextSpacing "%Spacing" +#define XDW_ATN_TextTopMargin "%TopMargin" +#define XDW_ATN_TextLeftMargin "%LeftMargin" +#define XDW_ATN_TextBottomMargin "%BottomMargin" +#define XDW_ATN_TextRightMargin "%RightMargin" +#define XDW_ATN_TextAutoResizeHeight "%AutoResizeHeight" +#define XDW_ATN_GUID "%CustomAnnGuid" +#define XDW_ATN_CustomData "%CustomAnnCustomData" + +#define XDW_PROP_TITLE "%Title" +#define XDW_PROP_SUBJECT "%Subject" +#define XDW_PROP_AUTHOR "%Author" +#define XDW_PROP_KEYWORDS "%Keywords" +#define XDW_PROP_COMMENTS "%Comments" + +#define XDW_PROPW_TITLE L"%Title" +#define XDW_PROPW_SUBJECT L"%Subject" +#define XDW_PROPW_AUTHOR L"%Author" +#define XDW_PROPW_KEYWORDS L"%Keywords" +#define XDW_PROPW_COMMENTS L"%Comments" + +#define XDW_COLOR_NONE 0x010101 +#define XDW_COLOR_BLACK 0x000000 +#define XDW_COLOR_MAROON 0x000080 +#define XDW_COLOR_GREEN 0x008000 +#define XDW_COLOR_OLIVE 0x008080 +#define XDW_COLOR_NAVY 0x800000 +#define XDW_COLOR_PURPLE 0x800080 +#define XDW_COLOR_TEAL 0x808000 +#define XDW_COLOR_GRAY 0x808080 +#define XDW_COLOR_SILVER 0xC0C0C0 +#define XDW_COLOR_RED 0x0000FF +#define XDW_COLOR_LIME 0x00FF00 +#define XDW_COLOR_YELLOW 0x00FFFF +#define XDW_COLOR_BLUE 0xFF0000 +#define XDW_COLOR_FUCHIA 0xFF00FF +#define XDW_COLOR_AQUA 0xFFFF00 +#define XDW_COLOR_WHITE 0xFFFFFF +#define XDW_COLOR_FUSEN_RED 0xFFC2FF +#define XDW_COLOR_FUSEN_BLUE 0xFFBF9D +#define XDW_COLOR_FUSEN_YELLOW 0x64FFFF +#define XDW_COLOR_FUSEN_LIME 0xC2FF9D +#define XDW_COLOR_FUSEN_PALE_RED 0xE1D7FF +#define XDW_COLOR_FUSEN_PALE_BLUE 0xFAE1C8 +#define XDW_COLOR_FUSEN_PALE_YELLOW 0xC3FAFF +#define XDW_COLOR_FUSEN_PALE_LIME 0xD2FACD + +#define XDW_FS_ITALIC_FLAG 1 +#define XDW_FS_BOLD_FLAG 2 +#define XDW_FS_UNDERLINE_FLAG 4 +#define XDW_FS_STRIKEOUT_FLAG 8 + +#define XDW_LT_LINK_TO_ME 0 +#define XDW_LT_LINK_TO_XDW 1 +#define XDW_LT_LINK_TO_URL 2 +#define XDW_LT_LINK_TO_OTHERFILE 3 +#define XDW_LT_LINK_TO_MAILADDR 4 + +#define XDW_PF_XDW 0 +#define XDW_PF_XBD 1 +#define XDW_PF_XDW_IN_XBD 2 + +#endif //__XDWAPIAN_H__ diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/Makefile Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,99 @@ +# Makefile for wxWidgets Application +# Last Change: 2020-02-12 水 15:59:48. +# by Takayuki Mutoh +# + +PROGNAME = porori + +### Variables ### +ARCH = 64 +#ARCH = 32 +LOCAL = C:/msys64/home/muto/local$(ARCH) +OBJDIR = ./obj$(ARCH) +CXX = g++ +vpath %.cpp ./src +vpath %.h ./include +vpath %.rc ./image + +# For Microsoft Windows +ifdef COMSPEC +WXCXXFLAGS = -I./image -I$(LOCAL)/lib/wx/include/msw-unicode-static-3.1 -I$(LOCAL)/include/wx-3.1 -D_LARGEFILE_SOURCE=unknown -D__WXMSW__ -mthreads +WXLIBS = -L$(LOCAL)/lib -Wl,--subsystem,windows -mwindows -lwx_mswu_xrc-3.1 -lwx_mswu_qa-3.1 -lwx_baseu_net-3.1 -lwx_mswu_html-3.1 -lwx_mswu_adv-3.1 -lwx_mswu_core-3.1 -lwx_baseu_xml-3.1 -lwx_baseu-3.1 -lwxtiff-3.1 -lwxjpeg-3.1 -lwxpng-3.1 -lwxregexu-3.1 -lwxscintilla-3.1 -lwxexpat-3.1 -lwxzlib-3.1 -lrpcrt4 -loleaut32 -lole32 -luuid -luxtheme -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lcomdlg32 -ladvapi32 -lversion -lwsock32 -lgdi32 -loleacc +LIBS = $(WXLIBS) -static + +EXECUTABLE = $(PROGNAME).exe + +# For Apple OSX +else +WXCXXFLAGS = -I/opt/local/lib/wx/include/osx_cocoa-unicode-2.9 -I/opt/local/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ +WXLIBS = -L/opt/local/lib -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL -framework QuickTime -lwx_osx_cocoau_richtext-2.9 -lwx_osx_cocoau_xrc-2.9 -lwx_osx_cocoau_webview-2.9 -lwx_osx_cocoau_html-2.9 -lwx_osx_cocoau_qa-2.9 -lwx_osx_cocoau_adv-2.9 -lwx_osx_cocoau_core-2.9 -lwx_baseu_xml-2.9 -lwx_baseu_net-2.9 -lwx_baseu-2.9 + +EXECUTABLE = $(PROGNAME).app/Contents/Pkginfo + +endif + +CXXFLAGS = $(WXCXXFLAGS) -I./include -I./image +#LIBS = $(WXLIBS) -static-libgcc -static-libstdc++ + + +OBJ = $(OBJDIR)/main.o \ + $(OBJDIR)/porori.o + +ifdef COMSPEC +OBJMSW = $(OBJ) $(OBJDIR)/sample_rc.o +endif + + +### Targets ### + +all: $(EXECUTABLE) + + +$(PROGNAME): $(OBJMSW) + $(CXX) $^ -o $@ $(LIBS) + + +$(OBJDIR)/main.o: main.cpp main.h porori.h + -mkdir -p $(OBJDIR) + $(CXX) -c $< -o $@ $(CXXFLAGS) + +$(OBJDIR)/porori.o: porori.cpp porori.h + $(CXX) -c $< -o $@ $(CXXFLAGS) + + +# for icon +ifdef COMSPEC +$(OBJDIR)/sample_rc.o: sample.rc + #windres -i sample.rc -o $@ -I$(LOCAL)/include/wx-3.1 + windres -i $< -o $@ -I$(LOCAL)/include/wx-3.1 +endif + +$(EXECUTABLE): $(PROGNAME) +ifdef COMSPEC + strip --strip-all $(EXECUTABLE) + ./$(PROGNAME).exe +else + -mkdir -p $(PROGNAME).app/Contents + -mkdir -p $(PROGNAME).app/Contents/MacOS + -mkdir -p $(PROGNAME).app/Contents/Resources + + sed -e "s/IDENTIFIER/$(PROGNAME)/" \ + -e "s/EXECUTABLE/$(PROGNAME)/" \ + -e "s/VERSION/0.0/" \ + Info.plist.in > $(PROGNAME).app/Contents/Info.plist + + echo -n "APPL????" > $(EXECUTABLE) + + ln -f $(PROGNAME) $(PROGNAME).app/Contents/MacOS/$(PROGNAME) + cp -f wxmac.icns $(PROGNAME).app/Contents/Resources/wxmac.icns + + open $(PROGNAME).app +endif + +clean: + rm -f $(PROGNAME) $(PROGNAME).exe + rm -f $(OBJDIR)/*.o + rm -rf $(PROGNAME).app + +.PHONY: all clean + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/Nintei.fbp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/Nintei.fbp Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,323 @@ + + + + + ; + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + + 1000 + none + + 0 + ProjectNintei + + . + + 1 + 1 + 1 + 1 + UI + 1 + 0 + + 0 + wxAUI_MGR_DEFAULT + + wxBOTH + + 1 + 1 + impl_virtual + + + + 0 + wxID_ANY + + + PororiFrame + + 340,80 + wxDEFAULT_FRAME_STYLE + ; ; forward_declare + Porori + + + + wxTAB_TRAVERSAL + 1 + + + bSizerTop + wxHORIZONTAL + none + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_datePickerFrom + 1 + + + protected + 1 + + Resizable + 1 + + wxDP_DEFAULT + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + + 0 + + 1 + m_staticText + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_datePickerTo + 1 + + + protected + 1 + + Resizable + 1 + + wxDP_DEFAULT + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + ID_PROCESS + 螳溯。 + + 0 + + 0 + + + 0 + + 1 + m_button + 1 + + + protected + 1 + + + + Resizable + 1 + + + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnClick + + + + + + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/Porori.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/Porori.bat Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,7 @@ +@echo off +set PDIR=C:\Users\KAIGO\Desktop\Porori +mkdir %PDIR% +copy S:\Current\0000_Every\最新認定情報\Porori\bin\* %PDIR% +rem copy S:\Current\0000_Every\最新認定情報\Porori\bin64\* %PDIR% +cd %PDIR% +call %PDIR%\make diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/a.csv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/a.csv Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,157 @@ +被保番,氏名,申請日,区分,開始日,終了日,期間,審査会 +="0800469686",山田 太郎003, 2019-10-15,新規, 2019-10-15, 2020-10-31,12, 2020-01-17 +="0800116627",山田 太郎013, 2019-11-12,新規, 2019-11-12, 2020-11-30,12, 2020-01-17 +="0200094557",山田 太郎019, 2019-11-14,新規, 2019-11-14, 2020-11-30,12, 2020-01-17 +="0300143253",山田 太郎020, 2019-11-14,区変, 2019-11-14, 2020-11-30,12, 2020-01-17 +="0800438454",山田 太郎024, 2019-11-14,新規, 2019-11-14, 2020-11-30,12, 2020-01-17 +="0300133967",山田 太郎027, 2019-11-15,新規, 2019-11-15, 2020-11-30,12, 2020-01-17 +="0800288134",山田 太郎029, 2019-11-15,新規, 2019-11-15, 2020-11-30,12, 2020-01-17 +="0300100430",山田 太郎032, 2019-11-18,新規, 2019-11-18, 2020-11-30,12, 2020-01-17 +="0800031885",山田 太郎034, 2019-11-18,更新, 2020-01-01, 2020-12-31,12, 2020-01-17 +="0800154863",山田 太郎037, 2019-11-19,新規, 2019-11-19, 2020-11-30,12, 2020-01-17 +="0300002595",山田 太郎042, 2019-11-22,新規, 2019-11-22, 2020-11-30,12, 2020-01-17 +="0200022920",山田 太郎046, 2019-11-25,新規, 2019-11-25, 2020-11-30,12, 2020-01-17 +="0800116490",山田 太郎051, 2019-11-25,新規, 2019-11-25, 2020-11-30,12, 2020-01-17 +="0200078136",山田 太郎047, 2019-11-25,新規, 2019-11-25, 2020-11-30,12, 2020-01-17 +="0800290449",山田 太郎055, 2019-11-26,区変, 2019-11-26, 2020-11-30,12, 2020-01-17 +="0300099866",山田 太郎059, 2019-11-27,新規, 2019-11-27, 2020-11-30,12, 2020-01-17 +="0300137245",山田 太郎060, 2019-11-27,新規, 2019-11-27, 2020-11-30,12, 2020-01-17 +="0800287847",山田 太郎061, 2019-11-27,新規, 2019-11-27, 2020-11-30,12, 2020-01-17 +="0800355419",山田 太郎062, 2019-11-27,新規, 2019-11-27, 2020-11-30,12, 2020-01-17 +="0300123759",山田 太郎066, 2019-11-28,新規, 2019-11-28, 2020-11-30,12, 2020-01-17 +="0300090753",山田 太郎063, 2019-11-28,新規, 2019-11-28, 2020-11-30,12, 2020-01-17 +="0800018021",山田 太郎070, 2019-11-29,区変, 2019-11-29, 2020-11-30,12, 2020-01-17 +="0300049966",山田 太郎069, 2019-11-29,更新, 2019-12-01, 2022-11-30,36, 2020-01-17 +="0800458803",山田 太郎074, 2019-11-29,新規, 2019-11-29, 2020-11-30,12, 2020-01-17 +="0800221358",山田 太郎073, 2019-11-29,更新, 2020-01-01, 2020-12-31,12, 2020-01-17 +="0300112412",山田 太郎087, 2019-12-01,区変, 2019-12-01, 2020-11-30,12, 2020-01-17 +="0300116426",山田 太郎088, 2019-12-01,区変, 2019-12-01, 2020-11-30,12, 2020-01-17 +="0800091110",山田 太郎098, 2019-12-01,区変, 2019-12-01, 2020-11-30,12, 2020-01-17 +="0800131405",山田 太郎102, 2019-12-01,支介, 2019-12-01, 2020-11-30,12, 2020-01-17 +="0800190517",山田 太郎107, 2019-12-01,区変, 2019-12-01, 2020-11-30,12, 2020-01-17 +="0800401208",山田 太郎113, 2019-12-01,新規, 2019-12-01, 2020-11-30,12, 2020-01-17 +="0800427720",山田 太郎114, 2019-12-01,支介, 2019-12-01, 2020-11-30,12, 2020-01-17 +="0800458692",山田 太郎115, 2019-12-01,区変, 2019-12-01, 2020-11-30,12, 2020-01-17 +="0300021832",山田 太郎136, 2019-12-02,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300005381",山田 太郎132, 2019-12-02,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300017568",山田 太郎135, 2019-12-02,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0100058766",山田 太郎120, 2019-12-02,区変, 2019-12-02, 2020-12-31,12, 2020-01-17 +="0300032648",山田 太郎138, 2019-12-02,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300043003",山田 太郎139, 2019-12-02,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300121438",山田 太郎140, 2019-12-02,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300121691",山田 太郎141, 2019-12-02,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800277167",山田 太郎167, 2019-12-02,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800065240",山田 太郎146, 2019-12-02,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800128552",山田 太郎150, 2019-12-02,新規, 2019-12-02, 2020-12-31,12, 2020-01-17 +="0800137012",山田 太郎151, 2019-12-02,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800140684",山田 太郎152, 2019-12-02,更新, 2020-02-01, 2021-01-31,12, 2020-01-17 +="0800016592",山田 太郎144, 2019-12-02,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800189705",山田 太郎157, 2019-12-02,区変, 2019-12-02, 2020-12-31,12, 2020-01-17 +="0200023820",山田 太郎176, 2019-12-03,区変, 2019-12-03, 2020-12-31,12, 2020-01-17 +="0200053281",山田 太郎178, 2019-12-03,支介, 2019-12-03, 2020-12-31,12, 2020-01-17 +="0200102088",山田 太郎187, 2019-12-03,新規, 2019-12-03, 2020-12-31,12, 2020-01-17 +="0300120296",山田 太郎195, 2019-12-03,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300133673",山田 太郎196, 2019-12-03,更新, 2020-01-01, 2020-12-31,12, 2020-01-17 +="0800185483",山田 太郎205, 2019-12-03,新規, 2019-12-03, 2020-12-31,12, 2020-01-17 +="0300111300",山田 太郎278, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0100014416",山田 太郎211, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0100027658",山田 太郎213, 2019-12-04,更新, 2020-02-01, 2021-01-31,12, 2020-01-17 +="0100031370",山田 太郎214, 2019-12-04,更新, 2020-02-01, 2021-01-31,12, 2020-01-17 +="0100066980",山田 太郎219, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0100068443",山田 太郎220, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0100077310",山田 太郎222, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0100104920",山田 太郎228, 2019-12-04,新規, 2019-12-04, 2020-12-31,12, 2020-01-17 +="0200006020",山田 太郎237, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0200020235",山田 太郎238, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0200093151",山田 太郎246, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300001211",山田 太郎253, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300074510",山田 太郎265, 2019-12-04,新規, 2019-12-04, 2020-12-31,12, 2020-01-17 +="0300075177",山田 太郎267, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300078915",山田 太郎269, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300082726",山田 太郎272, 2019-12-04,更新, 2020-02-01, 2021-01-31,12, 2020-01-17 +="0100000873",山田 太郎209, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300115314",山田 太郎279, 2019-12-04,区変, 2019-12-04, 2020-12-31,12, 2020-01-17 +="0300130860",山田 太郎281, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300146112",山田 太郎282, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800010977",山田 太郎283, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800015650",山田 太郎284, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800027160",山田 太郎285, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800042283",山田 太郎286, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800420024",山田 太郎328, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800070228",山田 太郎289, 2019-12-04,更新, 2020-02-01, 2021-01-31,12, 2020-01-17 +="0800073898",山田 太郎290, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800080118",山田 太郎291, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800087112",山田 太郎293, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800095727",山田 太郎297, 2019-12-04,新規, 2019-12-04, 2020-12-31,12, 2020-01-17 +="0800102421",山田 太郎299, 2019-12-04,更新, 2020-01-01, 2022-12-31,36, 2020-01-17 +="0800116074",山田 太郎302, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800159881",山田 太郎305, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800242622",山田 太郎317, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800251583",山田 太郎319, 2019-12-04,更新, 2020-02-01, 2022-01-31,24, 2020-01-17 +="0800277159",山田 太郎321, 2019-12-04,更新, 2020-02-01, 2022-01-31,24, 2020-01-17 +="0800372623",山田 太郎324, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800401666",山田 太郎325, 2019-12-04,更新, 2020-02-01, 2022-01-31,24, 2020-01-17 +="0800406005",山田 太郎326, 2019-12-04,新規, 2019-12-04, 2020-12-31,12, 2020-01-17 +="0800066107",山田 太郎288, 2019-12-04,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800393876",山田 太郎414, 2019-12-05,更新, 2020-02-01, 2022-01-31,24, 2020-01-17 +="0100088223",山田 太郎346, 2019-12-05,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0200068939",山田 太郎356, 2019-12-05,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0200072839",山田 太郎357, 2019-12-05,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0200090195",山田 太郎361, 2019-12-05,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300064264",山田 太郎369, 2019-12-05,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300078877",山田 太郎371, 2019-12-05,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800008131",山田 太郎384, 2019-12-05,更新, 2020-02-01, 2022-01-31,24, 2020-01-17 +="0800018323",山田 太郎385, 2019-12-05,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800066450",山田 太郎387, 2019-12-05,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800079969",山田 太郎389, 2019-12-05,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800083737",山田 太郎390, 2019-12-05,区変, 2019-12-05, 2020-12-31,12, 2020-01-17 +="0800093635",山田 太郎393, 2019-12-05,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800129940",山田 太郎398, 2019-12-05,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800172365",山田 太郎405, 2019-12-05,区変, 2019-12-05, 2020-12-31,12, 2020-01-17 +="0100002868",山田 太郎334, 2019-12-05,更新, 2020-02-01, 2022-01-31,24, 2020-01-17 +="0100024160",山田 太郎417, 2019-12-06,新規, 2019-12-06, 2020-12-31,12, 2020-01-17 +="0100061830",山田 太郎422, 2019-12-06,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0200003829",山田 太郎433, 2019-12-06,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0200085086",山田 太郎444, 2019-12-06,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300098894",山田 太郎456, 2019-12-06,区変, 2019-12-06, 2020-12-31,12, 2020-01-17 +="0800005345",山田 太郎461, 2019-12-06,更新, 2020-02-01, 2021-01-31,12, 2020-01-17 +="0800029120",山田 太郎468, 2019-12-06,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800056578",山田 太郎472, 2019-12-06,新規, 2019-12-06, 2020-12-31,12, 2020-01-17 +="0800208122",山田 太郎489, 2019-12-06,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0800309700",山田 太郎496, 2019-12-06,更新, 2020-02-01, 2022-01-31,24, 2020-01-17 +="0800264855",山田 太郎556, 2019-12-09,更新, 2020-01-01, 2021-12-31,24, 2020-01-17 +="0100032937",山田 太郎508, 2019-12-09,区変, 2019-12-09, 2020-12-31,12, 2020-01-17 +="0100069890",山田 太郎515, 2019-12-09,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0100090848",山田 太郎517, 2019-12-09,新規, 2019-12-09, 2020-12-31,12, 2020-01-17 +="0200049241",山田 太郎522, 2019-12-09,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0100029324",山田 太郎507, 2019-12-09,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0300063322",山田 太郎533, 2019-12-09,新規, 2019-12-09, 2020-12-31,12, 2020-01-17 +="0800017190",山田 太郎536, 2019-12-09,新規, 2019-12-09, 2020-12-31,12, 2020-01-17 +="0800025940",山田 太郎538, 2019-12-09,支介, 2019-12-09, 2020-12-31,12, 2020-01-17 +="0800085764",山田 太郎542, 2019-12-09,区変, 2019-12-09, 2020-12-31,12, 2020-01-17 +="0800095042",山田 太郎543, 2019-12-09,新規, 2019-12-09, 2020-12-31,12, 2020-01-17 +="0800113407",山田 太郎546, 2019-12-09,新規, 2019-12-09, 2020-12-31,12, 2020-01-17 +="0200077059",山田 太郎526, 2019-12-09,更新, 2020-02-01, 2023-01-31,36, 2020-01-17 +="0100000407",山田 太郎561, 2019-12-10,新規, 2019-12-10, 2020-12-31,12, 2020-01-17 +="0300059724",山田 太郎571, 2019-12-10,新規, 2019-12-10, 2020-12-31,12, 2020-01-17 +="0800358868",山田 太郎589, 2019-12-10,新規, 2019-12-10, 2020-12-31,12, 2020-01-17 +="0800361184",山田 太郎590, 2019-12-10,新規, 2019-12-10, 2020-12-31,12, 2020-01-17 +="0800155223",山田 太郎600, 2019-12-11,新規, 2019-12-11, 2020-12-31,12, 2020-01-17 +="0800224489",山田 太郎602, 2019-12-11,更新, 2020-01-01, 2022-12-31,36, 2020-01-17 +="0800365082",山田 太郎604, 2019-12-11,新規, 2019-12-11, 2020-12-31,12, 2020-01-17 +="0800384087",山田 太郎605, 2019-12-11,新規, 2019-12-11, 2020-12-31,12, 2020-01-17 +="0800435315",山田 太郎607, 2019-12-11,新規, 2019-12-11, 2020-12-31,12, 2020-01-17 +="0800142130",山田 太郎618, 2019-12-12,新規, 2019-12-12, 2020-12-31,12, 2020-01-17 +="0100075040",山田 太郎610, 2019-12-12,新規, 2019-12-12, 2020-12-31,12, 2020-01-17 +="0100065266",山田 太郎609, 2019-12-12,区変, 2019-12-12, 2020-12-31,12, 2020-01-17 +="0800123666",山田 太郎616, 2019-12-12,新規, 2019-12-12, 2020-12-31,12, 2020-01-17 +="0100090201",山田 太郎611, 2019-12-12,新規, 2019-12-12, 2020-12-31,12, 2020-01-17 +="0100078686",山田 太郎623, 2019-12-13,新規, 2019-12-13, 2020-12-31,12, 2020-01-17 +="0800012317",山田 太郎625, 2019-12-13,新規, 2019-12-13, 2020-12-31,12, 2020-01-17 +="0100116057",山田 太郎640, 2019-12-16,新規, 2019-12-16, 2020-12-31,12, 2020-01-17 +="0800059020",山田 太郎649, 2019-12-16,支介, 2019-12-16, 2020-12-31,12, 2020-01-17 +="0800415152",山田 太郎654, 2019-12-16,新規, 2019-12-16, 2020-12-31,12, 2020-01-17 +="0100030730",山田 太郎638, 2019-12-16,支介, 2019-12-16, 2020-12-31,12, 2020-01-17 +="0800101522",山田 太郎667, 2019-12-17,支介, 2019-12-17, 2020-12-31,12, 2020-01-17 +="0200045530",山田 太郎659, 2019-12-17,新規, 2019-12-17, 2020-12-31,12, 2020-01-17 +="0800493609",山田 太郎709, 2020-01-06,転入, 2020-01-06, 2021-01-31,12, 2020-01-15 diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/export.mdb Binary file src/kaigo/Porori/export.mdb has changed diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/image/sample.ico Binary file src/kaigo/Porori/image/sample.ico has changed diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/image/sample.rc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/image/sample.rc Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,32 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: samples/samples.rc +// Purpose: a standard Win32 .rc file for the wxWindows samples +// Author: Vadim Zeitlin +// Modified by: +// Created: 04.08.03 +// RCS-ID: $Id: sample.rc 22863 2003-08-14 14:08:53Z VS $ +// Copyright: (c) 2003 Vadim Zeitlin +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +// this minimal resource file is all what is needed for most of the wxWindows +// samples + +// note that the icon used by the Explorer (i.e. the programs icon) is the +// first icon in the executable and the icons are sorted both by their order +// (Win9x) and by alphabetically (!) (NT), so put this icon first and give it +// a name starting with "a" +aaaaaaaa ICON "sample.ico" + +// this icon is used with wxFrame::SetIcon() +sample ICON "sample.ico" + +// set this to 1 if you don't want to use manifest resource (manifest resource +// is needed to enable visual styles on Windows XP - see docs/msw/winxp.txt +// for more information) +#define wxUSE_NO_MANIFEST 0 + +// this is not always needed but doesn't hurt (except making the executable +// very slightly larger): this file contains the standard icons, cursors, ... +#include "wx/msw/wx.rc" + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/image/sample.xpm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/image/sample.xpm Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,23 @@ +/* XPM */ +static char * sample_xpm[] = { +"16 16 4 1", +" c None", +". c #6ECB63", +"+ c #8C0214", +"@ c #ECE6B4", +"................", +"................", +".++.++.++.++.++.", +".++.++.++.++.++.", +".++.++.++.++.++.", +".++.++.++.++.++.", +".++.++.++.++.++.", +".++.++.++.++.++.", +".++.++.++.++.++.", +".++.++.++.++.++.", +".++.++.++.++.++.", +".@@.@@.@@.@@.@@.", +".@@.@@.@@.@@.@@.", +".@@.@@.@@.@@.@@.", +"................", +"................"}; diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/include/main.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/include/main.h Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,20 @@ +// Filename : main.h +// Last Change: 2016-12-01 木 18:02:02. +// +#include + +// private classes +// Define a new application type, each program should derive a class from wxApp +class MyApp : public wxApp +{ + DECLARE_CLASS( MyApp ) +public: + MyApp(); + ~MyApp(); + + virtual bool OnInit(); + virtual int OnExit(); +}; + +DECLARE_APP(MyApp) + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/include/porori.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/include/porori.h Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,50 @@ +/* Filename : porori.h + Last Change: 2020-02-12 水 15:55:27. + by Takayuki Mutoh +*/ + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class PororiFrame : public wxFrame +{ + private: + enum { + ID_PROCESS = 1000 + }; + + protected: + wxDatePickerCtrl* m_datePickerFrom; + wxStaticText* m_staticText; + wxDatePickerCtrl* m_datePickerTo; + wxButton* m_button; + + wxString m_json = wxT("porori.json"); + wxString m_icon = wxT("sample"); + + // Virtual event handlers, overide them in your derived class + virtual void OnClick(wxCommandEvent& event); + + public: + PororiFrame(wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Porori"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL); + ~PororiFrame(); + +}; + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/make.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/make.bat Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,22 @@ +@echo off + +rem -------------------------- +rem Config (make porori.json) +rem -------------------------- +porori.exe + +rem -------------------------- +rem Get Data (recent) +rem -------------------------- +set ACCESS="C:\Program Files\Microsoft Office\Office14\MSACCESS.EXE" +set MDB=C:\Users\KAIGO\Desktop\Porori\export.mdb +set CSV=C:\Users\KAIGO\Documents\nintei.csv + +%ACCESS% %MDB% /nostartup /x data + +rem -------------------------- +rem Do Filter +rem -------------------------- +porori_go.exe %CSV% > a.csv +start a.csv + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/nintei.csv --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/nintei.csv Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,709 @@ +0800285976 ,山田 太郎001,20191009,02,20200110,20191201,20221130 +0800118522 ,山田 太郎002,20191010,01,20200110,20191010,20201031 +0800469686 ,山田 太郎003,20191015,01,20200117,20191015,20201031 +0200075994 ,山田 太郎004,20191101,02,20200110,20200101,20221231 +0100125005 ,山田 太郎005,20191105,02,20200110,20200101,20221231 +0800159237 ,山田 太郎006,20191105,10,20200110,20191105,20201130 +0800403448 ,山田 太郎007,20191105,02,20200110,20200101,20221231 +0800151228 ,山田 太郎008,20191106,02,20200110,20200101,20221231 +0800185700 ,山田 太郎009,20191106,01,20200110,20191106,20201130 +0100063689 ,山田 太郎010,20191107,02,20200110,20200101,20221231 +0200018893 ,山田 太郎011,20191107,02,20200110,20200101,20211231 +0300139353 ,山田 太郎012,20191108,02,20200124,20200101,20211231 +0800116627 ,山田 太郎013,20191112,01,20200117,20191112,20201130 +0800343542 ,山田 太郎014,20191112,01,20200110,20191112,20201130 +0100082730 ,山田 太郎015,20191113,10,20200110,20191113,20201130 +0100122537 ,山田 太郎016,20191113,02,20200110,20200101,20221231 +0800408539 ,山田 太郎017,20191113,02,20200131,20200101,20221231 +0200026535 ,山田 太郎018,20191114,05,20200110,20191114,20201130 +0200094557 ,山田 太郎019,20191114,01,20200117,20191114,20201130 +0300143253 ,山田 太郎020,20191114,05,20200117,20191114,20201130 +0300145256 ,山田 太郎021,20191114,01,20200124,20191114,20201130 +0800056780 ,山田 太郎022,20191114,01,20200110,, +0800360668 ,山田 太郎023,20191114,01,20200110,20191114,20201130 +0800438454 ,山田 太郎024,20191114,01,20200117,20191114,20201130 +0100007789 ,山田 太郎025,20191115,01,20200110,20191115,20201130 +0300048889 ,山田 太郎026,20191115,02,20200110,20200101,20221231 +0300133967 ,山田 太郎027,20191115,01,20200117,20191115,20201130 +0800167833 ,山田 太郎028,20191115,01,20200110,20191115,20201130 +0800288134 ,山田 太郎029,20191115,01,20200117,20191115,20201130 +0100042703 ,山田 太郎030,20191118,05,20200110,20191118,20201130 +0100048779 ,山田 太郎031,20191118,01,20200110,20191118,20201130 +0300100430 ,山田 太郎032,20191118,01,20200117,20191118,20201130 +0300112064 ,山田 太郎033,20191118,10,20200110,20191118,20201130 +0800031885 ,山田 太郎034,20191118,02,20200117,20200101,20201231 +0800206030 ,山田 太郎035,20191118,02,20200110,20200101,20221231 +0300058558 ,山田 太郎036,20191119,01,20200131,20191119,20201130 +0800154863 ,山田 太郎037,20191119,01,20200117,20191119,20201130 +0800127807 ,山田 太郎038,20191120,01,20200110,20191120,20201130 +0300041159 ,山田 太郎039,20191121,10,20200124,20191121,20201130 +0800226988 ,山田 太郎040,20191121,05,20200110,20191121,20201130 +0100120879 ,山田 太郎041,20191122,01,20200110,20191122,20201130 +0300002595 ,山田 太郎042,20191122,01,20200117,20191122,20201130 +0800116082 ,山田 太郎043,20191122,01,20200110,20191122,20201130 +0800144990 ,山田 太郎044,20191122,01,20200110,, +0800176107 ,山田 太郎045,20191122,01,20200110,20191122,20201130 +0200022920 ,山田 太郎046,20191125,01,20200117,20191125,20201130 +0200078136 ,山田 太郎047,20191125,01,20200117,20191125,20201130 +0300022979 ,山田 太郎048,20191125,01,20200110,20191125,20201130 +0300073816 ,山田 太郎049,20191125,02,20200110,20200101,20221231 +0300111963 ,山田 太郎050,20191125,01,20200124,20191125,20201130 +0800116490 ,山田 太郎051,20191125,01,20200117,20191125,20201130 +0800133688 ,山田 太郎052,20191125,01,20200110,20191125,20201130 +0800077214 ,山田 太郎053,20191126,01,20200110,20191126,20201130 +0800261716 ,山田 太郎054,20191126,01,20200110,20191126,20201130 +0800290449 ,山田 太郎055,20191126,05,20200117,20191126,20201130 +0800302137 ,山田 太郎056,20191126,02,20200110,20200101,20221231 +0100003732 ,山田 太郎057,20191127,05,20200110,20191127,20201130 +0200073096 ,山田 太郎058,20191127,01,20200110,20191127,20201130 +0300099866 ,山田 太郎059,20191127,01,20200117,20191127,20201130 +0300137245 ,山田 太郎060,20191127,01,20200117,20191127,20201130 +0800287847 ,山田 太郎061,20191127,01,20200117,20191127,20201130 +0800355419 ,山田 太郎062,20191127,01,20200117,20191127,20201130 +0300090753 ,山田 太郎063,20191128,01,20200117,20191128,20201130 +0300091733 ,山田 太郎064,20191128,01,20200110,20191128,20201130 +0300102034 ,山田 太郎065,20191128,01,20200124,20191128,20201130 +0300123759 ,山田 太郎066,20191128,01,20200117,20191128,20201130 +0800095204 ,山田 太郎067,20191128,01,20200110,20191128,20201130 +0100014912 ,山田 太郎068,20191129,02,20200110,20200101,20221231 +0300049966 ,山田 太郎069,20191129,02,20200117,20191201,20221130 +0800018021 ,山田 太郎070,20191129,05,20200117,20191129,20201130 +0800056462 ,山田 太郎071,20191129,01,20200110,20191129,20201130 +0800122112 ,山田 太郎072,20191129,01,20200110,20191129,20201130 +0800221358 ,山田 太郎073,20191129,02,20200117,20200101,20201231 +0800458803 ,山田 太郎074,20191129,01,20200117,20191129,20201130 +0800490049 ,山田 太郎075,20191129,01,20200110,20191129,20201130 +0100011000 ,山田 太郎076,20191201,05,20200110,20191201,20201130 +0100017466 ,山田 太郎077,20191201,10,20200110,20191201,20201130 +0100028719 ,山田 太郎078,20191201,10,20200110,20191201,20201130 +0100062275 ,山田 太郎079,20191201,05,20200110,20191201,20201130 +0100115557 ,山田 太郎080,20191201,10,20200110,20191201,20201130 +0200045807 ,山田 太郎081,20191201,10,20200110,20191201,20201130 +0200090373 ,山田 太郎082,20191201,10,20200124,20191201,20201130 +0200100301 ,山田 太郎083,20191201,10,20200124,20191201,20201130 +0300028829 ,山田 太郎084,20191201,05,20200131,20191201,20201130 +0300069258 ,山田 太郎085,20191201,10,20200131,20191201,20201130 +0300069746 ,山田 太郎086,20191201,05,20200110,20191201,20201130 +0300112412 ,山田 太郎087,20191201,05,20200117,20191201,20201130 +0300116426 ,山田 太郎088,20191201,05,20200117,20191201,20201130 +0800007259 ,山田 太郎089,20191201,01,20200110,20191201,20201130 +0800018013 ,山田 太郎090,20191201,05,20200110,20191201,20201130 +0800028256 ,山田 太郎091,20191201,10,20200110,20191201,20201130 +0800053765 ,山田 太郎092,20191201,05,20200110,20191201,20201130 +0800055571 ,山田 太郎093,20191201,05,20200110,20191201,20201130 +0800059755 ,山田 太郎094,20191201,05,20200110,20191201,20201130 +0800068398 ,山田 太郎095,20191201,05,20200110,20191201,20201130 +0800077176 ,山田 太郎096,20191201,05,20200110,20191201,20201130 +0800080754 ,山田 太郎097,20191201,10,20200110,20191201,20201130 +0800091110 ,山田 太郎098,20191201,05,20200117,20191201,20201130 +0800100380 ,山田 太郎99,20191201,10,20200110,20191201,20201130 +0800102863 ,山田 太郎100,20191201,05,20200110,20191201,20201130 +0800108551 ,山田 太郎101,20191201,10,20200110,20191201,20201130 +0800131405 ,山田 太郎102,20191201,10,20200117,20191201,20201130 +0800135125 ,山田 太郎103,20191201,10,20200110,20191201,20201130 +0800135249 ,山田 太郎104,20191201,10,20200110,20191201,20201130 +0800136466 ,山田 太郎105,20191201,05,20200110,20191201,20201130 +0800137110 ,山田 太郎106,20191201,05,20200110,20191201,20201130 +0800190517 ,山田 太郎107,20191201,05,20200117,20191201,20201130 +0800231027 ,山田 太郎108,20191201,05,20200131,20191201,20201130 +0800233593 ,山田 太郎109,20191201,10,20200110,20191201,20201130 +0800265100 ,山田 太郎110,20191201,05,20200110,20191201,20201130 +0800348757 ,山田 太郎111,20191201,01,20200110,20191201,20201130 +0800361761 ,山田 太郎112,20191201,01,20200131,20191201,20201130 +0800401208 ,山田 太郎113,20191201,01,20200117,20191201,20201130 +0800427720 ,山田 太郎114,20191201,10,20200117,20191201,20201130 +0800458692 ,山田 太郎115,20191201,05,20200117,20191201,20201130 +0100003708 ,山田 太郎116,20191202,05,20200110,20191202,20201231 +0100023806 ,山田 太郎117,20191202,05,20200124,20191202,20201231 +0100040859 ,山田 太郎118,20191202,01,20200110,20191202,20201231 +0100053101 ,山田 太郎119,20191202,01,20200110,20191202,20201231 +0100058766 ,山田 太郎120,20191202,05,20200117,20191202,20201231 +0100059118 ,山田 太郎121,20191202,05,20200110,20191202,20201231 +0100091569 ,山田 太郎122,20191202,02,20200110,20200201,20230131 +0100092603 ,山田 太郎123,20191202,01,20200110,20191202,20201231 +0100092883 ,山田 太郎124,20191202,02,20200110,20200201,20230131 +0100113228 ,山田 太郎125,20191202,01,20200110,20191202,20201231 +0200018699 ,山田 太郎126,20191202,02,20200124,20200201,20230131 +0200020057 ,山田 太郎127,20191202,01,20200110,20191202,20201231 +0200051238 ,山田 太郎128,20191202,02,20200110,20200101,20221231 +0200064224 ,山田 太郎129,20191202,01,20200110,20191202,20201231 +0200084993 ,山田 太郎130,20191202,02,20200124,20200201,20230131 +0200096169 ,山田 太郎131,20191202,02,20200110,20200201,20230131 +0300005381 ,山田 太郎132,20191202,02,20200117,20200201,20230131 +0300005420 ,山田 太郎133,20191202,02,20200124,20200201,20230131 +0300008020 ,山田 太郎134,20191202,02,20200124,20200201,20230131 +0300017568 ,山田 太郎135,20191202,02,20200117,20200201,20230131 +0300021832 ,山田 太郎136,20191202,02,20200117,20200201,20230131 +0300031455 ,山田 太郎137,20191202,02,20200124,20200201,20230131 +0300032648 ,山田 太郎138,20191202,02,20200117,20200201,20230131 +0300043003 ,山田 太郎139,20191202,02,20200117,20200201,20230131 +0300121438 ,山田 太郎140,20191202,02,20200117,20200201,20230131 +0300121691 ,山田 太郎141,20191202,02,20200117,20200201,20230131 +0800012651 ,山田 太郎142,20191202,02,20200110,20200201,20230131 +0800013275 ,山田 太郎143,20191202,02,20200110,20200201,20230131 +0800016592 ,山田 太郎144,20191202,02,20200117,20200201,20230131 +0800034086 ,山田 太郎145,20191202,02,20200110,20200201,20230131 +0800065240 ,山田 太郎146,20191202,02,20200117,20200201,20230131 +0800107148 ,山田 太郎147,20191202,01,20200110,20191202,20201231 +0800109981 ,山田 太郎148,20191202,02,20200110,20200201,20210131 +0800115574 ,山田 太郎149,20191202,01,20200110,20191202,20201231 +0800128552 ,山田 太郎150,20191202,01,20200117,20191202,20201231 +0800137012 ,山田 太郎151,20191202,02,20200117,20200201,20230131 +0800140684 ,山田 太郎152,20191202,02,20200117,20200201,20210131 +0800142253 ,山田 太郎153,20191202,02,20200124,20200201,20230131 +0800146089 ,山田 太郎154,20191202,02,20200110,20200201,20230131 +0800156270 ,山田 太郎155,20191202,02,20200124,20200201,20230131 +0800162920 ,山田 太郎156,20191202,01,20200131,20191202,20201231 +0800189705 ,山田 太郎157,20191202,05,20200117,20191202,20201231 +0800191068 ,山田 太郎158,20191202,01,20200110,20191202,20201231 +0800197694 ,山田 太郎159,20191202,02,20200110,20200201,20230131 +0800202850 ,山田 太郎160,20191202,02,20200110,20200201,20230131 +0800215935 ,山田 太郎161,20191202,02,20200110,20200201,20230131 +0800229650 ,山田 太郎162,20191202,01,20200110,20191202,20201231 +0800229898 ,山田 太郎163,20191202,05,20200110,20191202,20201231 +0800233801 ,山田 太郎164,20191202,02,20200110,20200201,20230131 +0800257743 ,山田 太郎165,20191202,01,20200110,20191202,20201231 +0800271495 ,山田 太郎166,20191202,02,20200110,20200201,20230131 +0800277167 ,山田 太郎167,20191202,02,20200117,20200201,20230131 +0800318122 ,山田 太郎168,20191202,01,20200110,20191202,20201231 +0800328179 ,山田 太郎169,20191202,01,20200131,, +0800368944 ,山田 太郎170,20191202,02,20200110,20200201,20230131 +0800370434 ,山田 太郎171,20191202,02,20200110,20200201,20230131 +0800400643 ,山田 太郎172,20191202,02,20200110,20200201,20230131 +0100012073 ,山田 太郎173,20191203,02,20200131,20200201,20230131 +0200001176 ,山田 太郎174,20191203,01,20200110,20191203,20200630 +0200005171 ,山田 太郎175,20191203,02,20200110,20200201,20230131 +0200023820 ,山田 太郎176,20191203,05,20200117,20191203,20201231 +0200029151 ,山田 太郎177,20191203,02,20200124,20200201,20230131 +0200053281 ,山田 太郎178,20191203,10,20200117,20191203,20201231 +0200063880 ,山田 太郎179,20191203,02,20200124,20200201,20230131 +0200067134 ,山田 太郎180,20191203,02,20200124,20200201,20220131 +0200091736 ,山田 太郎181,20191203,02,20200110,20200201,20230131 +0200091833 ,山田 太郎182,20191203,02,20200110,20200201,20230131 +0200098919 ,山田 太郎183,20191203,02,20200124,20200201,20230131 +0200099877 ,山田 太郎184,20191203,02,20200124,20200201,20230131 +0200100000 ,山田 太郎185,20191203,02,20200110,20200201,20230131 +0200101979 ,山田 太郎186,20191203,02,20200110,20200201,20230131 +0200102088 ,山田 太郎187,20191203,01,20200117,20191203,20201231 +0300007368 ,山田 太郎188,20191203,05,20200110,20191203,20201231 +0300044492 ,山田 太郎189,20191203,02,20200124,20200201,20230131 +0300096484 ,山田 太郎190,20191203,05,20200131,20191203,20201231 +0300097103 ,山田 太郎191,20191203,02,20200124,20200201,20230131 +0300100066 ,山田 太郎192,20191203,02,20200131,20200201,20230131 +0300101682 ,山田 太郎193,20191203,02,20200124,20200201,20230131 +0300113745 ,山田 太郎194,20191203,02,20200124,20200201,20230131 +0300120296 ,山田 太郎195,20191203,02,20200117,20200201,20230131 +0300133673 ,山田 太郎196,20191203,02,20200117,20200101,20201231 +0300135250 ,山田 太郎197,20191203,02,20200124,20200201,20230131 +0300148395 ,山田 太郎198,20191203,02,20200124,20200201,20230131 +0800003415 ,山田 太郎199,20191203,01,20200110,20191203,20201231 +0800046831 ,山田 太郎200,20191203,02,20200110,20200201,20230131 +0800057663 ,山田 太郎201,20191203,02,20200124,20200201,20230131 +0800110726 ,山田 太郎202,20191203,01,20200110,20191203,20201231 +0800131111 ,山田 太郎203,20191203,02,20200110,20200201,20230131 +0800138744 ,山田 太郎204,20191203,02,20200131,20200201,20230131 +0800185483 ,山田 太郎205,20191203,01,20200117,20191203,20201231 +0800195276 ,山田 太郎206,20191203,02,20200131,20200201,20230131 +0800207916 ,山田 太郎207,20191203,02,20200110,20200101,20221231 +0800391520 ,山田 太郎208,20191203,02,20200110,20200201,20230131 +0100000873 ,山田 太郎209,20191204,02,20200117,20200201,20230131 +0100006197 ,山田 太郎210,20191204,02,20200110,20200201,20230131 +0100014416 ,山田 太郎211,20191204,02,20200117,20200201,20230131 +0100027313 ,山田 太郎212,20191204,02,20200124,20200201,20230131 +0100027658 ,山田 太郎213,20191204,02,20200117,20200201,20210131 +0100031370 ,山田 太郎214,20191204,02,20200117,20200201,20210131 +0100042339 ,山田 太郎215,20191204,02,20200124,20200201,20230131 +0100044102 ,山田 太郎216,20191204,02,20200124,20200201,20230131 +0100052512 ,山田 太郎217,20191204,10,20200110,20191204,20201231 +0100060671 ,山田 太郎218,20191204,05,20200110,20191204,20201231 +0100066980 ,山田 太郎219,20191204,02,20200117,20200201,20230131 +0100068443 ,山田 太郎220,20191204,02,20200117,20200201,20230131 +0100073714 ,山田 太郎221,20191204,02,20200110,20200201,20230131 +0100077310 ,山田 太郎222,20191204,02,20200117,20200201,20230131 +0100087952 ,山田 太郎223,20191204,02,20200124,20200201,20230131 +0100092190 ,山田 太郎224,20191204,01,20200110,20191204,20201231 +0100092212 ,山田 太郎225,20191204,01,20200110,20191204,20201231 +0100096153 ,山田 太郎226,20191204,02,20200124,20200201,20230131 +0100101416 ,山田 太郎227,20191204,02,20200124,20200201,20230131 +0100104920 ,山田 太郎228,20191204,01,20200117,20191204,20201231 +0100109816 ,山田 太郎229,20191204,02,20200124,20200201,20230131 +0100111152 ,山田 太郎230,20191204,02,20200131,20200201,20230131 +0100111470 ,山田 太郎231,20191204,02,20200124,20200201,20230131 +0100117037 ,山田 太郎232,20191204,02,20200124,20200201,20230131 +0100121603 ,山田 太郎233,20191204,02,20200124,20200201,20230131 +0100124041 ,山田 太郎234,20191204,02,20200124,20200201,20230131 +0100124211 ,山田 太郎235,20191204,01,20200110,20191204,20201231 +0100127024 ,山田 太郎236,20191204,01,20200110,20191204,20201231 +0200006020 ,山田 太郎237,20191204,02,20200117,20200201,20230131 +0200020235 ,山田 太郎238,20191204,02,20200117,20200201,20230131 +0200026420 ,山田 太郎239,20191204,10,20200110,20191204,20201231 +0200032683 ,山田 太郎240,20191204,02,20200110,20200201,20230131 +0200045483 ,山田 太郎241,20191204,02,20200124,20200201,20230131 +0200052013 ,山田 太郎242,20191204,02,20200124,20200201,20230131 +0200065697 ,山田 太郎243,20191204,02,20200124,20200201,20230131 +0200066537 ,山田 太郎244,20191204,01,20200110,20191204,20201231 +0200087100 ,山田 太郎245,20191204,02,20200124,20200201,20230131 +0200093151 ,山田 太郎246,20191204,02,20200117,20200201,20230131 +0200099320 ,山田 太郎247,20191204,02,20200124,20200201,20230131 +0200100085 ,山田 太郎248,20191204,02,20200124,20200201,20230131 +0200100476 ,山田 太郎249,20191204,02,20200124,20200201,20230131 +0200102177 ,山田 太郎250,20191204,02,20200110,20200201,20220131 +0200104463 ,山田 太郎251,20191204,02,20200110,20200201,20230131 +0200106121 ,山田 太郎252,20191204,02,20200124,20200201,20230131 +0300001211 ,山田 太郎253,20191204,02,20200117,20200201,20230131 +0300002870 ,山田 太郎254,20191204,05,20200131,20191204,20200630 +0300009638 ,山田 太郎255,20191204,02,20200124,20200201,20230131 +0300023134 ,山田 太郎256,20191204,02,20200131,20200201,20230131 +0300029264 ,山田 太郎257,20191204,02,20200131,20200201,20230131 +0300036848 ,山田 太郎258,20191204,02,20200131,20200201,20230131 +0300038859 ,山田 太郎259,20191204,02,20200131,20200201,20230131 +0300043461 ,山田 太郎260,20191204,02,20200131,20200201,20230131 +0300050310 ,山田 太郎261,20191204,02,20200124,20200201,20230131 +0300054838 ,山田 太郎262,20191204,02,20200131,20200201,20230131 +0300062520 ,山田 太郎263,20191204,02,20200124,20200201,20230131 +0300070779 ,山田 太郎264,20191204,02,20200110,20200201,20230131 +0300074510 ,山田 太郎265,20191204,01,20200117,20191204,20201231 +0300074910 ,山田 太郎266,20191204,02,20200110,20200201,20230131 +0300075177 ,山田 太郎267,20191204,02,20200117,20200201,20230131 +0300077994 ,山田 太郎268,20191204,02,20200110,20200201,20230131 +0300078915 ,山田 太郎269,20191204,02,20200117,20200201,20230131 +0300079768 ,山田 太郎270,20191204,02,20200110,20200201,20230131 +0300081010 ,山田 太郎271,20191204,02,20200124,20200201,20230131 +0300082726 ,山田 太郎272,20191204,02,20200117,20200201,20210131 +0300088902 ,山田 太郎273,20191204,02,20200110,20200201,20230131 +0300089771 ,山田 太郎274,20191204,02,20200124,20200201,20230131 +0300096115 ,山田 太郎275,20191204,02,20200124,20200201,20230131 +0300099580 ,山田 太郎276,20191204,02,20200124,20200201,20230131 +0300107680 ,山田 太郎277,20191204,02,20200131,20200201,20230131 +0300111300 ,山田 太郎278,20191204,02,20200117,20200201,20230131 +0300115314 ,山田 太郎279,20191204,05,20200117,20191204,20201231 +0300128726 ,山田 太郎280,20191204,02,20200131,20200201,20230131 +0300130860 ,山田 太郎281,20191204,02,20200117,20200201,20230131 +0300146112 ,山田 太郎282,20191204,02,20200117,20200201,20230131 +0800010977 ,山田 太郎283,20191204,02,20200117,20200201,20230131 +0800015650 ,山田 太郎284,20191204,02,20200117,20200201,20230131 +0800027160 ,山田 太郎285,20191204,02,20200117,20200201,20230131 +0800042283 ,山田 太郎286,20191204,02,20200117,20200201,20230131 +0800048737 ,山田 太郎287,20191204,02,20200110,20200201,20230131 +0800066107 ,山田 太郎288,20191204,02,20200117,20200201,20230131 +0800070228 ,山田 太郎289,20191204,02,20200117,20200201,20210131 +0800073898 ,山田 太郎290,20191204,02,20200117,20200201,20230131 +0800080118 ,山田 太郎291,20191204,02,20200117,20200201,20230131 +0800084571 ,山田 太郎292,20191204,02,20200110,20200201,20230131 +0800087112 ,山田 太郎293,20191204,02,20200117,20200201,20230131 +0800088534 ,山田 太郎294,20191204,02,20200124,20200201,20230131 +0800092744 ,山田 太郎295,20191204,02,20200110,20200201,20230131 +0800094968 ,山田 太郎296,20191204,02,20200124,20200201,20230131 +0800095727 ,山田 太郎297,20191204,01,20200117,20191204,20201231 +0800101930 ,山田 太郎298,20191204,02,20200124,20200201,20230131 +0800102421 ,山田 太郎299,20191204,02,20200117,20200101,20221231 +0800102774 ,山田 太郎300,20191204,01,20200110,20191204,20201231 +0800115302 ,山田 太郎301,20191204,02,20200124,20200201,20230131 +0800116074 ,山田 太郎302,20191204,02,20200117,20200201,20230131 +0800137551 ,山田 太郎303,20191204,02,20200124,20200201,20230131 +0800149371 ,山田 太郎304,20191204,02,20200124,20200201,20230131 +0800159881 ,山田 太郎305,20191204,02,20200117,20200201,20230131 +0800161444 ,山田 太郎306,20191204,02,20200124,20200201,20230131 +0800169178 ,山田 太郎307,20191204,02,20200124,20200201,20220131 +0800174040 ,山田 太郎308,20191204,02,20200110,20200201,20230131 +0800185300 ,山田 太郎309,20191204,02,20200124,20200201,20230131 +0800186153 ,山田 太郎310,20191204,02,20200124,20200201,20230131 +0800186994 ,山田 太郎311,20191204,02,20200124,20200201,20220131 +0800196132 ,山田 太郎312,20191204,02,20200131,20200201,20230131 +0800207975 ,山田 太郎313,20191204,02,20200110,20200201,20230131 +0800210232 ,山田 太郎314,20191204,02,20200131,20200201,20230131 +0800228530 ,山田 太郎315,20191204,02,20200124,20200201,20230131 +0800234409 ,山田 太郎316,20191204,02,20200110,20200201,20210131 +0800242622 ,山田 太郎317,20191204,02,20200117,20200201,20230131 +0800251389 ,山田 太郎318,20191204,02,20200110,20200201,20220131 +0800251583 ,山田 太郎319,20191204,02,20200117,20200201,20220131 +0800252474 ,山田 太郎320,20191204,02,20200124,20200201,20210131 +0800277159 ,山田 太郎321,20191204,02,20200117,20200201,20220131 +0800328659 ,山田 太郎322,20191204,02,20200124,20200201,20230131 +0800357373 ,山田 太郎323,20191204,02,20200131,20200201,20230131 +0800372623 ,山田 太郎324,20191204,02,20200117,20200201,20230131 +0800401666 ,山田 太郎325,20191204,02,20200117,20200201,20220131 +0800406005 ,山田 太郎326,20191204,01,20200117,20191204,20201231 +0800416647 ,山田 太郎327,20191204,01,20200110,20191204,20201231 +0800420024 ,山田 太郎328,20191204,02,20200117,20200201,20230131 +0800432928 ,山田 太郎329,20191204,01,20200110,20191204,20201231 +0800434777 ,山田 太郎330,20191204,02,20200124,20200201,20230131 +0800482330 ,山田 太郎331,20191204,02,20200110,20200201,20230131 +0100001250 ,山田 太郎332,20191205,02,20200124,20200201,20230131 +0100002175 ,山田 太郎333,20191205,02,20200124,20200201,20230131 +0100002868 ,山田 太郎334,20191205,02,20200117,20200201,20220131 +0100008823 ,山田 太郎335,20191205,02,20200124,20200201,20230131 +0100013657 ,山田 太郎336,20191205,02,20200124,20200201,20230131 +0100016931 ,山田 太郎337,20191205,02,20200124,20200201,20230131 +0100020610 ,山田 太郎338,20191205,02,20200124,20200201,20230131 +0100022630 ,山田 太郎339,20191205,02,20200124,20200201,20230131 +0100034182 ,山田 太郎340,20191205,02,20200124,20200201,20230131 +0100043726 ,山田 太郎341,20191205,02,20200124,20200201,20230131 +0100058677 ,山田 太郎342,20191205,02,20200131,20200201,20230131 +0100063328 ,山田 太郎343,20191205,02,20200124,20200201,20230131 +0100076497 ,山田 太郎344,20191205,02,20200110,20200201,20230131 +0100084139 ,山田 太郎345,20191205,02,20200131,20200201,20230131 +0100088223 ,山田 太郎346,20191205,02,20200117,20200201,20230131 +0100111195 ,山田 太郎347,20191205,02,20200124,20200201,20230131 +0100116251 ,山田 太郎348,20191205,02,20200124,20200201,20230131 +0100122944 ,山田 太郎349,20191205,02,20200124,20200201,20230131 +0100123673 ,山田 太郎350,20191205,02,20200124,20200201,20230131 +0200005457 ,山田 太郎351,20191205,02,20200124,20200201,20220131 +0200013166 ,山田 太郎352,20191205,02,20200124,20200201,20230131 +0200013662 ,山田 太郎353,20191205,02,20200124,20200201,20230131 +0200016815 ,山田 太郎354,20191205,02,20200124,20200201,20230131 +0200043570 ,山田 太郎355,20191205,02,20200124,20200201,20230131 +0200068939 ,山田 太郎356,20191205,02,20200117,20200201,20230131 +0200072839 ,山田 太郎357,20191205,02,20200117,20200201,20230131 +0200076273 ,山田 太郎358,20191205,02,20200124,20200201,20230131 +0200082893 ,山田 太郎359,20191205,02,20200124,20200201,20230131 +0200087470 ,山田 太郎360,20191205,02,20200124,20200201,20210131 +0200090195 ,山田 太郎361,20191205,02,20200117,20200201,20230131 +0300002102 ,山田 太郎362,20191205,02,20200124,20200201,20230131 +0300007139 ,山田 太郎363,20191205,02,20200131,20200201,20210131 +0300023053 ,山田 太郎364,20191205,02,20200131,20200201,20230131 +0300045626 ,山田 太郎365,20191205,02,20200131,20200201,20230131 +0300047432 ,山田 太郎366,20191205,02,20200124,20200201,20230131 +0300049672 ,山田 太郎367,20191205,02,20200124,20200201,20230131 +0300052584 ,山田 太郎368,20191205,02,20200131,20200201,20230131 +0300064264 ,山田 太郎369,20191205,02,20200117,20200201,20230131 +0300067409 ,山田 太郎370,20191205,02,20200131,20200201,20230131 +0300078877 ,山田 太郎371,20191205,02,20200117,20200201,20230131 +0300098630 ,山田 太郎372,20191205,02,20200131,20200201,20230131 +0300112510 ,山田 太郎373,20191205,02,20200124,20200201,20230131 +0300113575 ,山田 太郎374,20191205,02,20200124,20200201,20230131 +0300124305 ,山田 太郎375,20191205,02,20200131,20200201,20230131 +0300125697 ,山田 太郎376,20191205,02,20200124,20200201,20230131 +0300125875 ,山田 太郎377,20191205,02,20200124,20200201,20230131 +0300128378 ,山田 太郎378,20191205,02,20200131,20200101,20221231 +0300132227 ,山田 太郎379,20191205,02,20200124,20200201,20230131 +0300133320 ,山田 太郎380,20191205,02,20200131,20200201,20230131 +0300141722 ,山田 太郎381,20191205,02,20200124,20200201,20230131 +0300147623 ,山田 太郎382,20191205,02,20200124,20200201,20230131 +0300148166 ,山田 太郎383,20191205,02,20200124,20200201,20230131 +0800008131 ,山田 太郎384,20191205,02,20200117,20200201,20220131 +0800018323 ,山田 太郎385,20191205,02,20200117,20200201,20230131 +0800057051 ,山田 太郎386,20191205,02,20200124,20200201,20230131 +0800066450 ,山田 太郎387,20191205,02,20200117,20200201,20230131 +0800070457 ,山田 太郎388,20191205,02,20200124,20200201,20220131 +0800079969 ,山田 太郎389,20191205,02,20200117,20200201,20230131 +0800083737 ,山田 太郎390,20191205,05,20200117,20191205,20201231 +0800085802 ,山田 太郎391,20191205,02,20200131,20200201,20230131 +0800092752 ,山田 太郎392,20191205,02,20200124,20200201,20230131 +0800093635 ,山田 太郎393,20191205,02,20200117,20200201,20230131 +0800098122 ,山田 太郎394,20191205,02,20200131,20200201,20230131 +0800112869 ,山田 太郎395,20191205,02,20200131,20200201,20230131 +0800115086 ,山田 太郎396,20191205,02,20200124,20200201,20230131 +0800120608 ,山田 太郎397,20191205,02,20200131,20200201,20230131 +0800129940 ,山田 太郎398,20191205,02,20200117,20200201,20230131 +0800152178 ,山田 太郎399,20191205,02,20200131,20200201,20230131 +0800155649 ,山田 太郎400,20191205,02,20200124,20200201,20230131 +0800160790 ,山田 太郎401,20191205,01,20200131,20191205,20201231 +0800166934 ,山田 太郎402,20191205,02,20200124,20200201,20230131 +0800167000 ,山田 太郎403,20191205,02,20200124,20200201,20230131 +0800169836 ,山田 太郎404,20191205,02,20200131,20200201,20230131 +0800172365 ,山田 太郎405,20191205,05,20200117,20191205,20201231 +0800190436 ,山田 太郎406,20191205,02,20200124,20200201,20230131 +0800202523 ,山田 太郎407,20191205,02,20200124,20200201,20230131 +0800214564 ,山田 太郎408,20191205,02,20200131,20200101,20221231 +0800250188 ,山田 太郎409,20191205,02,20200124,20200201,20230131 +0800252083 ,山田 太郎410,20191205,02,20200124,20200201,20230131 +0800255660 ,山田 太郎411,20191205,02,20200124,20200201,20230131 +0800267994 ,山田 太郎412,20191205,02,20200124,20200201,20230131 +0800349443 ,山田 太郎413,20191205,02,20200124,20200201,20230131 +0800393876 ,山田 太郎414,20191205,02,20200117,20200201,20220131 +0800438438 ,山田 太郎415,20191205,01,20200110,20191205,20201231 +0800493641 ,山田 太郎416,20191205,09,20200124,20191205,20200630 +0100024160 ,山田 太郎417,20191206,01,20200117,20191206,20201231 +0100038196 ,山田 太郎418,20191206,02,20200124,20200201,20230131 +0100042762 ,山田 太郎419,20191206,02,20200124,20200201,20230131 +0100059592 ,山田 太郎420,20191206,02,20200124,20200201,20230131 +0100060817 ,山田 太郎421,20191206,02,20200131,20200201,20230131 +0100061830 ,山田 太郎422,20191206,02,20200117,20200201,20230131 +0100079780 ,山田 太郎423,20191206,01,20200110,20191206,20201231 +0100083027 ,山田 太郎424,20191206,02,20200124,20200201,20230131 +0100084171 ,山田 太郎425,20191206,02,20200124,20200201,20220131 +0100098687 ,山田 太郎426,20191206,02,20200131,20200201,20230131 +0100108321 ,山田 太郎427,20191206,02,20200124,20200201,20230131 +0100110180 ,山田 太郎428,20191206,02,20200124,20200201,20230131 +0100111870 ,山田 太郎429,20191206,02,20200124,20200201,20230131 +0100114887 ,山田 太郎430,20191206,02,20200131,20200201,20230131 +0100120933 ,山田 太郎431,20191206,02,20200124,20200201,20230131 +0100123959 ,山田 太郎432,20191206,02,20200131,20200201,20230131 +0200003829 ,山田 太郎433,20191206,02,20200117,20200201,20230131 +0200008782 ,山田 太郎434,20191206,02,20200131,20200201,20230131 +0200009410 ,山田 太郎435,20191206,02,20200124,20200201,20220131 +0200016963 ,山田 太郎436,20191206,02,20200124,20200201,20230131 +0200030346 ,山田 太郎437,20191206,02,20200124,20200201,20230131 +0200039343 ,山田 太郎438,20191206,02,20200124,20200201,20230131 +0200070364 ,山田 太郎439,20191206,01,20200110,20191206,20201231 +0200072170 ,山田 太郎440,20191206,02,20200124,20200201,20220131 +0200082800 ,山田 太郎441,20191206,05,20200110,20191206,20201231 +0200082834 ,山田 太郎442,20191206,02,20200124,20200201,20230131 +0200083024 ,山田 太郎443,20191206,02,20200124,20200201,20230131 +0200085086 ,山田 太郎444,20191206,02,20200117,20200201,20230131 +0200106288 ,山田 太郎445,20191206,02,20200124,20200201,20230131 +0300001238 ,山田 太郎446,20191206,02,20200124,20200201,20200731 +0300005209 ,山田 太郎447,20191206,02,20200131,20200201,20230131 +0300028470 ,山田 太郎448,20191206,02,20200131,20200201,20230131 +0300037496 ,山田 太郎449,20191206,02,20200124,20200201,20230131 +0300037585 ,山田 太郎450,20191206,02,20200124,20200201,20220131 +0300047610 ,山田 太郎451,20191206,02,20200124,20200201,20230131 +0300047874 ,山田 太郎452,20191206,02,20200131,20200201,20230131 +0300074430 ,山田 太郎453,20191206,02,20200131,20200201,20230131 +0300075355 ,山田 太郎454,20191206,02,20200124,20200201,20230131 +0300084753 ,山田 太郎455,20191206,02,20200124,20200201,20230131 +0300098894 ,山田 太郎456,20191206,05,20200117,20191206,20201231 +0300129374 ,山田 太郎457,20191206,02,20200131,20200201,20230131 +0300140785 ,山田 太郎458,20191206,02,20200124,20200201,20230131 +0300144217 ,山田 太郎459,20191206,02,20200131,20200201,20230131 +0800004365 ,山田 太郎460,20191206,02,20200124,20200201,20230131 +0800005345 ,山田 太郎461,20191206,02,20200117,20200201,20210131 +0800011949 ,山田 太郎462,20191206,02,20200124,20200201,20230131 +0800015502 ,山田 太郎463,20191206,02,20200124,20200201,20230131 +0800017327 ,山田 太郎464,20191206,02,20200124,20200201,20230131 +0800023939 ,山田 太郎465,20191206,02,20200124,20200201,20230131 +0800026580 ,山田 太郎466,20191206,02,20200131,20200201,20230131 +0800027225 ,山田 太郎467,20191206,02,20200131,20200201,20230131 +0800029120 ,山田 太郎468,20191206,02,20200117,20200201,20230131 +0800035724 ,山田 太郎469,20191206,02,20200131,20200201,20230131 +0800042666 ,山田 太郎470,20191206,02,20200124,20200201,20230131 +0800043433 ,山田 太郎471,20191206,02,20200124,20200201,20230131 +0800056578 ,山田 太郎472,20191206,01,20200117,20191206,20201231 +0800078962 ,山田 太郎473,20191206,02,20200131,20200201,20230131 +0800079276 ,山田 太郎474,20191206,02,20200124,20200201,20230131 +0800082684 ,山田 太郎475,20191206,02,20200124,20200201,20230131 +0800084768 ,山田 太郎476,20191206,01,20200110,20191206,20200630 +0800093007 ,山田 太郎477,20191206,02,20200131,20200201,20230131 +0800096596 ,山田 太郎478,20191206,02,20200124,20200201,20230131 +0800101697 ,山田 太郎479,20191206,02,20200124,20200201,20230131 +0800126908 ,山田 太郎480,20191206,02,20200131,20200201,20230131 +0800140307 ,山田 太郎481,20191206,02,20200124,20200201,20210131 +0800148383 ,山田 太郎482,20191206,02,20200124,20200201,20220131 +0800154456 ,山田 太郎483,20191206,02,20200124,20200201,20230131 +0800157072 ,山田 太郎484,20191206,02,20200131,20200201,20230131 +0800168031 ,山田 太郎485,20191206,02,20200124,20200201,20230131 +0800173930 ,山田 太郎486,20191206,02,20200124,20200201,20220131 +0800174821 ,山田 太郎487,20191206,02,20200131,20200201,20230131 +0800203317 ,山田 太郎488,20191206,01,20200110,20191206,20201231 +0800208122 ,山田 太郎489,20191206,02,20200117,20200201,20230131 +0800213428 ,山田 太郎490,20191206,02,20200131,20200201,20230131 +0800218233 ,山田 太郎491,20191206,02,20200131,20200201,20230131 +0800225124 ,山田 太郎492,20191206,02,20200110,20200201,20230131 +0800236088 ,山田 太郎493,20191206,02,20200124,20200201,20230131 +0800240824 ,山田 太郎494,20191206,02,20200124,20200201,20230131 +0800244196 ,山田 太郎495,20191206,02,20200124,20200201,20230131 +0800309700 ,山田 太郎496,20191206,02,20200117,20200201,20220131 +0800333520 ,山田 太郎497,20191206,02,20200110,20200201,20220131 +0800413273 ,山田 太郎498,20191206,01,20200110,20191206,20201231 +0800459770 ,山田 太郎499,20191206,02,20200124,20200201,20230131 +0800468191 ,山田 太郎500,20191206,02,20200124,20200201,20230131 +0800491940 ,山田 太郎501,20191206,01,20200110,20191206,20201231 +0300065473 ,山田 太郎502,20191207,02,20200124,20200201,20220131 +0800082501 ,山田 太郎503,20191207,02,20200124,20200201,20220131 +0100008033 ,山田 太郎504,20191209,02,20200124,20200201,20230131 +0100010399 ,山田 太郎505,20191209,01,20200110,20191209,20201231 +0100028972 ,山田 太郎506,20191209,02,20200124,20200201,20230131 +0100029324 ,山田 太郎507,20191209,02,20200117,20200201,20230131 +0100032937 ,山田 太郎508,20191209,05,20200117,20191209,20201231 +0100039940 ,山田 太郎509,20191209,02,20200124,20200201,20230131 +0100044382 ,山田 太郎510,20191209,02,20200124,20200201,20230131 +0100047250 ,山田 太郎511,20191209,02,20200124,20200201,20230131 +0100048078 ,山田 太郎512,20191209,02,20200124,20200201,20230131 +0100050250 ,山田 太郎513,20191209,02,20200131,20200201,20230131 +0100053934 ,山田 太郎514,20191209,01,20200124,20191209,20201231 +0100069890 ,山田 太郎515,20191209,02,20200117,20200201,20230131 +0100077159 ,山田 太郎516,20191209,02,20200124,20200201,20230131 +0100090848 ,山田 太郎517,20191209,01,20200117,20191209,20201231 +0100093685 ,山田 太郎518,20191209,02,20200131,20200201,20230131 +0100106221 ,山田 太郎519,20191209,02,20200124,20200201,20230131 +0200022076 ,山田 太郎520,20191209,02,20200124,20200201,20220131 +0200030915 ,山田 太郎521,20191209,02,20200131,20200201,20230131 +0200049241 ,山田 太郎522,20191209,02,20200117,20200201,20230131 +0200057503 ,山田 太郎523,20191209,02,20200124,20200201,20230131 +0200066111 ,山田 太郎524,20191209,02,20200124,20200201,20230131 +0200066944 ,山田 太郎525,20191209,02,20200124,20200201,20220131 +0200077059 ,山田 太郎526,20191209,02,20200117,20200201,20230131 +0200093453 ,山田 太郎527,20191209,02,20200124,20200201,20230131 +0200101642 ,山田 太郎528,20191209,02,20200124,20200201,20230131 +0300000444 ,山田 太郎529,20191209,02,20200131,20200201,20230131 +0300018610 ,山田 太郎530,20191209,02,20200124,20200201,20220131 +0300044867 ,山田 太郎531,20191209,02,20200131,20200201,20230131 +0300045340 ,山田 太郎532,20191209,01,20200124,20191209,20201231 +0300063322 ,山田 太郎533,20191209,01,20200117,20191209,20201231 +0300106587 ,山田 太郎534,20191209,02,20200124,20200201,20220131 +0300117481 ,山田 太郎535,20191209,02,20200124,20200201,20210131 +0800017190 ,山田 太郎536,20191209,01,20200117,20191209,20201231 +0800023319 ,山田 太郎537,20191209,02,20200124,20200201,20210131 +0800025940 ,山田 太郎538,20191209,10,20200117,20191209,20201231 +0800029414 ,山田 太郎539,20191209,02,20200131,20200201,20230131 +0800080061 ,山田 太郎540,20191209,01,20200131,20191209,20201231 +0800080959 ,山田 太郎541,20191209,02,20200124,20200201,20220131 +0800085764 ,山田 太郎542,20191209,05,20200117,20191209,20201231 +0800095042 ,山田 太郎543,20191209,01,20200117,20191209,20201231 +0800100658 ,山田 太郎544,20191209,02,20200131,20200201,20230131 +0800111099 ,山田 太郎545,20191209,05,20200110,20191209,20201231 +0800113407 ,山田 太郎546,20191209,01,20200117,20191209,20201231 +0800114233 ,山田 太郎547,20191209,02,20200124,20200201,20230131 +0800116430 ,山田 太郎548,20191209,02,20200131,20200201,20230131 +0800134331 ,山田 太郎549,20191209,02,20200131,20200201,20230131 +0800156084 ,山田 太郎550,20191209,01,20200124,20191209,20201231 +0800159784 ,山田 太郎551,20191209,01,20200124,20191209,20201231 +0800178096 ,山田 太郎552,20191209,02,20200124,20200201,20230131 +0800186617 ,山田 太郎553,20191209,02,20200124,20200201,20230131 +0800244790 ,山田 太郎554,20191209,02,20200131,20200201,20230131 +0800244811 ,山田 太郎555,20191209,02,20200124,20200201,20230131 +0800264855 ,山田 太郎556,20191209,02,20200117,20200101,20211231 +0800384338 ,山田 太郎557,20191209,02,20200131,20200201,20230131 +0800398886 ,山田 太郎558,20191209,02,20200124,20200201,20220131 +0800466156 ,山田 太郎559,20191209,02,20200131,20200201,20230131 +0800484197 ,山田 太郎560,20191209,02,20200131,20200201,20210131 +0100000407 ,山田 太郎561,20191210,01,20200117,20191210,20201231 +0100036797 ,山田 太郎562,20191210,05,20200124,20191210,20201231 +0100054310 ,山田 太郎563,20191210,02,20200131,20200201,20230131 +0100120569 ,山田 太郎564,20191210,02,20200124,20200201,20210131 +0100120585 ,山田 太郎565,20191210,02,20200131,20200201,20230131 +0200024028 ,山田 太郎566,20191210,02,20200131,20200201,20230131 +0200031660 ,山田 太郎567,20191210,02,20200124,20200201,20230131 +0200066022 ,山田 太郎568,20191210,01,20200124,20191210,20201231 +0200101715 ,山田 太郎569,20191210,02,20200131,20200201,20230131 +0300052215 ,山田 太郎570,20191210,02,20200131,20200201,20230131 +0300059724 ,山田 太郎571,20191210,01,20200117,20191210,20201231 +0300080391 ,山田 太郎572,20191210,05,20200131,20191210,20201231 +0300120920 ,山田 太郎573,20191210,02,20200131,20200201,20230131 +0300133703 ,山田 太郎574,20191210,02,20200131,20200201,20230131 +0300141820 ,山田 太郎575,20191210,02,20200131,20200201,20230131 +0800002192 ,山田 太郎576,20191210,02,20200131,20200201,20230131 +0800077265 ,山田 太郎577,20191210,02,20200124,20200201,20230131 +0800080193 ,山田 太郎578,20191210,02,20200131,20200201,20230131 +0800088305 ,山田 太郎579,20191210,05,20200131,20191210,20201231 +0800097967 ,山田 太郎580,20191210,02,20200124,20200201,20230131 +0800112010 ,山田 太郎581,20191210,02,20200131,20200201,20220131 +0800119901 ,山田 太郎582,20191210,02,20200131,20200201,20230131 +0800141427 ,山田 太郎583,20191210,01,20200131,20191210,20200630 +0800161070 ,山田 太郎584,20191210,02,20200131,20200201,20220131 +0800175674 ,山田 太郎585,20191210,02,20200124,20200201,20230131 +0800291534 ,山田 太郎586,20191210,02,20200131,20200201,20230131 +0800307066 ,山田 太郎587,20191210,02,20200131,20200201,20230131 +0800358019 ,山田 太郎588,20191210,02,20200124,20200201,20230131 +0800358868 ,山田 太郎589,20191210,01,20200117,20191210,20201231 +0800361184 ,山田 太郎590,20191210,01,20200117,20191210,20201231 +0800410096 ,山田 太郎591,20191210,02,20200131,20200201,20230131 +0800420040 ,山田 太郎592,20191210,02,20200131,20200201,20220131 +0100058502 ,山田 太郎593,20191211,02,20200131,20200201,20220131 +0300003850 ,山田 太郎594,20191211,01,20200131,20191211,20201231 +0300022685 ,山田 太郎595,20191211,02,20200131,20200201,20230131 +0300141129 ,山田 太郎596,20191211,05,20200131,20191211,20201231 +0800001480 ,山田 太郎597,20191211,02,20200131,20200201,20230131 +0800093805 ,山田 太郎598,20191211,02,20200131,20200201,20220131 +0800107474 ,山田 太郎599,20191211,02,20200131,20200201,20230131 +0800155223 ,山田 太郎600,20191211,01,20200117,20191211,20201231 +0800155240 ,山田 太郎601,20191211,02,20200131,20200201,20230131 +0800224489 ,山田 太郎602,20191211,02,20200117,20200101,20221231 +0800230128 ,山田 太郎603,20191211,01,20200131,20191211,20201231 +0800365082 ,山田 太郎604,20191211,01,20200117,20191211,20201231 +0800384087 ,山田 太郎605,20191211,01,20200117,20191211,20201231 +0800420032 ,山田 太郎606,20191211,02,20200131,20200201,20230131 +0800435315 ,山田 太郎607,20191211,01,20200117,20191211,20201231 +0100026406 ,山田 太郎608,20191212,02,20200131,20200201,20230131 +0100065266 ,山田 太郎609,20191212,05,20200117,20191212,20201231 +0100075040 ,山田 太郎610,20191212,01,20200117,20191212,20201231 +0100090201 ,山田 太郎611,20191212,01,20200117,20191212,20201231 +0800020360 ,山田 太郎612,20191212,02,20200131,20200201,20230131 +0800100313 ,山田 太郎613,20191212,02,20200131,20200201,20220131 +0800110076 ,山田 太郎614,20191212,02,20200131,20200201,20230131 +0800114098 ,山田 太郎615,20191212,02,20200131,20200201,20230131 +0800123666 ,山田 太郎616,20191212,01,20200117,20191212,20201231 +0800125367 ,山田 太郎617,20191212,05,20200131,20191212,20201231 +0800142130 ,山田 太郎618,20191212,01,20200117,20191212,20201231 +0800164575 ,山田 太郎619,20191212,02,20200131,20200201,20230131 +0800343577 ,山田 太郎620,20191212,02,20200131,20200201,20230131 +0100004682 ,山田 太郎621,20191213,02,20200131,20200201,20230131 +0100072521 ,山田 太郎622,20191213,02,20200131,20200201,20230131 +0100078686 ,山田 太郎623,20191213,01,20200117,20191213,20201231 +0300070540 ,山田 太郎624,20191213,02,20200131,20200201,20220131 +0800012317 ,山田 太郎625,20191213,01,20200117,20191213,20201231 +0800012465 ,山田 太郎626,20191213,02,20200131,20200201,20230131 +0800029287 ,山田 太郎627,20191213,02,20200131,20200201,20230131 +0800042771 ,山田 太郎628,20191213,02,20200131,20200201,20230131 +0800049636 ,山田 太郎629,20191213,02,20200131,20200201,20220131 +0800064058 ,山田 太郎630,20191213,02,20200131,20200201,20220131 +0800064724 ,山田 太郎631,20191213,02,20200131,20200201,20230131 +0800090156 ,山田 太郎632,20191213,10,20200131,20191213,20200630 +0800111986 ,山田 太郎633,20191213,01,20200131,20191213,20201231 +0800125812 ,山田 太郎634,20191213,02,20200131,20200201,20230131 +0800140218 ,山田 太郎635,20191213,02,20200131,20200201,20220131 +0800170338 ,山田 太郎636,20191213,02,20200131,20200201,20220131 +0800100623 ,山田 太郎637,20191215,02,20200131,20200201,20220131 +0100030730 ,山田 太郎638,20191216,10,20200117,20191216,20201231 +0100055759 ,山田 太郎639,20191216,02,20200131,20200201,20230131 +0100116057 ,山田 太郎640,20191216,01,20200117,20191216,20201231 +0200032535 ,山田 太郎641,20191216,02,20200131,20200201,20220131 +0200071220 ,山田 太郎642,20191216,01,20200131,20191216,20201231 +0300044140 ,山田 太郎643,20191216,02,20200131,20200201,20230131 +0300071600 ,山田 太郎644,20191216,01,20200131,, +0300071619 ,山田 太郎645,20191216,01,20200131,20191216,20201231 +0300105971 ,山田 太郎646,20191216,01,20200131,20191216,20201231 +0300119026 ,山田 太郎647,20191216,02,20200131,20200201,20230131 +0800058961 ,山田 太郎648,20191216,02,20200131,20200201,20220131 +0800059020 ,山田 太郎649,20191216,10,20200117,20191216,20201231 +0800104971 ,山田 太郎650,20191216,01,20200131,20191216,20200630 +0800106001 ,山田 太郎651,20191216,02,20200131,20200101,20221231 +0800124808 ,山田 太郎652,20191216,05,20200131,20191216,20200630 +0800198518 ,山田 太郎653,20191216,10,20200131,20191216,20201231 +0800415152 ,山田 太郎654,20191216,01,20200117,20191216,20201231 +0100050226 ,山田 太郎655,20191217,02,20200131,20200201,20230131 +0100050838 ,山田 太郎656,20191217,01,20200131,20191217,20201231 +0100109301 ,山田 太郎657,20191217,02,20200131,20200201,20220131 +0200009452 ,山田 太郎658,20191217,01,20200131,20191217,20201231 +0200045530 ,山田 太郎659,20191217,01,20200117,20191217,20201231 +0200059042 ,山田 太郎660,20191217,10,20200131,20191217,20201231 +0200088263 ,山田 太郎661,20191217,05,20200131,20191217,20201231 +0200094972 ,山田 太郎662,20191217,01,20200131,20191217,20201231 +0200097734 ,山田 太郎663,20191217,10,20200131,20191217,20201231 +0300141870 ,山田 太郎664,20191217,02,20200131,20200201,20220131 +0800003318 ,山田 太郎665,20191217,10,20200131,20191217,20201231 +0800075718 ,山田 太郎666,20191217,02,20200131,20200201,20230131 +0800101522 ,山田 太郎667,20191217,10,20200117,20191217,20201231 +0800139228 ,山田 太郎668,20191217,10,20200131,20191217,20201231 +0800404207 ,山田 太郎669,20191217,01,20200131,20191217,20201231 +0800491975 ,山田 太郎670,20191217,01,20200131,20191217,20201231 +0200041054 ,山田 太郎671,20191218,01,20200131,20191218,20201231 +0200044070 ,山田 太郎672,20191218,01,20200131,20191218,20201231 +0300037836 ,山田 太郎673,20191218,02,20200131,20200201,20230131 +0300125859 ,山田 太郎674,20191218,02,20200131,20200201,20230131 +0300143911 ,山田 太郎675,20191218,01,20200131,20191218,20201231 +0800012724 ,山田 太郎676,20191218,01,20200131,20191218,20201231 +0800060605 ,山田 太郎677,20191218,02,20200131,20200201,20230131 +0800102545 ,山田 太郎678,20191218,05,20200131,20191218,20201231 +0800117500 ,山田 太郎679,20191218,01,20200131,20191218,20201231 +0100031493 ,山田 太郎680,20191219,02,20200131,20200201,20230131 +0100101157 ,山田 太郎681,20191219,02,20200131,20200201,20230131 +0200028732 ,山田 太郎682,20191219,01,20200131,20191219,20201231 +0300029370 ,山田 太郎683,20191219,01,20200131,20191219,20201231 +0300042651 ,山田 太郎684,20191219,01,20200131,20191219,20201231 +0300058132 ,山田 太郎685,20191219,05,20200131,20191219,20201231 +0300068510 ,山田 太郎686,20191219,01,20200131,20191219,20201231 +0300098312 ,山田 太郎687,20191219,05,20200131,20191219,20201231 +0800091187 ,山田 太郎688,20191219,01,20200131,20191219,20201231 +0800137411 ,山田 太郎689,20191219,02,20200131,20200201,20230131 +0800167922 ,山田 太郎690,20191219,02,20200131,20200201,20220131 +0800338883 ,山田 太郎691,20191219,02,20200131,20200201,20230131 +0800491983 ,山田 太郎692,20191219,01,20200131,20191219,20201231 +0100004860 ,山田 太郎693,20191220,02,20200131,20200201,20220131 +0100014378 ,山田 太郎694,20191220,01,20200131,20191220,20201231 +0200099192 ,山田 太郎695,20191220,01,20200131,20191220,20201231 +0300051650 ,山田 太郎696,20191220,05,20200131,20191220,20201231 +0300132448 ,山田 太郎697,20191220,05,20200131,20191220,20201231 +0300143458 ,山田 太郎698,20191220,01,20200131,20191220,20201231 +0800007348 ,山田 太郎699,20191220,10,20200131,20191220,20201231 +0800116090 ,山田 太郎700,20191220,02,20200131,20200201,20220131 +0800224942 ,山田 太郎701,20191220,01,20200131,20191220,20201231 +0800371554 ,山田 太郎702,20191220,05,20200131,20191220,20201231 +0800410495 ,山田 太郎703,20191220,02,20200131,20200201,20220131 +0100074842 ,山田 太郎704,20191223,01,20200131,20191223,20201231 +0800057833 ,山田 太郎705,20191223,10,20200131,20191223,20201231 +0800073162 ,山田 太郎706,20191223,01,20200131,20191223,20201231 +0100118670 ,山田 太郎707,20191224,02,20200131,20200201,20230131 +0100127474 ,山田 太郎708,20191225,02,20200131,20200201,20230131 +0800493609 ,山田 太郎709,20200106,03,20200115,20200106,20210131 diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/porori.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/porori.json Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,1 @@ +{"From":"20200113","To":"20200117"} diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/src/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/src/main.cpp Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,34 @@ +// Filename : main.cpp +// Last Change: 2020-02-12 水 08:38:12. +// +#include "main.h" +#include "porori.h" + +IMPLEMENT_APP(MyApp) + +IMPLEMENT_CLASS( MyApp, wxApp ) + +MyApp::MyApp() +{ +} +MyApp::~MyApp() +{ +} + +bool MyApp::OnInit() +{ + if ( !wxApp::OnInit() ) return false; + + long style = wxDEFAULT_FRAME_STYLE; + style = style & ~(wxMAXIMIZE_BOX); + PororiFrame *mainframe = new PororiFrame(NULL, wxID_ANY, wxT("Porori"), wxDefaultPosition, wxSize(340,80), style); + mainframe->Show(true); + + return true; +} + +int MyApp::OnExit() +{ + return 0; +} + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/src/porori.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/src/porori.cpp Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,65 @@ +/* Filename : porori.cpp + Last Change: 2020-02-12 豌エ 15:53:15. + by Takayuki Mutoh +*/ +#include "porori.h" +#include "sample.xpm" + +PororiFrame::PororiFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) + : wxFrame(parent, id, title, pos, size, style) +{ + this->SetIcon(wxIcon(m_icon)); + this->SetSizeHints(wxDefaultSize, wxDefaultSize); + this->SetBackgroundColour(wxColour(110, 200, 100)); + + wxBoxSizer* bSizerTop = new wxBoxSizer(wxHORIZONTAL); + + m_datePickerFrom = new wxDatePickerCtrl(this, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DROPDOWN|wxDP_SHOWCENTURY); + bSizerTop->Add(m_datePickerFrom, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); + + m_staticText = new wxStaticText(this, wxID_ANY, wxT("ス"), wxDefaultPosition, wxDefaultSize, 0); + bSizerTop->Add(m_staticText, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5); + + m_datePickerTo = new wxDatePickerCtrl(this, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DROPDOWN|wxDP_SHOWCENTURY); + bSizerTop->Add(m_datePickerTo, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); + + m_button = new wxButton( this, ID_PROCESS, wxT("螳溯。"), wxDefaultPosition, wxDefaultSize, 0); + bSizerTop->Add(m_button, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5); + + this->SetSizer(bSizerTop); + this->Layout(); + + this->Centre(wxBOTH); + + // Initiaize + for (wxDateTime t = m_datePickerFrom->GetValue(); ; t -= wxTimeSpan::Day()) { + if (t.GetWeekDay() == 1){ + m_datePickerFrom->SetValue(t); + break; + } + } + + // Connect Events + m_button->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PororiFrame::OnClick), NULL, this); +} + +PororiFrame::~PororiFrame() +{ + // Disconnect Events + m_button->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PororiFrame::OnClick), NULL, this); +} + +void PororiFrame::OnClick(wxCommandEvent& WXUNUSED(event)) +{ + wxTextFile file(m_json); + if (file.Create() || file.Open()) { + file.Clear(); + wxDateTime from = m_datePickerFrom->GetValue(); + wxDateTime to = m_datePickerTo->GetValue(); + wxString json = wxString::Format(wxT("{\"From\":\"%s\",\"To\":\"%s\"}"), from.Format(wxT("%Y%m%d")), to.Format(wxT("%Y%m%d"))); + file.AddLine(json); + file.Write(); + } + this->Close(); +} + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/src2/porori.go --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/src2/porori.go Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,154 @@ +package main + +import ( + "encoding/csv" + "encoding/json" + "fmt" + "io/ioutil" + "log" + "os" + "sort" + "strings" + "time" + + "golang.org/x/text/encoding/japanese" + "golang.org/x/text/transform" +) + +const jsonfile = "porori.json" + +type Sinsei struct { + No string + Name string + Ymd string + Kbn string + Ccn string + Bgn string + End string + Term string +} + +func (s Sinsei) String() string { + return strings.Join([]string{s.No, s.Name, s.Ymd, s.Kbn, s.Bgn, s.End, s.Term, s.Ccn}, ",") +} + +func (s Sinsei) TransDate (ymd string) (time.Time, string) { + zero := time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC) + if !strings.HasPrefix(ymd, "20") { + return zero, "" // it's dummy + } + t, _ := time.Parse("20060102", ymd) + return t, t.Format(" 2006-01-02") +} + +func (s Sinsei) CountMonth(bgn, end time.Time) int { + if bgn.IsZero() { + return 0 + } + + m := (end.Year() * 12 + int(end.Month())) - (bgn.Year() * 12 + int(bgn.Month())) + if bgn.Day() == 1 { + m++ + } + return m +} + +func (s *Sinsei) ChangeExpression() { + s.No = "=\"" + strings.TrimSpace(s.No) + "\"" + + switch s.Kbn { + case "01": + s.Kbn = "譁ー隕" + case "02": + s.Kbn = "譖エ譁ー" + case "10": + s.Kbn = "謾ッ莉" + case "05": + s.Kbn = "蛹コ螟" + case "03": + s.Kbn = "霆「蜈・" + case "09": + s.Kbn = "險シ莠、" + } + s.Kbn, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), s.Kbn) + + var bgn, end time.Time + _, s.Ymd = s.TransDate(s.Ymd) + _, s.Ccn = s.TransDate(s.Ccn) + bgn, s.Bgn = s.TransDate(s.Bgn) + end, s.End = s.TransDate(s.End) + + s.Term = fmt.Sprintf("%d", s.CountMonth(bgn, end)) +} + +func main() { + + if len(os.Args) != 2 { + fmt.Fprint(os.Stderr, "bat input.") + os.Exit(1) + } + + // Filter Setting + type YF struct { + From string + To string + } + var yf YF + + content, err := ioutil.ReadFile(jsonfile) + if err != nil { + log.Fatal(err) + } + if err := json.Unmarshal(content, &yf); err != nil { + log.Fatal(err) + } + + // Read CSV + content, err = ioutil.ReadFile(os.Args[1]) + if err != nil { + log.Fatal(err) + } + + r := csv.NewReader(strings.NewReader(string(content))) + + records, err := r.ReadAll() + if err != nil { + log.Fatal(err) + } + + // Main Proccess + var sinsei []Sinsei + + for _, record := range records { + if record[4] < yf.From || record[4] > yf.To { + continue + } + + ss := Sinsei{ + No: record[0], + Name: record[1], + Ymd: record[2], + Kbn: record[3], + Ccn: record[4], + Bgn: record[5], + End: record[6], + } + ss.ChangeExpression() + + sinsei = append(sinsei, ss) + } + + sort.Slice(sinsei, func(i, j int) bool { + return sinsei[i].Ymd < sinsei[j].Ymd + }) + + // Output + header := strings.Join([]string{"陲ォ菫晉分", "豌丞錐", "逕ウ隲区律", "蛹コ蛻", "髢句ァ区律", "邨ゆコ譌・", "譛滄俣", "蟇ゥ譟サ莨"}, ",") + header, _, _ = transform.String(japanese.ShiftJIS.NewEncoder(), header) + fmt.Println(header) + + for _, s := range sinsei { + fmt.Println(s) + } +} + diff -r c6df3bae683e -r 34a474fb83c3 src/kaigo/Porori/src2/porori.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/kaigo/Porori/src2/porori.pl Wed Mar 04 23:46:59 2020 +0900 @@ -0,0 +1,22 @@ +use Time::Piece; +use Time::Seconds; + +my $today = localtime->ymd; +$today =~ s/-//g; + +print join ',' => "被保番", "氏名", "申請日", "区分", "開始日", "終了日", "期間", "\n"; +while (<>) { + chomp; + my ($h, $n, $s, $kbn, $d, $bgn, $end) = split /,/; + next if $d ne $today; + $kbn = "新規" if $kbn eq '01'; + $kbn = "更新" if $kbn eq '02'; + $kbn = "支介" if $kbn eq '10'; + $kbn = "区変" if $kbn eq '05'; + my $tbgn = Time::Piece->strptime($bgn, "%Y%m%d"); + my $tend = Time::Piece->strptime($end, "%Y%m%d"); + my $diff = $tend - $tbgn; + print join ',' => $h, $n, $s, $kbn, $bgn, $end, int $diff->months(); + print "\n"; +} +