当前位置: 首页 > news >正文

手机企业网站推广家在深圳罗湖

手机企业网站推广,家在深圳罗湖,手机做网站的教程,江津网站建设口碑一.开发框架: .NetCore6.0 工具:Visual Studio 2022 二.思路: 1.使用SHA256Hash标识文档转换记录,数据库已经存在对应散列值,则直接返还已经转换过的文档 2.数据库没有对应散列值记录的话,则保存上传PDF…

一.开发框架:

.NetCore6.0
工具:Visual Studio 2022

二.思路:

1.使用SHA256Hash标识文档转换记录,数据库已经存在对应散列值,则直接返还已经转换过的文档
2.数据库没有对应散列值记录的话,则保存上传PDF文档,并进行文档转换,保留Word
3.转换成功,则在数据库记录对应文档的转换记录,用散列值做标识

三.C#后台包:

1.方法一:Spire.PDF转换包(免费的只能一次转换10页)
在这里插入图片描述
2.方法二:iTextSharp包,没有10页转换限制
在这里插入图片描述
3.mssql数据库连接包
在这里插入图片描述
4.iTextSharp包转换Word文档时,文档格式包
在这里插入图片描述

四:C#代码案例:

1.PDF转Word方法:
a.方法一:Spire.PDF包,PDF转Word方法(旧版,有页码限制):

	 /// <summary>/// PDF文件转化为Word文件/// </summary>/// <param name="pdfFilePath"></param>/// <param name="wordFilePath"></param>public static void ConvertPdfToWord(string pdfFilePath, string wordFilePath){try{Spire.Pdf.PdfDocument pdfDoc = new Spire.Pdf.PdfDocument();pdfDoc.LoadFromFile(pdfFilePath);pdfDoc.SaveToFile(wordFilePath, Spire.Pdf.FileFormat.DOCX);pdfDoc.Close();}catch (Exception ex){Console.WriteLine("Error converting PDF to Word: " + ex.Message);}}

b.iTextSharp包,没有页码限制:

	 /// <summary>/// iTextSharp库PDF文件转Word文件/// </summary>/// <param name="pdfFilePath"></param>/// <param name="wordFilePath"></param>public static void ConvertPdfToWordByText(string pdfFilePath, string wordFilePath){using (iText.Kernel.Pdf.PdfReader reader = new iText.Kernel.Pdf.PdfReader(pdfFilePath)){using (iText.Kernel.Pdf.PdfDocument pdfDoc = new iText.Kernel.Pdf.PdfDocument(reader)){Spire.Doc.Document doc = new Spire.Doc.Document();for (int i = 1; i <= pdfDoc.GetNumberOfPages(); i++){iText.Kernel.Pdf.PdfPage page = pdfDoc.GetPage(i);var strategy = new iText.Kernel.Pdf.Canvas.Parser.Listener.LocationTextExtractionStrategy();PdfCanvasProcessor parser = new PdfCanvasProcessor(strategy);parser.ProcessPageContent(page);string textFromPage = strategy.GetResultantText();var paragraph = doc.AddSection().AddParagraph();paragraph.AppendText(textFromPage);}doc.SaveToFile(wordFilePath, Spire.Doc.FileFormat.Docx);}}}

2.获取文件散列值方法(两种):

a.根据上传文件,获取散列值

	/// <summary>/// 根据上传文件获取文件散列值/// </summary>/// <param name="file"></param>/// <returns></returns>public string CalculateSHA256Hash(IFormFile file){try{using (var sha256 = SHA256.Create()){using (var stream = file.OpenReadStream()){byte[] hashBytes = sha256.ComputeHash(stream);string hashString = BitConverter.ToString(hashBytes).Replace("-", String.Empty);return hashString;}}}catch (Exception ex){Console.WriteLine("Error calculating SHA256 hash: " + ex.Message);return null;}}

