IText&Html2canvas js截图 绘制 导出PDF
Html2canvas JS截图
HTML
1 <div id="divPDF"> 2 需要截图的区域 3 </div>
JS
1 <script src="../Js/html2canvas.js"></script> 2 <script type="text/javascript"> 3 4 function getPDF() { 5 html2canvas($('#divPDF'), 6 { 7 onrendered: function (canvas) { 8 var imgUrl = canvas.toDataURL();//获取截图的Base64编码 9 } 10 }); 11 } 12 13 </script>
后台使用图片 Base64编码转换为图像
1 // <summary> 2 /// Base64编码转换为图像 3 /// </summary> 4 /// <param name="base64String">Base64字符串</param> 5 /// <returns>转换成功返回图像;失败返回null</returns> 6 public string Base64ToImage(string imgName, string base64String, string path) 7 { 8 base64String = base64String.Replace("data:image/png;base64,", ""); 9 MemoryStream ms = null; 10 System.Drawing.Image image = null; 11 string imgUrl = path + "\\" + imgName + ".png"; 12 byte[] imageBytes = Convert.FromBase64String(base64String); 13 ms = new MemoryStream(imageBytes, 0, imageBytes.Length); 14 ms.Write(imageBytes, 0, imageBytes.Length); 15 image = System.Drawing.Image.FromStream(ms, true); 16 image.Save(imgUrl); 17 return imgUrl; 18 }
给PDF文件添加水印 IText WaterMark
1 public void AddWaterMark(string fileLocation, string path, int x, int y) 2 { 3 string WatermarkLocation = path + "\\watermark.png"; 4 Document document = new Document(); 5 PdfReader pdfReader = new PdfReader(fileLocation); 6 PdfStamper stamp = new PdfStamper(pdfReader, new FileStream(fileLocation.Replace(".pdf", "[temp][file].pdf"), FileMode.Create)); 7 8 iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(WatermarkLocation); 9 img.SetAbsolutePosition(x, y); // set the position in the document where you want the watermark to appear (0,0 = bottom left corner of the page) 10 PdfContentByte waterMark; 11 for (int page = 1; page <= pdfReader.NumberOfPages; page++) 12 { 13 waterMark = stamp.GetOverContent(page); 14 waterMark.AddImage(img); 15 } 16 stamp.FormFlattening = true; 17 stamp.Close(); 18 pdfReader.Close(); 19 // now delete the original file and rename the temp file to the original file 20 File.Delete(fileLocation); 21 File.Move(fileLocation.Replace(".pdf", "[temp][file].pdf"), fileLocation); 22 23 }
作者:唐小熊
出处:http://www.cnblogs.com/IT-Bear/
关于作者:一头写代码的熊
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接
如有问题,可以通过kumat@foxmail.com 联系我,非常感谢。
分类:
01-技术相关
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构