diff src/myframe.cpp @ 13:3e045b68738a

Finish EazyPrint implement.
author pyon@macmini
date Fri, 01 Jul 2011 19:54:15 +0900
parents 9452ed888d10
children b67c74848dd0
line wrap: on
line diff
--- a/src/myframe.cpp	Sun Jun 26 13:43:46 2011 +0900
+++ b/src/myframe.cpp	Fri Jul 01 19:54:15 2011 +0900
@@ -1,5 +1,5 @@
 // Filename   : mainframe.cpp
-// Last Change: 24-Jun-2011.
+// Last Change: 01-Jul-2011.
 //
 #include "wx/html/htmprint.h"
 #include "wx/print.h"
@@ -165,7 +165,7 @@
 
 	wxRegEx reHhs(wxT("^0[1238][0-9]{8}$"));	// 1:被保番チェック
 	wxRegEx reCno(wxT("^[0-9]{1,2}$"));         // 2:開くフォルダの番号
-	wxRegEx rePrint(wxT("^\\.[0-9]*$"));         // 3:印刷するフォルダの番号
+	wxRegEx rePrint(wxT("^\\+$"));              // 3:印刷するフォルダの番号
 
 	wxString cmd;
 	cmd = this->GetLineText(0);
@@ -287,6 +287,7 @@
             htmlbody += wxT("</table>");
             htmlbody += wxT("<br />");
             htmlbody += wxT("<div>");
+            htmlbody += wxT("テンキーの「+」ボタンで番号1の画像を印刷できます.<br />");
             htmlbody += wxT("フォルダを開くには,番号を入力してください.<br />");
             htmlbody += wxT("他の被保険者を検索するには,被保番を入力してください.");
             htmlbody += wxT("</div>");
@@ -382,26 +383,45 @@
 // functions
 void MyCmdBox::PrintImages( wxString& path )
 {
-    wxHtmlPrintout* hpout = new wxHtmlPrintout( wxT("Searcher2") );
-    hpout->SetMargins( 0,0,0,0,0 );
-    wxPrintDialogData* pd;
-    wxPrinter* p = new wxPrinter( pd );
+    wxHtmlPrintout hpout( wxT("Searcher2") );
+    hpout.SetMargins( 0,0,0,0,0 );
+    wxPrintDialogData pd;
+    wxPrinter p( &pd );
 
     wxDir dir(path);
     wxString file;
     if ( !dir.IsOpened() ) return;
 
     bool cout = dir.GetFirst( &file, wxT("*.jpg"), wxDIR_FILES );
+    bool mask_flg = true;
+    wxRect cmname( wxPoint(156,224), wxSize(1204,122) );
+    wxRect cmno( wxPoint(856,1024), wxSize(1060,598) );
     while ( cout ) {
         file = path + wxFILE_SEP_PATH + file;
         file.Replace( wxT("\\"), wxT("/") );
         wxString html;
-        html = html + wxT("<html><body>");
-        html = html + wxT("<img src=\"") + file + wxT("\" width=\"750\" height=\"1060\"/>");
-        html = html + wxT("</body></html>");
         
-        hpout->SetHtmlText( html, wxEmptyString, false );
-        p->Print( NULL, hpout, false );
+        if ( mask_flg ) {       // 1枚目はマスクする
+            wxImage img_org( file, wxBITMAP_TYPE_JPEG );
+            img_org.SetRGB( cmname, 255, 255, 255 );
+            img_org.SetRGB( cmno,   255, 255, 255 );
+            img_org.SaveFile( wxT("tmp/tmp.jpg") );
+
+            html = html + wxT("<html><body>");
+            html = html + wxT("<img src=\"tmp/tmp.jpg\" width=\"750\" height=\"1060\"/>");
+            html = html + wxT("</body></html>");
+            hpout.SetHtmlText( html, wxEmptyString, false );
+            p.Print( NULL, &hpout, true );
+            pd = p.GetPrintDialogData();
+            mask_flg = false;
+        }
+        else {
+            html = html + wxT("<html><body>");
+            html = html + wxT("<img src=\"") + file + wxT("\" width=\"750\" height=\"1060\"/>");
+            html = html + wxT("</body></html>");
+            hpout.SetHtmlText( html, wxEmptyString, false );
+            p.Print( NULL, &hpout, false );
+        }
         cout = dir.GetNext( &file );
     }
     return;
@@ -617,6 +637,7 @@
 
     if ( f == NULL ) {
         HtmlHelpFrame *helpframe = new HtmlHelpFrame( wxT("Online Help"), ID_HELP ); 
+        helpframe->SetSize(600,600);
         helpframe->Show(true);
     }
     else {