From 1a1c8e71fcd14858f595029f089b2d4a00202b32 Mon Sep 17 00:00:00 2001
From: ogi <Administrator@S-OGI-PC>
Date: Fri, 05 Dec 2025 09:24:16 +0900
Subject: [PATCH] プロジェクトファイルを追加。

---
 HotelPms.SourceFactory/FormEdge.cs |  190 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 190 insertions(+), 0 deletions(-)

diff --git a/HotelPms.SourceFactory/FormEdge.cs b/HotelPms.SourceFactory/FormEdge.cs
new file mode 100644
index 0000000..296a0c0
--- /dev/null
+++ b/HotelPms.SourceFactory/FormEdge.cs
@@ -0,0 +1,190 @@
+using ClosedXML.Excel;
+using HotelPms.Share.Windows.Util;
+using Microsoft.Web.WebView2.Core;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Security.Policy;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace HotelPms.SourceFactory
+{
+    public partial class FormEdge : FormBase
+    {
+        public FormEdge()
+        {
+            InitializeComponent();
+            //webView21.Source = new Uri("https://www.google.co.jp");
+            webView21.CoreWebView2InitializationCompleted += new System.EventHandler<Microsoft.Web.WebView2.Core.CoreWebView2InitializationCompletedEventArgs>(webView21_CoreWebView2InitializationCompleted);
+        }
+
+        private string ConvertExcelToHtml(string filePath)
+        {
+            var sb = new StringBuilder();
+            sb.AppendLine("<html><head><meta charset='UTF-8'><style>table, th, td { border: 1px solid black; border-collapse: collapse; padding: 4px; }</style></head><body>");
+
+            using var workbook = new XLWorkbook(filePath);
+            var worksheet = workbook.Worksheet(1);
+            var range = worksheet.RangeUsed();
+
+            sb.AppendLine("<table>");
+            foreach (var row in range.Rows())
+            {
+                sb.AppendLine("<tr>");
+                foreach (var cell in row.Cells())
+                {
+                    sb.Append("<td>").Append(cell.GetValue<string>()).Append("</td>");
+                }
+                sb.AppendLine("</tr>");
+            }
+            sb.AppendLine("</table></body></html>");
+            return sb.ToString();
+        }
+
+
+        private void button1_Click(object sender, EventArgs e)
+        {
+            if (webView21 != null && webView21.CoreWebView2 != null)
+            {
+                //string html = ConvertExcelToHtml(@"D:\Pms\HotelPms\HotelPms.SourceFactory\PivotTables.xlsx");
+                //string tempPath = Path.Combine(Path.GetTempPath(), "excel_preview.html");
+                //File.WriteAllText(tempPath, html, Encoding.UTF8);
+                //webView21.Source = new Uri(tempPath);
+
+                var bytes = File.ReadAllBytes(@"D:\Pms\HotelPms\HotelPms.SourceFactory\PivotTables.xlsx");
+                var base64 = Convert.ToBase64String(bytes);
+                webView21.CoreWebView2.ExecuteScriptAsync($"loadExcelFromBase64('{base64}')");
+                //webView21.CoreWebView2.Navigate(textBox1.Text);
+            }
+        }
+
+        private string GenerateSheetJSTemplate()
+        {
+            return @"<!DOCTYPE html>
+<html>
+<head>
+    <meta charset='UTF-8'>
+    <script src='https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js'></script>
+</head>
+<body>
+    <h2>Excel Preview (SheetJS)</h2>
+    <select id='sheetSelector' onchange='renderSheet()'></select>
+    <div id='excelContent'></div>
+
+    <script>
+        let workbook = null;
+
+        function loadExcelFromBase64(base64) {
+            const binary = atob(base64);
+            const len = binary.length;
+            const bytes = new Uint8Array(len);
+            for (let i = 0; i < len; i++) {
+                bytes[i] = binary.charCodeAt(i);
+            }
+            workbook = XLSX.read(bytes, { type: 'array' });
+
+            const selector = document.getElementById('sheetSelector');
+            selector.innerHTML = '';
+            workbook.SheetNames.forEach(name => {
+                const opt = document.createElement('option');
+                opt.value = name;
+                opt.text = name;
+                selector.appendChild(opt);
+            });
+            renderSheet();
+        }
+
+        function renderSheet() {
+            const name = document.getElementById('sheetSelector').value;
+            const ws = workbook.Sheets[name];
+            const html = XLSX.utils.sheet_to_html(ws);
+            document.getElementById('excelContent').innerHTML = html;
+        }
+    </script>
+</body>
+</html>";
+        }
+
+        //private bool bInitialized = false;
+
+        private void webView21_CoreWebView2InitializationCompleted(object sender, Microsoft.Web.WebView2.Core.CoreWebView2InitializationCompletedEventArgs e)
+        {
+            //bInitialized = true;
+            webView21.CoreWebView2.NavigationCompleted += webView21_NavigationCompleted;
+            webView21.CoreWebView2.AddWebResourceRequestedFilter("*", Microsoft.Web.WebView2.Core.CoreWebView2WebResourceContext.All);
+            webView21.CoreWebView2.WebResourceRequested += webView21_WebResourceRequested;
+            webView21.CoreWebView2.WebResourceResponseReceived += webView21_WebResourceResponseReceived;
+
+            string html = GenerateSheetJSTemplate();
+            string templatePath = Path.Combine(Path.GetTempPath(), "excel_viewer_sheetjs.html");
+            File.WriteAllText(templatePath, html);
+            webView21.Source = new Uri(templatePath);
+        }
+
+        private void webView21_NavigationCompleted(object sender, Microsoft.Web.WebView2.Core.CoreWebView2NavigationCompletedEventArgs e)
+        {
+            System.Diagnostics.Debug.Print("NavigationCompleted");
+        }
+        private void webView21_WebResourceRequested(object sender, Microsoft.Web.WebView2.Core.CoreWebView2WebResourceRequestedEventArgs e)
+        {
+            System.Diagnostics.Debug.Print("WebResourceRequested");
+            System.Diagnostics.Debug.Print(e.Request.Uri);
+            // Add other Debug.Print...
+        }
+        private void webView21_WebResourceResponseReceived(object sender, Microsoft.Web.WebView2.Core.CoreWebView2WebResourceResponseReceivedEventArgs e)
+        {
+            System.Diagnostics.Debug.Print("WebResourceResponseReceived");
+            // Add other Debug.Print...
+        }
+
+
+        private async void FormEdge_Load(object sender, EventArgs e)
+        {
+            LoadingObj.ShowWaiting();
+            await webView21.EnsureCoreWebView2Async();
+            await webView21.CoreWebView2.Profile.ClearBrowsingDataAsync();
+            //webView21.CoreWebView2.Navigate("http://comtab.jp");
+            LoadingObj.CloseWaiting();
+        }
+
+        private string url = string.Empty;  
+
+        private void button2_Click(object sender, EventArgs e)
+        {
+            if (openFileDialog1.ShowDialog() != DialogResult.OK) { return; }
+            url = openFileDialog1.FileName;
+
+            LoadingObj.ShowWaiting();
+            webView21.CoreWebView2.Navigate(url);
+            LoadingObj.CloseWaiting();
+        }
+
+        private async void button3_Click(object sender, EventArgs e)
+        {
+            CoreWebView2PrintSettings printSettings = webView21.CoreWebView2.Environment.CreatePrintSettings();
+            //printSettings.Orientation = CoreWebView2PrintOrientation.Landscape;
+            //printSettings.PrinterName = "Microsoft Print to PDF";
+            //printSettings.Orientation = CoreWebView2PrintOrientation.Portrait;
+            
+            printSettings.PrinterName = "RICOH imagio MP C2800";
+            printSettings.MediaSize = CoreWebView2PrintMediaSize.Custom;
+            printSettings.PageHeight = 11.69; // A4 paper size
+            printSettings.PageWidth = 8.27;
+            printSettings.MarginLeft = 0;
+            printSettings.MarginTop = 0;
+            //printSettings.ShouldPrintBackgrounds = true;
+            //var result = await webView21.CoreWebView2.PrintToPdfAsync(url, printSettings);
+            var result = await webView21.CoreWebView2.PrintAsync(printSettings);
+        }
+
+        private void button4_Click(object sender, EventArgs e)
+        {
+            webView21.CoreWebView2.ExecuteScriptAsync("window.print();");
+        }
+    }
+}

--
Gitblit v1.10.0