b.根据文件路径,获取散列值

    /// <summary>/// 根据文件路径获取文件散列值/// </summary>/// <param name="filePath"></param>/// <returns></returns>public string CalculateSHA256Hash(string filePath){try{using (FileStream stream = System.IO.File.OpenRead(filePath)){SHA256 sha = SHA256.Create();byte[] hash = sha.ComputeHash(stream);string hashString = BitConverter.ToString(hash).Replace("-", String.Empty);return hashString;}}catch (Exception ex){Console.WriteLine("Error calculating SHA256 hash: " + ex.Message);return null;}}

3.上传PDF文件,转化为Word文件方法:

    /// <summary>/// 文件上传/// </summary>/// <returns></returns>public ActionResult UploadFile(){var files = HttpContext.Request.Form.Files;if (files == null || files.Count <= 0){return Json(new { code = -1, msg = "请上传文件!" });}var file = files[0];if (file.ContentType != "application/pdf"){return Json(new { code = -1, msg = "不是PDF文件!" });}var SHA256Hash = CalculateSHA256Hash(file);long fileSize = file.Length;if (new FileConversionBll().ExistsSHA256Hash(SHA256Hash, fileSize)){var model = new FileConversionBll().GetFileBySHA256HashAndSize(SHA256Hash, fileSize);return Json(new { code = 0, msg = "",data = model.WordFilePath }); }else{string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff");//var filePath = $@"~/File/Pdf/{fileName}";string pdfFilePath = System.IO.Path.Combine("PDF文档路径", fileName + ".pdf");using (var fileStream = new FileStream(pdfFilePath, FileMode.Create)){file.CopyTo(fileStream);}string wordFilePath = System.IO.Path.Combine("Word文档路径", fileName + ".docx");//ConvertPdfToWord(pdfFilePath, wordFilePath);ConvertPdfToWordByText(pdfFilePath, wordFilePath);var res = new FileConversionBll().AddFileConversion(new FileConversion(){PdfFilePath = pdfFilePath,WordFilePath = wordFilePath,PdfSHA256Hash = SHA256Hash,FileSize = fileSize}) ;if (res){return Json(new { code = 0, msg = "",data = wordFilePath });}}return Json(new {code = -2,msg = "出错了!"});}

五.效果图:

旧版Spire.PDF包,只转化了10页:在这里插入图片描述
新版iTextSharp包,全部转化完成(但是去除了原本的Word文档格式):
在这里插入图片描述

http://www.yayakq.cn/news/105309/

相关文章:

  • 萍乡建站公司南通 网络 公司网站
  • 金华手机建站模板聊城做网站信息
  • 工程建设标准网站山西省工程招标网
  • 哪里培训网站开发好凡科网站怎么做淘宝客
  • 南京美容网站建设南京微信网站开发
  • 中医网站建设素材国外用python做的网站
  • 影响网站用户体验无锡营销型网站建设
  • 英文网站建设方案 PPT国际物流网站模板
  • 广元市住房和城乡建设局网站分销网站
  • 做营销网站要多少钱雅虎网站优化怎么做
  • 南京建站公司wordpress apahce 静态 windows
  • 济南市城市建设规划局官方网站电子工程有限公司
  • 煤炭网站建设规划书中国域名注册
  • 那个视频网站可以做桌面背景重庆必去的十大景点
  • 网站技术报务费如何做会计分录关于网站推广
  • 厦门网站搜索优化大学生免费ppt网站
  • 公司网站 域名郑州建设局官网
  • 深圳网站优化培训代注册公司需要多少费用
  • 电商网站开发平台哪个好邢台网站推广专业服务
  • 东莞网站关键词优化龙岗区建设规划网站
  • 做期权注册网站注册了域名之后如何建立一个网站
  • 网站登录界面用什么软件做西安北郊做网站公司
  • 礼泉做网站阿里云网站建设教程视频
  • 外贸网站建设公司渠道建设一家网站多少钱
  • 推广一个网站需要什么机械制造设备类企业网站织梦模板
  • 长沙商城网站开发深圳网络推广公司
  • 郴州网站建设较好的公司做个营销型网站设计
  • 牟平网站建设专业网站建设模块维护
  • 杭州专业网站排名优化搜索排名提升
  • 珠海网站建设公司电话免费上传图片的网址