欢迎来到【溯源码燕窝查询后】【jdk 1.6 源码 eclipse】【android相机源码讲解】xmlworkerhelper源码-皮皮网网站!!!

皮皮网

【溯源码燕窝查询后】【jdk 1.6 源码 eclipse】【android相机源码讲解】xmlworkerhelper源码-皮皮网 扫描左侧二维码访问本站手机端

【溯源码燕窝查询后】【jdk 1.6 源码 eclipse】【android相机源码讲解】xmlworkerhelper源码

2024-11-19 10:39:35 来源:{typename type="name"/} 分类:{typename type="name"/}

1.asp文件用什么打开
2.java.lang.ArrayIndexOutOfBoundsException: 1
3.iText在Linux环境下的应用itextlinux

xmlworkerhelper源码

asp文件用什么打开

       因个人需求,需要将html格式转换成PDF并加上水印。于是乎第一次接触这种需求的小菜鸟博主我,在某度搜索引擎上不断地查阅关键字资料、踩坑,终于有了一个相应的溯源码燕窝查询后解决方案。以下是解决步骤,记录下来方便以后的回顾,以及各位大神们的品鉴。

       1、在 NuGet 搜索 itextsharp 关键字 下载以下截图圈中的两个包,一般下载完后项目会自动引用。

       2、在项目文件中引入以下命名空间(建议下面提及的代码封装成类库,方便项目间调用,个人取舍)

       3、Html字符串转pdf文件流,jdk 1.6 源码 eclipse加水印以及未加水印重载 精简帮助类(由博主踩坑整理,仅完成个人业务需求)

       1 /// summary 2 /// Html字符串转PDF输出帮助类 3 /// /summary 4 public class HtmlToPdfHelper 5 } return false; } /// summary /// 将Html字符串 输出到PDF档里 /// /summary /// param name="htmlText"/param /// returns/returns public static byte

       ConvertHtmlTextToPdf(string htmlText) { return ConvertHtmlTextToPdf(htmlText, "", 0, 0, 0, 0); } /// summary /// 将Html字符串 输出到PDF档里,并添加水印 /// /summary /// param name="htmlText"网页代码/param /// param name="picPath"水印路径/param /// param name="left"距离左边距离/param /// param name="top"距顶部距离/param /// param name="width"水印宽度/param /// param name="height"水印高度/param /// returns/returns public static byte

       ConvertHtmlTextToPdf(string htmlText, string picPath, int left, int top, int width, int height) { if (string.IsNullOrEmpty(htmlText)) { return null; } //避免当htmlText无任何html tag标签的纯文字时,转PDF时会挂掉,所以一律加上p标签 htmlText = "p" + htmlText + "/p"; MemoryStream outputStream = new MemoryStream();//要把PDF写到哪个串流 byte

       data = Encoding.UTF8.GetBytes(htmlText);//字串转成byte

        MemoryStream msInput = new MemoryStream(data); Document doc = new Document();//要写PDF的文件,建构子没填的话预设直式A PdfWriter writer = PdfWriter.GetInstance(doc, outputStream); //指定文件预设开档时的缩放为% PdfDestination pdfDest = new PdfDestination(PdfDestination.XYZ, 0, doc.PageSize.Height, 1f); //开启Document文件 doc.Open(); //写入水印 if (!string.IsNullOrEmpty(picPath)) { Image img = Image.GetInstance(picPath); //设置的位置 img.SetAbsolutePosition(width + left, (doc.PageSize.Height - height) - top); //设置的大小 img.ScaleAbsolute(width, height); doc.Add(img); } try { //使用XMLWorkerHelper把Html parse到PDF档里 XMLWorkerHelper.GetInstance().ParseXHtml(writer, doc, msInput, null, Encoding.UTF8); //将pdfDest设定的资料写到PDF档 PdfAction action = PdfAction.GotoLocalPage(1, pdfDest, writer); writer.SetOpenAction(action); } catch (Exception) { return null; } doc.Close(); msInput.Close(); outputStream.Close(); //回传PDF档案 return outputStream.ToArray(); } #endregion }

       4、获取网页字符串的方法

       1 /// summary 2 /// 获取网站内容,包含了 HTML+CSS+JS 3 /// /summary 4 /// returnsString返回网页信息/returns 5 public static string GetWebContent(string inpath) 6 else { string pageHtml2 = Encoding.Default.GetString(pageData); pageHtml = pageHtml2; } return pageHtml; } catch (WebException webEx) { return webEx.Message; } }

       5、MVC设计模式下获取控制器视图Html方法,android相机源码讲解很XX的一个问题就是只能获取调用此方法的控制器下所有视图,不能跨控制器获取视图,有待优化

       1 /// summary 2 /// 获取MVC视图Html 3 /// /summary 4 /// param name="context"控制器上下文/param 5 /// param name="viewName"视图名称/param 6 /// param name="param"/param 7 /// returns/returns 8 public static string GetViewHtml(ControllerContext context, string viewName) 9 { if (string.IsNullOrEmpty(viewName)) viewName = context.RouteData.GetRequiredString("action"); using (var sw = new StringWriter()) { ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(context, viewName); var viewContext = new ViewContext(context, viewResult.View, context.Controller.ViewData, context.Controller.TempData, sw); try { viewResult.View.Render(viewContext, sw); } catch (Exception ex) { throw; } return sw.GetStringBuilder().ToString(); } }

       6、将pdf流输出至客户浏览器下载方法

       1 /// summary 2 /// 将pdf文件流输出至浏览器下载 3 /// /summary 4 /// param name="pdfFile"PDF文件流/param 5 public static void PdfDownload(byte

       pdfFile) 6 else { dataToRead = -1; } } } catch (Exception ex) { HttpContext.Current.Response.Write("文件下载时出现错误!"); } finally { if (iStream != null) { iStream.Close(); } //结束响应,否则将导致网页内容被输出到文件,进而文件无法打开 HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); } }

       7、MVC控制器下调用Demo(步骤4、6 方法封装至帮助类)

       1 public class HomeController : Controller 2 public ActionResult Test() { return View(); } /// summary /// 获取MVC视图Html /// /summary /// param name="context"/param /// param name="viewName"视图名称/param /// returns/returns public static string GetViewHtml(ControllerContext context,注册软件源码 string viewName) { if (string.IsNullOrEmpty(viewName)) viewName = context.RouteData.GetRequiredString("action"); using (var sw = new StringWriter()) { ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(context, viewName); var viewContext = new ViewContext(context, viewResult.View, context.Controller.ViewData, context.Controller.TempData, sw); try { viewResult.View.Render(viewContext, sw); } catch (Exception ex) { throw; } return sw.GetStringBuilder().ToString(); } } }

       总结:我理解的解决思路是将html读取转换成字符串,之后再通过 itextsharp 转换成 pdf 比特币 传输至客户端或直接保存至服务器生成链接供用户下载。(新手上路,不妥之处,欢迎各位大神指教)

       以上代码仅满足个人业务逻辑需求,谢谢浏览。

java.lang.ArrayIndexOutOfBoundsException: 1

       æœ€å…³é”®çš„错误原因部分楼主没贴出来。

       å¤§æ¦‚的原因是数组越界,就是你的ArrayList里面只有一个元素而你要取第二个元素,就会抛出这个异常。大概是解析XML的时候哪里写错了吧。

iText在Linux环境下的应用itextlinux

       iText在Linux环境下的应用

       iText是一个开源的开发工具包,用于使开发人员能够以编程方式向PDF文件添加文本、图像和其他元素。博彩网站源码下载它还允许开发人员从PDF文档中提取结构化数据以及自动控制文件模板,它可以容易地实现在Linux环境下的应用。本文将介绍如何使用iText来创建和编辑PDF文档,并使用代码示例来说明使用过程。

       在Linux环境下,用户可以使用iText向PDF文件添加不同的元素,例如文字、图像、表格等,以及实现不同的功能,例如添加书签和链接等。举个例子,假设要在Linux环境下,一步步地添加三种元素到PDF文档中,然后用iText实现:

       首先,创建一个Document实例,用它来管理PDF文档。这可以通过以下Java代码来实现:

       Document document = new Document();

       然后,添加一些文字内容,它可以作为PDF文件内容的一部分。 Java代码如下:

       Paragraph paragraph = new Paragraph(“This is some text”);

       document.add(paragraph);

       接下来,将一个添加到文档中,这一步使用Image实例可实现:

       // Add an image

       Image imageobj = Image.getInstance(“image.jpg”);

       document.add(imageobj);

       最后,将文档写入PDF文件:

       PdfWriter.getInstance(document, new FileOutputStream(“output.pdf”));

       document.open();

       document.close();

       这样,就可以在Linux环境下使用iText很容易地完成以上三种操作,添加文本、图像和PDF文件,而无需关注底层的PDF文档实现细节。

       另外,iText还可以实现将HTML和XML转换为PDF文档,运行以下Java代码,可以实现把HTML文件转换为PDF文件:

       Document document = new Document();

       PdfWriter.getInstance(document, new FileOutputStream(“output.pdf”));

       document.open();

       InputStream is = new FileInputStream(“input.html”);

       XMLWorkerHelper.getInstance().parseXHtml(PdfWriter writer, Document doc, InputStream is);

       document.close();

       通过这些代码,用户可以使用iText在Linux环境中有效地编辑PDF文档,以及实现HTML和XML文件到PDF文件的转换,这将是帮助用户简化PDF文件编辑过程的巨大贡献。