2026-04-17 19:51:55 +08:00
|
|
|
using Aspose.Words.Rendering;
|
|
|
|
|
using BLL;
|
|
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using UglyToad.PdfPig;
|
|
|
|
|
using UglyToad.PdfPig.Content;
|
|
|
|
|
using UglyToad.PdfPig.Writer;
|
|
|
|
|
|
|
|
|
|
namespace FineUIPro.Web.HJGL.DataIn
|
|
|
|
|
{
|
2026-04-18 09:28:30 +08:00
|
|
|
public partial class DrawingRecognitionContent : PageBase
|
2026-04-17 19:51:55 +08:00
|
|
|
{
|
|
|
|
|
public string URL
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return (string)ViewState["URL"];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["URL"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public string fileUrl
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return (string)ViewState["fileUrl"];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["fileUrl"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public DataTable dt
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return (DataTable)ViewState["DataTable"];
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
ViewState["DataTable"] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (!IsPostBack)
|
|
|
|
|
{
|
|
|
|
|
if (!string.IsNullOrEmpty(Request.Params["fileUrl"]))
|
|
|
|
|
{
|
|
|
|
|
URL = Funs.HJGLUrl + Request.Params["fileUrl"].Replace("\\", "/");
|
|
|
|
|
string rootPath = Server.MapPath("~/");
|
|
|
|
|
fileUrl = rootPath + Request.Params["fileUrl"];
|
|
|
|
|
|
|
|
|
|
// 加载PDF文档
|
|
|
|
|
|
|
|
|
|
if (!File.Exists(fileUrl))
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
using (var pdf = PdfDocument.Open(fileUrl))
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < pdf.NumberOfPages; i++)
|
|
|
|
|
{
|
|
|
|
|
var page = pdf.GetPage(i + 1);
|
|
|
|
|
var rotation = page.Rotation;
|
|
|
|
|
|
|
|
|
|
var outputPath = $"{rootPath}/File/page_{i + 1}.pdf";
|
|
|
|
|
|
|
|
|
|
using (var writer = new PdfDocumentBuilder())
|
|
|
|
|
{
|
|
|
|
|
PdfPageBuilder newPage = null;
|
|
|
|
|
if (rotation.Value != 0 && rotation.Value != 180)
|
|
|
|
|
{
|
|
|
|
|
newPage = writer.AddPage(page.Height, page.Width);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
newPage = writer.AddPage(page.Width, page.Height);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
newPage.CopyFrom(page);
|
|
|
|
|
// 3. 关键:清除旋转标记 + 反向旋转内容(修正视觉方向)
|
|
|
|
|
// 清除 /Rotate 标记
|
|
|
|
|
newPage.SetRotation(new PageRotationDegrees(rotation.Value));
|
|
|
|
|
var newPdf = writer.Build();
|
|
|
|
|
File.WriteAllBytes(outputPath, newPdf);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected void btnSave_Click(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Grid1.Hidden = true;
|
|
|
|
|
contentPanel1.Hidden =false ;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-18 09:28:30 +08:00
|
|
|
protected void btnAudit_Click(object sender, EventArgs e)
|
2026-04-17 19:51:55 +08:00
|
|
|
{
|
|
|
|
|
Grid1.Hidden = false;
|
|
|
|
|
contentPanel1.Hidden = true;
|
2026-04-18 09:28:30 +08:00
|
|
|
btnAudit.Hidden = true;
|
|
|
|
|
btnSave.Hidden = false;
|
2026-04-17 19:51:55 +08:00
|
|
|
JObject jobject = JObject.Parse(resultdata.Value);
|
|
|
|
|
JArray jArray = jobject.Value<JArray>("material_rows");
|
|
|
|
|
dt = new DataTable();
|
|
|
|
|
dt.Columns.Add("id");
|
|
|
|
|
dt.Columns.Add("pipe_no");
|
|
|
|
|
dt.Columns.Add("drawing_number");
|
|
|
|
|
dt.Columns.Add("seq_no");
|
|
|
|
|
dt.Columns.Add("category");
|
|
|
|
|
dt.Columns.Add("description");
|
|
|
|
|
dt.Columns.Add("spec");
|
|
|
|
|
dt.Columns.Add("qty");
|
|
|
|
|
dt.Columns.Add("page_no");
|
|
|
|
|
dt.Columns.Add("remark");
|
|
|
|
|
|
|
|
|
|
// 遍历并提取数据
|
|
|
|
|
foreach (JObject item in jArray)
|
|
|
|
|
{
|
|
|
|
|
var row = dt.NewRow();
|
|
|
|
|
row["id"] = item.Value<string>("id");
|
|
|
|
|
row["pipe_no"] = item.Value<string>("pipe_no");
|
|
|
|
|
row["drawing_number"] = item.Value<string>("drawing_number");
|
|
|
|
|
row["seq_no"] = item.Value<string>("seq_no");
|
|
|
|
|
row["category"] = item.Value<string>("category");
|
|
|
|
|
row["description"] = item.Value<string>("description");
|
|
|
|
|
row["spec"] = item.Value<string>("spec");
|
|
|
|
|
row["qty"] = item.Value<string>("qty");
|
|
|
|
|
row["page_no"] = item.Value<string>("page_no");
|
|
|
|
|
row["remark"] = item.Value<string>("remark");
|
|
|
|
|
dt.Rows.Add(row);
|
|
|
|
|
}
|
2026-04-18 09:28:30 +08:00
|
|
|
BindGrid();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void BindGrid()
|
|
|
|
|
{
|
|
|
|
|
|
2026-04-17 19:51:55 +08:00
|
|
|
|
|
|
|
|
Grid1.DataSource = dt;
|
|
|
|
|
Grid1.DataBind();
|
|
|
|
|
|
|
|
|
|
|
2026-04-18 09:28:30 +08:00
|
|
|
}
|
|
|
|
|
#region 双击事件
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Grid行双击事件
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (Grid1.SelectedRowIndexArray.Length == 0)
|
|
|
|
|
{
|
|
|
|
|
Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_DataInMenuId, Const.BtnAdd))
|
|
|
|
|
{
|
2026-04-18 09:36:30 +08:00
|
|
|
if (DrawingRecognitionContentEdit.dicDt.ContainsKey(CurrUser.UserId))
|
|
|
|
|
{
|
|
|
|
|
DrawingRecognitionContentEdit.dicDt[CurrUser.UserId ]= dt;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
DrawingRecognitionContentEdit.dicDt.Add(CurrUser.UserId, dt);
|
|
|
|
|
|
|
|
|
|
}
|
2026-04-18 09:28:30 +08:00
|
|
|
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("DrawingRecognitionContentEdit.aspx?Index={0}", Grid1.SelectedRowIndex, "维护 - ")));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
protected void Window1_Close(object sender, WindowCloseEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
Grid1.DataSource = dt;
|
|
|
|
|
Grid1.DataBind();
|
2026-04-17 19:51:55 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|