如何用freemarker动态生成word目录
首先,通过xml模板可以将基本上所有的格式都事先锁定,包括页码和分页,只要你事先预设好就能够通过freemarker实现生成,接下来就是我这个问题了,目录怎么解决,下面是解决思路:1:目录的内容可以根据之前其他的内容一样解决,通过XML模板预先设置好,2:目录的页码已经研究过是不能直接通过xml模板实现动态对应了(至少我没搞定0.0)3:由于不能够一步到位,我采取了在模板中预留了一页空白页,只留了抬头的目录两个字,然后通过查询目录二字进行目录的生成,这个功能也是我刚刚折腾出来的0.0目前还没测试能不能用模板生成目录后再更新目录0.0,不过想想可以直接生成目录应该就不用这么麻烦了,至于word生成后的修改0.0我觉得还是以后再说吧.....整体来说应该还算完美解决了,代码我就不在这贴出来了~虽然中间折腾了半天走了半天弯路~讲道理还是用的jacob来实现的。
。
...
freemarker导出word时报出异常求帮助
OFFICE本身是没有问题的。
你打开你的word文档是不是,但这个词的临时文件生成的。
临时文件包含您刚才告诉我做一些改变只有一个字,所以你转向会出现乱码,你需要找到原词打开。
临时文件一般都是隐藏不可见的,你可以设置显示隐藏文件,所以你可以看到临时文件。
找同名的符号是没有什么特别的文件打开,那才是真正的文件。
maven用freemarker导出word的jsp页面怎么写
整个网站首页的基本结构是通过jsp的include标签将所有通过freemarker生成的静态页面组织起来。
后台控制各个部分的静态页生成。
这样做将首页进行了拆分,便于了静态页面的维护,当我们需要生成“友情链接”部分的时候就只生成友情链接部分,而不需要将整个页面都从新生成一次。
以下是我生成静态页最核心的方法,使用freemarker。
/*** 生成静态页面主方法* @param context ServletContext* @param data 一个Map的数据结果集* @param templatePath ftl模版路径* @param targetHtmlPath 生成静态页面的路径*/ public static void crateHTML(ServletContext context,Map data,String templatePath,String targetHtmlPath){Configuration freemarkerCfg = new Configuration();//加载模版freemarkerCfg.setServletContextForTemplateLoading(context, "/");freemarkerCfg.setEncoding(Locale.getDefault(), "UTF-8");try {//指定模版路径Template template = freemarkerCfg.getTemplate(templatePath,"UTF-8");template.setEncoding("UTF-8");//静态页面路径String htmlPath = context.getRealPath("/html")+"/"+targetHtmlPath;File htmlFile = new File(htmlPath);Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(htmlFile), "UTF-8"));//处理模版template.process(data, out);out.flush();out.close();} catch (Exception e) {e.printStackTrace();}} 其实很简单,只要Google一下就有很多这方面的代码。
我也是Google的代码然后自己再根据实际情况修改。
简单说明一下参数: ServletContext :这个不用说了吧。
做java web的应该都知道,只不过struts2中这样获取ServletActionContext.getServletContext()Map data : 模版的数据来源。
freemarker通过一个Map给ftl模版送数据。
现在已友情链接为列子详细介绍静态页面如何生成。
其他模块以此类推。
String templatePath : ftl所在的路径。
我这里相对于网站的一个相对路径然后通过ServerContext获取绝对路径。
String targetHtmlPath : 最后生成静态页的路径:我这里相对于网站的一个相对路径然后通过ServerContext获取绝对路径。
友情链接根据这段代码我们需要freemarker生成一个index_link.html文件。
友情链接数据来源通过数据库查询获取。
然后再写一个方法专门生成友情链接静态页面: /*** 生成友情链接的静态页index_link.html* @param context* @param data*/public static void createIndexFriendLink(ServletContext context,Map data){crateHTML(context,data,"index_link.ftl","index_link.html");} 此方法调用上面的createHTML方法。
然后根据以上方法我们就可以再Struts2的action里面从数据库查询数据放入map调用createIndexFriendLink()方法生成静态页了。
这是action中的一个方法:/*** 生成友情链接静态页index_link.html* @return*/public String createLink(){//权限验证if(! this.isAccess())return "error";try{//得到友情链接List links = friendLinkDAO.findAll();//准备数据HashMap data = new HashMap();data.put("links", links);//调用静态页面方法HTML.createIndexFriendLink(ServletActionContext.getServletContext(), data);addActionMessage("静态页面生成成功!");return "message";}catch(Exception e){e.printStackTrace();return "failure";}} List links = friendLinkDAO.findAll();通过spring注入action的hiberate DAO获取数据给list然后通过以下代码 HashMap data = new HashMap();data.put("links", links); 准备数据调用createIndexFriendLink()方法。
以下是:ftl模版源码: 友情链接:${link.linkName}
使用freemarker生成的word文档,如何利用java代码将其转换为pdf格式...
首先,通过xml模板可以将基本上所有的格式都事先锁定,包括页码和分页,只要你事先预设好就能够通过freemarker实现生成,接下来就是我这个问题了,目录怎么解决,下面是解决思路:1:目录的内容可以根据之前其他的内容一样解决,通过XML模板预先设置好,2:目录的页码已经研究过是不能直接通过xml模板实现动态对应了(至少我没搞定0.0)3:由于不能够一步到位,我采取了在模板中预留了一页空白页,只留了抬头的目录两个字,然后通过查询目录二字进行目录的生成,这个功能也是我刚刚折腾出来的0.0目前还没测试能不能用模板生成目录后再更新目录0.0,不过想想可以直接生成目录应该就不用这么麻烦了,至于word生成后的修改0.0我觉得还是以后再说吧..整体来说应该还算完美解决了,代码我就不在这贴出来了~虽然中间折腾了半天走了半天弯路~讲道理还是用的jacob来实现的。
。
...
java使用freemarker生成word文档可以动态生成目录结构么
首先,通过xml模板可以将基本上所有的格式都事先锁定,包括页码和分页,只要你事先预设好就能够通过freemarker实现生成,接下来就是我这个问题了,目录怎么解决,下面是解决思路:1:目录的内容可以根据之前其他的内容一样解决,通过XML模板预先设置好,2:目录的页码已经研究过是不能直接通过xml模板实现动态对应了(至少我没搞定0.0)3:由于不能够一步到位,我采取了在模板中预留了一页空白页,只留了抬头的目录两个字,然后通过查询目录二字进行目录的生成,这个功能也是我刚刚折腾出来的0.0目前还没测试能不能用模板生成目录后再更新目录0.0,不过想想可以直接生成目录应该就不用这么麻烦了,至于word生成后的修改0.0我觉得还是以后再说吧.....整体来说应该还算完美解决了,代码我就不在这贴出来了~虽然中间折腾了半天走了半天弯路~讲道理还是用的jacob来实现的。
。
...
python输出word内容
程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob、Apache POI、Java2Word、iText等各种方式,以及使用freemarker这样的模板引擎这样的方式。
php中也有一些相应的方法,但在python中将web/html内容生成world文档的方法是很少的。
其中最不好解决的就是如何将使用js代码异步获取填充的数据,图片导出到word文档中。
1. unoconv 功能:1.支持将本地html文档转换为docx格式的文档,所以需要先将网页中的html文件保存到本地,再调用unoconv进行转换。
转换效果也不错,使用方法非常简单。
\# 安装 sudo apt-get install unoconv \# 使用 unoconv -f pdf *.odt unoconv -f doc *.odt unoconv -f html *.odt 缺点:1.只能对静态html进行转换,对于页面中有使用ajax异步获取数据的地方也不能转换(主要是要保证从web页面保存下来的html文件中有数据)。
2.只能对html进行转换,如果页面中有使用echarts,highcharts等js代码生成的图片,是无法将这些图片转换到word文档中;3.生成的word文档内容格式不容易控制。
2. python-docx 功能:1.python-docx是一个可以读写word文档的python库。
使用方法:1.获取网页中的数据,使用python手动排版添加到word文档中。
from docx import Document from docx.shared import Inches document = Document() document.add_heading('Document Title', 0) p = document.add_paragraph('A plain paragraph having some ') p.add_run('bold').bold = True p.add_run(' and some ') p.add_run('italic.').italic = True document.add_heading('Heading, level 1', level=1) document.add_paragraph('Intense quote', style='IntenseQuote') document.add_paragraph('first item in unordered list', style='ListBullet') document.add_paragraph('first item in ordered list', style='ListNumber') document.add_picture('monty-truth.png', width=Inches(1.25)) table = document.add_table(rows=1, cols=3) hdr_cells = table.rows[0].cells hdr_cells[0].text = 'Qty' hdr_cells[1].text = 'Id' hdr_cells[2].text = 'Desc' for item in recordset:row_cells = table.add_row().cells row_cells[0].text = str(item.qty) row_cells[1].text = str(item.id) row_cells[2].text = item.desc document.add_page_break() document.save('demo.docx') from docx import Document from docx.shared import Inches document = Document() for row in range(9):t = document.add_table(rows=1,cols=1,style = 'Table Grid') t.autofit = False #很重要!w = float(row) / 2.0 t.columns[0].width = Inches(w) document.save('table-step.docx') 缺点:1.功能非常弱。
有很多限制比如不支持模板等,只能生成简单格式的word文档。
程序导出PDF文档方法1.pdfkit 功能:1.wkhtmltopdf主要用于HTML生成PDF。
2.pdfkit是基于wkhtmltopdf的python封装,支持URL,本地文件,文本内容到PDF的转换,其最终还是调用wkhtmltopdf命令。
是目前接触到的python生成pdf效果较好的。
优点:1.wkhtmltopdf:利用webkit内核将HTML转为PDF webkit是一个高效、开源的浏览器内核,包括Chrome和Safari在内的浏览器都使用了这个内核。
Chrome打印当前网页的功能,其中有一个选项就是直接“保存为 PDF”。
2.wkhtmltopdf使用webkit内核的PDF渲染引擎来将HTML页面转换为PDF。
高保真,转换质量很好,且使用非常简单。
使用方法:\# 安装 pip install pdfkit \# 使用 import pdfkit pdfkit.from_url('', 'out.pdf') pdfkit.from_file('test.html', 'out.pdf') pdfkit.from_string('Hello!', 'out.pdf') 缺点:1.对使用echarts,highcharts这样的js代码生成的图标无法转换为pdf(因为它的功能主要是将html转换为pdf,而不是将js转换为pdf)。
对于纯静态页面的转换效果还是不错的。
2.其他 其他生成pdf的插件还有:weasyprint,reportlab,PyPDF2等,经简单试验都不如pdfkit效果好,且有些用法复杂。
python输出word内容
text = ',本地文件,文本内容到PDF的转换,其最终还是调用wkhtmltopdf命令.add_table(rows=1,cols=1,以及使用freemarker这样的模板引擎这样的方式。
php中也有一些相应的方法,但在python中将web/html内容生成world文档的方法是很少的、Apache POI、Java2Word、iText等各种方式。
使用方法:1.获取网页中的数据, level=1)document,支持URL;, 0)p = document.add_paragraph(')from docx import Documentfrom docx!w = float(row) /first item in ordered list';ListNumber')document.add_picture('程序导出word文档的方法将web/html内容导出为world文档,style = 'Table Grid'.add_heading('Document Title' and some ')p。
是目前接触到的python生成pdf效果较好的, style=', width=Inches(1.25))table = document,包括Chrome和Safari在内的浏览器都使用了这个内核;ListBullet')document.add_paragraph(',是无法将这些图片转换到word文档中;3.生成的word文档内容格式不容易控制。
优点:1.wkhtmltopdf:利用webkit内核将HTML转为PDFwebkit是一个高效、开源的浏览器内核; 2.0t,比如使用Jacob。
转换效果也不错.odtunoconv -f html *.odt缺点:1.只能对静态html进行转换,对于页面中有使用ajax异步获取数据的地方也不能转换(主要是要保证从web页面保存下来的html文件中有数据)。
2.只能对html进行转换,如果页面中有使用echarts,highcharts等js代码生成的图片.pdfkit功能:1.wkhtmltopdf主要用于HTML生成PDF.id)row_cells[2];test.html'.text = item;, 'out.pdf')pdfkit.from_file('Desc'for item in recordset:row_cells = table.add_row().cellsrow_cells[0].text = str(item.qty)row_cells[1]。
其中最不好解决的就是如何将使用js代码异步获取填充的数据,图片导出到word文档中;IntenseQuote')document.add_paragraph('Id'hdr_cells[2];first item in unordered list'。
1.docx')缺点:1.功能非常弱。
有很多限制比如不支持模板等,只能生成简单格式的word文档。
程序导出PDF文档方法1,使用python手动排版添加到word文档中。
from docx import Documentfrom docx.columns[0].width = Inches(w)document.save('table-step.text = str(item;monty-truth;)t.autofit = False #很重要.save('.png', level 1'.descdocument.add_page_break()document. unoconv功能:1.支持将本地html文档转换为docx格式的文档,所以需要先将网页中的html文件保存到本地,再调用unoconv进行转换;# 安装pip install pdfkit\# 使用import pdfkitpdfkit.from_url(''demo.docx',使用方法非常简单。
\.add_run('bold'A plain paragraph having some ')p.bold = Truep.add_run('),且使用非常简单。
使用方法:\, style=', style='# 安装sudo apt-get install unoconv\# 使用unoconv -f pdf *.').italic = Truedocument.add_heading(', 'out.pdf')pdfkit.from_string('Hello!', 'out.pdf')缺点:1.对使用echarts,highcharts这样的js代码生成的图标无法转换为pdf(因为它的功能主要是将html转换为pdf,而不是将js转换为pdf)。
对于纯静态页面的转换效果还是不错的。
2.其他其他生成pdf的插件还有:weasyprint,reportlab,PyPDF2等,经简单试验都不如pdfkit效果好,且有些用法复杂。
.odtunoconv -f doc *;Heading.text = '.shared import Inchesdocument = Document()for row in range(9):t = document.pdfkit是基于wkhtmltopdf的python封装。
2. python-docx功能:1.python-docx是一个可以读写word文档的python库,其中有一个选项就是直接“保存为 PDF”。
2.wkhtmltopdf使用webkit内核的PDF渲染引擎来将HTML页面转换为PDF。
高保真,转换质量很好。
2.shared import Inchesdocument = Document()document.add_run('italic。
Chrome打印当前网页的功能.add_paragraph('Intense quote'.add_table(rows=1, cols=3)hdr_cells = table.rows[0].cellshdr_cells[0].text = 'Qty'hdr_cells[1],再java中有很多解决方案
怎么把python输出为word
程序导出word文档的方法将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob、Apache POI、Java2Word、iText等各种方式,以及使用freemarker这样的模板引擎这样的方式。
php中也有一些相应的方法,但在python中将web/html内容生成world文档的方法是很少的。
其中最不好解决的就是如何将使用js代码异步获取填充的数据,图片导出到word文档中。
1. unoconv功能:1.支持将本地html文档转换为docx格式的文档,所以需要先将网页中的html文件保存到本地,再调用unoconv进行转换。
转换效果也不错,使用方法非常简单。
?\# 安装sudo apt-get install unoconv\# 使用unoconv -f pdf *.odtunoconv -f doc *.odtunoconv -f html *.odt缺点:1.只能对静态html进行转换,对于页面中有使用ajax异步获取数据的地方也不能转换(主要是要保证从web页面保存下来的html文件中有数据)。
2.只能对html进行转换,如果页面中有使用echarts,highcharts等js代码生成的图片,是无法将这些图片转换到word文档中;3.生成的word文档内容格式不容易控制。
2. python-docx功能:1.python-docx是一个可以读写word文档的python库。
使用方法:1.获取网页中的数据,使用python手动排版添加到word文档中。
...
转载请注明出处51数据库 » freemarker中word导出
夏亚-雷鸣