1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- using Newtonsoft.Json.Linq;
- using PTMedicalInsurance.Forms;
- using PTMedicalInsurance.Helper;
- using Spire.Pdf;
- using Spire.Pdf.Print;
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Drawing.Printing;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace PTMedicalInsurance.Business
- {
- class LocalSettleBillPrintProcess : AbstractProcess
- {
- public override CallResult Process(JObject joInParam)
- {
- string errMsg = "";
- string insuAdmObj = JsonHelper.getDestValue(joInParam, "insuAdmObj");
- JObject joInsuAdmObj = JObject.Parse(insuAdmObj);
- JObject joRtn = invoker.invokeCenterService(TradeEnum.PrintSettlementList, joInsuAdmObj);
- if (JsonHelper.parseCenterRtnValue(joRtn, out errMsg) != 0)
- {
- return Exception("读卡失败:", errMsg);
- }
- else
- {
- // 仅有一个report映射到output节点
- string reportData = JsonHelper.getDestValue(joRtn, "output");
- if (!string.IsNullOrEmpty(reportData))
- {
- PrintBase64Pdf(reportData);
- }
- return IrisReturn("打印成功",joRtn);
- }
- }
- public void PrintBase64Pdf(string base64Pdf)
- {
- string pdfFile = System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + "\\bill.pdf";
- byte[] bytes = Convert.FromBase64String(base64Pdf);
- try
- {
- using (PdfDocument doc = new PdfDocument())
- {
- File.WriteAllBytes(pdfFile, bytes);
- doc.LoadFromFile(pdfFile);
- PrintersForm printers = new PrintersForm();
- if (printers.ShowDialog() == DialogResult.OK)
- {
- PdfPrintSettings settings = new PdfPrintSettings();
- settings.PrinterName = printers.PrinterName;
- settings.Landscape = printers.Landscape;
- doc.Print(settings);
- }
-
- }
- }
- finally
- {
- if (File.Exists(pdfFile))
- {
- File.Delete(pdfFile);
- }
- }
- }
- }
- }
|