pageoffice 生成pdf_java 集成pageoffice生成pdf - CSDN
精华内容
参与话题
  • 使用PageOffice实现文档(word,excel,pdf)在线预览编辑

    万次阅读 热门讨论 2017-10-31 20:14:29
    最近发现一款不错的插件的PageOffice,地址是:http://www.zhuozhengsoft.com/Technical/ 他可以实现word,excel、pdf在线预览以及在线编辑。虽然商用的话需要收费,但是有免费的试用版,在实现自己毕业设计或是做...
    最近发现一款不错的插件的PageOffice,地址是:http://www.zhuozhengsoft.com/Technical/  他可以实现word,excel、pdf在线预览以及在线编辑。虽然商用的话需要收费,但是有免费的试用版,在实现自己毕业设计或是做样品的时候 是一个不错的选择。他同时支持java\c#\php.一旦有了正真的项目花钱再买也可以。同时自己也可以熟悉如何使用。接着下面实现在线预览。
    首先自己需要安装PageOffice控件 目前最新版本是4.2 。下载地址是:http://www.zhuozhengsoft.com/dowm/ 其中包括实例代码。
    1、安装完后需要给自己的项目添加pageoffice4.jar 和java 添加jar包没有区别。
    2、启动的时候第一次使用试用版会弹出一个框,需要添加一些信息,有一个序列号在最后我写了。剩下 那个就是随便填写就可以。同时他会生成一个文件就是license.lic。他会在tomcat 项目部署的lib下。假如每次启动都需要添加的话。你就需要把tomcat 部署项目lib 里的license.lic 复制到你的本地项目中。
    3、预览后台代码:
    	public String openbar(HttpServletRequest request, HttpServletResponse response, @PathVariable int id,
    			@PathVariable int flag) {
    		// 设置PageOffice服务器组件
    		PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
    		request.setAttribute("poCtrl1", poCtrl1);
    		poCtrl1.setServerPage(request.getContextPath() + "/poserver.zz"); // 此行必须
    		poCtrl1.setTitlebar(false); // 隐藏标题栏(pageoffice的标题)
    		poCtrl1.setMenubar(false); // 隐藏菜单栏(文件一个设置)
    		poCtrl1.setOfficeToolbars(false);// 隐藏Office工具条(word 的编辑按钮)
    		// poCtrl1.setCustomToolbar(false);// 隐藏自定义工具栏(保存 关闭 全屏)
    		poCtrl1.addCustomToolButton("打印", "ShowPrintDlg()", 6);
    		poCtrl1.addCustomToolButton("全屏切换", "SwitchFullScreen()", 4);
    		poCtrl1.addCustomToolButton("关闭", "close", 21);
    		List<FileMeta> entity = fileMetaService.getList(getEntity(flag, id));
    		String path = ZipService.getPath(entity.get(0));
    		String realpath = path.replace("/", "\\\\");
    		String suffix = path.substring(path.lastIndexOf(".") + 1);
    		if ("doc".equals(suffix) || "docx".equals(suffix)) {
    			poCtrl1.webOpen(realpath, OpenModeType.docReadOnly, "张三");
    		} else if ("xls".equals(suffix) || "xlsx".equals(suffix)) {
    			poCtrl1.webOpen(realpath, OpenModeType.xlsReadOnly, "张三");
    		}
    		// 打开文件
    		return "OpenWord";
    	}

    4'、在线编辑:
    /**
    	 * 在线编辑
    	 * 
    	 * @param request
    	 * @param response
    	 * @param id
    	 * @param flag
    	 * @return
    	 */
    	@RequestMapping("openword/{flag}/{id}")
    	public String openword(HttpServletRequest request, HttpServletResponse response, @PathVariable int id,
    			@PathVariable int flag) {
    		PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
    		request.setAttribute("poCtrl", poCtrl);
    		poCtrl.setTitlebar(false);
    		// 设置服务页面
    		poCtrl.setServerPage(request.getContextPath() + "/poserver.zz");
    		// 添加保存按钮
    		poCtrl.addCustomToolButton("保存并关闭", "Save", 1);
    		poCtrl.addCustomToolButton("打印", "ShowPrintDlg()", 6);
    		poCtrl.addCustomToolButton("全屏切换", "SwitchFullScreen()", 4);
    		// 设置保存的action
    		poCtrl.setSaveFilePage(request.getContextPath() + "/wep/savefile/" + flag);
    		// 打开word
    		List<FileMeta> entity = fileMetaService.getList(getEntity(flag, id));
    		String path = ZipService.getPath(entity.get(0));
    		String realpath = path.replace("/", "\\\\");
    		String suffix = path.substring(path.lastIndexOf(".") + 1);
    		if ("doc".equals(suffix) || "docx".equals(suffix)) {
    			poCtrl.webOpen(realpath, OpenModeType.docNormalEdit, "张三");
    		} else if ("xls".equals(suffix) || "xlsx".equals(suffix)) {
    			poCtrl.webOpen(realpath, OpenModeType.xlsNormalEdit, "张三");
    		}
    		return "Word";
    	}

    5、在线编辑需要保存,所以有在线保存:
    /**
    	 * 保存
    	 * 
    	 * @param request
    	 * @param response
    	 * @param flag
    	 */
    	@RequestMapping("savefile/{flag}")
    	public void savefile(HttpServletRequest request, HttpServletResponse response, @PathVariable int flag) {
    		FileSaver fs = new FileSaver(request, response);
    		if (flag == 1) {// hse 保存路径
    			fs.saveToFile("D:\\Demo\\conhse\\" + fs.getFileName());
    		} else if (flag == 2) {
    			fs.saveToFile("D:\\Demo\\doc\\" + fs.getFileName());
    		} else if (flag == 3) {
    			fs.saveToFile("D:\\Demo\\hsequa\\" + fs.getFileName());
    		} else if (flag == 4) {
    			fs.saveToFile("D:\\Demo\\eva\\" + fs.getFileName());
    		} else if (flag == 5) {
    			fs.saveToFile("D:\\Demo\\leg\\" + fs.getFileName());
    		} else if (flag == 6) {
    			fs.saveToFile("D:\\Demo\\plan\\" + fs.getFileName());	
    		}
    		fs.close();
    	}
    6、web-xml配置
    <!-- PageOffice Begin -->
    	<servlet>
    		<servlet-name>poserver</servlet-name>
    		<servlet-class>com.zhuozhengsoft.pageoffice.poserver.Server</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>poserver</servlet-name>
    		<url-pattern>/poserver.zz</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>poserver</servlet-name>
    		<url-pattern>/sealsetup.exe</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>poserver</servlet-name>
    		<url-pattern>/posetup.exe</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>poserver</servlet-name>
    		<url-pattern>/pageoffice.js</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>poserver</servlet-name>
    		<url-pattern>/jquery.min.js</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>poserver</servlet-name>
    		<url-pattern>/pobstyle.css</url-pattern>
    	</servlet-mapping>
    	<servlet>
    		<servlet-name>adminseal</servlet-name>
    		<servlet-class>com.zhuozhengsoft.pageoffice.poserver.AdminSeal</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>adminseal</servlet-name>
    		<url-pattern>/adminseal.zz</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>adminseal</servlet-name>
    		<url-pattern>/loginseal.zz</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>adminseal</servlet-name>
    		<url-pattern>/sealimage.zz</url-pattern>
    	</servlet-mapping>
    	<mime-mapping>
    		<extension>mht</extension>
    		<mime-type>message/rfc822</mime-type>
    	</mime-mapping>
    	<context-param>
    		<param-name>adminseal-password</param-name>
    		<param-value>111111</param-value>
    	</context-param>
    	<!-- PageOffice End -->
    7、jsp配置

    <%@ page language="java"
    	import="java.util.*,com.zhuozhengsoft.pageoffice.*"
    	pageEncoding="UTF-8"%>
    <%
    	PageOfficeCtrl poCtrl = (PageOfficeCtrl) request.getAttribute("poCtrl");
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>最简单的打开保存Word文件</title>
    <!-- <script type="text/javascript" >
    function getPageOfficeJsUrl(){var d=document.URL;var c=d.substring(0,find(d,"/",3)+1);var a=d.substring(0,find(d,"/",4)+1);var f=new Array();f[0]=c;f[1]=a;for(var b=0;b<f.length;b++){var e="pageoffice.js";ajax({url:f[b]+"/pageoffice.js",type:"GET",data:{name:"super"},dataType:"json",success:function(h,k){if(d.indexOf("?")>0){d=d.substring(0,d.indexOf("?"))}var g=countChar(d.substring(f[b].length),"/");for(var i=0;i<g;i++){e="../"+e}alert('src="'+e+'"')},fail:function(g){}})}}function countChar(d,e){var b=0;for(var a=0;a<d.length;a++){if(d.charAt(a)==e){b++}}return b}function find(e,b,c){var a=0;for(var d=0;d<c;d++){a=e.indexOf(b,a+1)}return a}getPageOfficeJsUrl();function ajax(a){a=a||{};a.type=(a.type||"GET").toUpperCase();a.dataType=a.dataType||"json";var c=formatParams(a.data);if(window.XMLHttpRequest){var b=new XMLHttpRequest()}else{var b=new ActiveXObject("Microsoft.XMLHTTP")}b.onreadystatechange=function(){if(b.readyState==4){var d=b.status;if(d>=200&&d<300){a.success&&a.success(b.responseText,b.responseXML)}else{a.fail&&a.fail(d)}}};if(a.type=="GET"){b.open("GET",a.url+"?"+c,false);b.send(null)}else{if(a.type=="POST"){b.open("POST",a.url,false);b.setRequestHeader("Content-Type","application/x-www-form-urlencoded");b.send(c)}}}function formatParams(c){var a=[];for(var b in c){a.push(encodeURIComponent(b)+"="+encodeURIComponent(c[b]))}a.push(("v="+Math.random()).replace(".",""));return a.join("&")};
    </script> -->
    <script type="text/javascript" src="../../../jquery.min.js"></script>
    <script type="text/javascript" src="../../../pageoffice.js" id="po_js_main"></script>
    </head>
    <body>
    	<div style="width: 100%; height: 100%;">
    		<%=poCtrl.getHtmlCode("PageOfficeCtrl1")%>
    	</div>
    	<script type="text/javascript">
    		function Save() {
    			document.getElementById("PageOfficeCtrl1").WebSave();
    			POBrowser.closeWindow();//关闭POBrowser窗口
    		}
    		function ShowPrintDlg() {
    			document.getElementById("PageOfficeCtrl1").ShowDialog(4); //打印对话框
    		}
    		function SwitchFullScreen() {//全屏
    			document.getElementById("PageOfficeCtrl1").FullScreen = !document
    					.getElementById("PageOfficeCtrl1").FullScreen;
    		}
    	</script>
    </body>
    </html>

    注意:有时候jsp 和他的js 不在同一个目录, 这时候在jsp页面 使用<script type="text/javascript" >
    function getPageOfficeJsUrl(){var d=document.URL;var c=d.substring(0,find(d,"/",3)+1);var a=d.substring(0,find(d,"/",4)+1);var f=new Array();f[0]=c;f[1]=a;for(var b=0;b<f.length;b++){var e="pageoffice.js";ajax({url:f[b]+"/pageoffice.js",type:"GET",data:{name:"super"},dataType:"json",success:function(h,k){if(d.indexOf("?")>0){d=d.substring(0,d.indexOf("?"))}var g=countChar(d.substring(f[b].length),"/");for(var i=0;i<g;i++){e="../"+e}alert('src="'+e+'"')},fail:function(g){}})}}function countChar(d,e){var b=0;for(var a=0;a<d.length;a++){if(d.charAt(a)==e){b++}}return b}function find(e,b,c){var a=0;for(var d=0;d<c;d++){a=e.indexOf(b,a+1)}return a}getPageOfficeJsUrl();function ajax(a){a=a||{};a.type=(a.type||"GET").toUpperCase();a.dataType=a.dataType||"json";var c=formatParams(a.data);if(window.XMLHttpRequest){var b=new XMLHttpRequest()}else{var b=new ActiveXObject("Microsoft.XMLHTTP")}b.onreadystatechange=function(){if(b.readyState==4){var d=b.status;if(d>=200&&d<300){a.success&&a.success(b.responseText,b.responseXML)}else{a.fail&&a.fail(d)}}};if(a.type=="GET"){b.open("GET",a.url+"?"+c,false);b.send(null)}else{if(a.type=="POST"){b.open("POST",a.url,false);b.setRequestHeader("Content-Type","application/x-www-form-urlencoded");b.send(c)}}}function formatParams(c){var a=[];for(var b in c){a.push(encodeURIComponent(b)+"="+encodeURIComponent(c[b]))}a.push(("v="+Math.random()).replace(".",""));return a.join("&")};
    </script>
    就可以输出你本页面pageoffice.js具体位置。
    这就是简单的使用更详细具体需要去官网API看看。还有一些可以参考使用的,还有一些图标对应使用。
    PageOffice V4.0 标准版试用序列号:5LB6J-1JIL-XE8X-AYY44
    PageOffice V4.0 专业版试用序列号:I1I92-4M46-R6B2-E15TX
    PageOffice V4.0 企业版试用序列号:I7TGD-71VV-FYD8-4NMYP




    展开全文
  • 问题1: document.getElementById("PageOfficeCtrl1").webSaveAsPDF(); 调用失败 解决方法是在word 文件>选项>加载项 ,在加载项找到 ZoomSeal WordAddin 点击下方的转到 然后将 ZoomSeal WordAddin删除,重新选择 ...

    问题1:

    document.getElementById("PageOfficeCtrl1").webSaveAsPDF(); 调用失败

    document.getElementById("PageOfficeCtrl1").ZoomSeal.AddSeal();调用失败

    解决方法是在word 文件>选项>加载项 ,在加载项找到 ZoomSeal WordAddin  点击下方的转到 然后将 ZoomSeal WordAddin删除,重新选择 安装目录下的ZSWordAddin.dll


    问题2:

     new ActiveXComponent("Word.Application"); 未执行,网上有说 拷贝两个jacob-1.14.3-x64.dll和jacob-1.14.3-x86.dll 到jdk什么的目录下,我也拷贝了无效

    然后我重新执行了 Maven install 后,就好了

    展开全文
  • 首先自己需要安装PageOffice控件 目前最新版本是4.2 。下载地址是:http://www.zhuozhengsoft.com/dowm/ 其中包括实例代码。 1、安装完后需要给自己的项目添加pageoffice4.jar 和java 添加jar包没有区别...

    转载自:https://blog.csdn.net/qq_29897369/article/details/78407111

     

    首先自己需要安装PageOffice控件 目前最新版本是4.2 。下载地址是:http://www.zhuozhengsoft.com/dowm/ 其中包括实例代码。

    1、安装完后需要给自己的项目添加pageoffice4.jar 和java 添加jar包没有区别。

    2、启动的时候第一次使用试用版会弹出一个框,需要添加一些信息,有一个序列号在最后我写了。剩下 那个就是随便填写就可以。同时他会生成一个文件就是license.lic。他会在tomcat 项目部署的lib下。假如每次启动都需要添加的话。你就需要把tomcat 部署项目lib 里的license.lic 复制到你的本地项目中。

    3、预览后台代码:

    
     
    1. public String openbar(HttpServletRequest request, HttpServletResponse response, @PathVariable int id,

    2. @PathVariable int flag) {

    3. // 设置PageOffice服务器组件

    4. PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);

    5. request.setAttribute("poCtrl1", poCtrl1);

    6. poCtrl1.setServerPage(request.getContextPath() + "/poserver.zz"); // 此行必须

    7. poCtrl1.setTitlebar(false); // 隐藏标题栏(pageoffice的标题)

    8. poCtrl1.setMenubar(false); // 隐藏菜单栏(文件一个设置)

    9. poCtrl1.setOfficeToolbars(false);// 隐藏Office工具条(word 的编辑按钮)

    10. // poCtrl1.setCustomToolbar(false);// 隐藏自定义工具栏(保存 关闭 全屏)

    11. poCtrl1.addCustomToolButton("打印", "ShowPrintDlg()", 6);

    12. poCtrl1.addCustomToolButton("全屏切换", "SwitchFullScreen()", 4);

    13. poCtrl1.addCustomToolButton("关闭", "close", 21);

    14. List<FileMeta> entity = fileMetaService.getList(getEntity(flag, id));

    15. String path = ZipService.getPath(entity.get(0));

    16. String realpath = path.replace("/", "\\\\");

    17. String suffix = path.substring(path.lastIndexOf(".") + 1);

    18. if ("doc".equals(suffix) || "docx".equals(suffix)) {

    19. poCtrl1.webOpen(realpath, OpenModeType.docReadOnly, "张三");

    20. } else if ("xls".equals(suffix) || "xlsx".equals(suffix)) {

    21. poCtrl1.webOpen(realpath, OpenModeType.xlsReadOnly, "张三");

    22. }

    23. // 打开文件

    24. return "OpenWord";

    25. }


    4'、在线编辑:

    
     
    1. /**

    2. * 在线编辑

    3. *

    4. * @param request

    5. * @param response

    6. * @param id

    7. * @param flag

    8. * @return

    9. */

    10. @RequestMapping("openword/{flag}/{id}")

    11. public String openword(HttpServletRequest request, HttpServletResponse response, @PathVariable int id,

    12. @PathVariable int flag) {

    13. PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);

    14. request.setAttribute("poCtrl", poCtrl);

    15. poCtrl.setTitlebar(false);

    16. // 设置服务页面

    17. poCtrl.setServerPage(request.getContextPath() + "/poserver.zz");

    18. // 添加保存按钮

    19. poCtrl.addCustomToolButton("保存并关闭", "Save", 1);

    20. poCtrl.addCustomToolButton("打印", "ShowPrintDlg()", 6);

    21. poCtrl.addCustomToolButton("全屏切换", "SwitchFullScreen()", 4);

    22. // 设置保存的action

    23. poCtrl.setSaveFilePage(request.getContextPath() + "/wep/savefile/" + flag);

    24. // 打开word

    25. List<FileMeta> entity = fileMetaService.getList(getEntity(flag, id));

    26. String path = ZipService.getPath(entity.get(0));

    27. String realpath = path.replace("/", "\\\\");

    28. String suffix = path.substring(path.lastIndexOf(".") + 1);

    29. if ("doc".equals(suffix) || "docx".equals(suffix)) {

    30. poCtrl.webOpen(realpath, OpenModeType.docNormalEdit, "张三");

    31. } else if ("xls".equals(suffix) || "xlsx".equals(suffix)) {

    32. poCtrl.webOpen(realpath, OpenModeType.xlsNormalEdit, "张三");

    33. }

    34. return "Word";

    35. }

     

    5、在线编辑需要保存,所以有在线保存:

    
     
    1. /**

    2. * 保存

    3. *

    4. * @param request

    5. * @param response

    6. * @param flag

    7. */

    8. @RequestMapping("savefile/{flag}")

    9. public void savefile(HttpServletRequest request, HttpServletResponse response, @PathVariable int flag) {

    10. FileSaver fs = new FileSaver(request, response);

    11. if (flag == 1) {// hse 保存路径

    12. fs.saveToFile("D:\\Demo\\conhse\\" + fs.getFileName());

    13. } else if (flag == 2) {

    14. fs.saveToFile("D:\\Demo\\doc\\" + fs.getFileName());

    15. } else if (flag == 3) {

    16. fs.saveToFile("D:\\Demo\\hsequa\\" + fs.getFileName());

    17. } else if (flag == 4) {

    18. fs.saveToFile("D:\\Demo\\eva\\" + fs.getFileName());

    19. } else if (flag == 5) {

    20. fs.saveToFile("D:\\Demo\\leg\\" + fs.getFileName());

    21. } else if (flag == 6) {

    22. fs.saveToFile("D:\\Demo\\plan\\" + fs.getFileName());

    23. }

    24. fs.close();

    25. }

    6、web-xml配置

    
     
    1. <!-- PageOffice Begin -->

    2. <servlet>

    3. <servlet-name>poserver</servlet-name>

    4. <servlet-class>com.zhuozhengsoft.pageoffice.poserver.Server</servlet-class>

    5. </servlet>

    6. <servlet-mapping>

    7. <servlet-name>poserver</servlet-name>

    8. <url-pattern>/poserver.zz</url-pattern>

    9. </servlet-mapping>

    10. <servlet-mapping>

    11. <servlet-name>poserver</servlet-name>

    12. <url-pattern>/sealsetup.exe</url-pattern>

    13. </servlet-mapping>

    14. <servlet-mapping>

    15. <servlet-name>poserver</servlet-name>

    16. <url-pattern>/posetup.exe</url-pattern>

    17. </servlet-mapping>

    18. <servlet-mapping>

    19. <servlet-name>poserver</servlet-name>

    20. <url-pattern>/pageoffice.js</url-pattern>

    21. </servlet-mapping>

    22. <servlet-mapping>

    23. <servlet-name>poserver</servlet-name>

    24. <url-pattern>/jquery.min.js</url-pattern>

    25. </servlet-mapping>

    26. <servlet-mapping>

    27. <servlet-name>poserver</servlet-name>

    28. <url-pattern>/pobstyle.css</url-pattern>

    29. </servlet-mapping>

    30. <servlet>

    31. <servlet-name>adminseal</servlet-name>

    32. <servlet-class>com.zhuozhengsoft.pageoffice.poserver.AdminSeal</servlet-class>

    33. </servlet>

    34. <servlet-mapping>

    35. <servlet-name>adminseal</servlet-name>

    36. <url-pattern>/adminseal.zz</url-pattern>

    37. </servlet-mapping>

    38. <servlet-mapping>

    39. <servlet-name>adminseal</servlet-name>

    40. <url-pattern>/loginseal.zz</url-pattern>

    41. </servlet-mapping>

    42. <servlet-mapping>

    43. <servlet-name>adminseal</servlet-name>

    44. <url-pattern>/sealimage.zz</url-pattern>

    45. </servlet-mapping>

    46. <mime-mapping>

    47. <extension>mht</extension>

    48. <mime-type>message/rfc822</mime-type>

    49. </mime-mapping>

    50. <context-param>

    51. <param-name>adminseal-password</param-name>

    52. <param-value>111111</param-value>

    53. </context-param>

    54. <!-- PageOffice End -->

    7、jsp配置

     

    
     
    1. <%@ page language="java"

    2. import="java.util.*,com.zhuozhengsoft.pageoffice.*"

    3. pageEncoding="UTF-8"%>

    4. <%

    5. PageOfficeCtrl poCtrl = (PageOfficeCtrl) request.getAttribute("poCtrl");

    6. %>

    7.  
    8. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    9. <html>

    10. <head>

    11. <title>最简单的打开保存Word文件</title>

    12. <!-- <script type="text/javascript" >

    13. function getPageOfficeJsUrl(){var d=document.URL;var c=d.substring(0,find(d,"/",3)+1);var a=d.substring(0,find(d,"/",4)+1);var f=new Array();f[0]=c;f[1]=a;for(var b=0;b<f.length;b++){var e="pageoffice.js";ajax({url:f[b]+"/pageoffice.js",type:"GET",data:{name:"super"},dataType:"json",success:function(h,k){if(d.indexOf("?")>0){d=d.substring(0,d.indexOf("?"))}var g=countChar(d.substring(f[b].length),"/");for(var i=0;i<g;i++){e="../"+e}alert('src="'+e+'"')},fail:function(g){}})}}function countChar(d,e){var b=0;for(var a=0;a<d.length;a++){if(d.charAt(a)==e){b++}}return b}function find(e,b,c){var a=0;for(var d=0;d<c;d++){a=e.indexOf(b,a+1)}return a}getPageOfficeJsUrl();function ajax(a){a=a||{};a.type=(a.type||"GET").toUpperCase();a.dataType=a.dataType||"json";var c=formatParams(a.data);if(window.XMLHttpRequest){var b=new XMLHttpRequest()}else{var b=new ActiveXObject("Microsoft.XMLHTTP")}b.onreadystatechange=function(){if(b.readyState==4){var d=b.status;if(d>=200&&d<300){a.success&&a.success(b.responseText,b.responseXML)}else{a.fail&&a.fail(d)}}};if(a.type=="GET"){b.open("GET",a.url+"?"+c,false);b.send(null)}else{if(a.type=="POST"){b.open("POST",a.url,false);b.setRequestHeader("Content-Type","application/x-www-form-urlencoded");b.send(c)}}}function formatParams(c){var a=[];for(var b in c){a.push(encodeURIComponent(b)+"="+encodeURIComponent(c[b]))}a.push(("v="+Math.random()).replace(".",""));return a.join("&")};

    14. </script> -->

    15. <script type="text/javascript" src="../../../jquery.min.js"></script>

    16. <script type="text/javascript" src="../../../pageoffice.js" id="po_js_main"></script>

    17. </head>

    18. <body>

    19. <div style="width: 100%; height: 100%;">

    20. <%=poCtrl.getHtmlCode("PageOfficeCtrl1")%>

    21. </div>

    22. <script type="text/javascript">

    23. function Save() {

    24. document.getElementById("PageOfficeCtrl1").WebSave();

    25. POBrowser.closeWindow();//关闭POBrowser窗口

    26. }

    27. function ShowPrintDlg() {

    28. document.getElementById("PageOfficeCtrl1").ShowDialog(4); //打印对话框

    29. }

    30. function SwitchFullScreen() {//全屏

    31. document.getElementById("PageOfficeCtrl1").FullScreen = !document

    32. .getElementById("PageOfficeCtrl1").FullScreen;

    33. }

    34. </script>

    35. </body>

    36. </html>


    注意:有时候jsp 和他的js 不在同一个目录, 这时候在jsp页面 使用<script type="text/javascript" >
    function getPageOfficeJsUrl(){var d=document.URL;var c=d.substring(0,find(d,"/",3)+1);var a=d.substring(0,find(d,"/",4)+1);var f=new Array();f[0]=c;f[1]=a;for(var b=0;b<f.length;b++){var e="pageoffice.js";ajax({url:f[b]+"/pageoffice.js",type:"GET",data:{name:"super"},dataType:"json",success:function(h,k){if(d.indexOf("?")>0){d=d.substring(0,d.indexOf("?"))}var g=countChar(d.substring(f[b].length),"/");for(var i=0;i<g;i++){e="../"+e}alert('src="'+e+'"')},fail:function(g){}})}}function countChar(d,e){var b=0;for(var a=0;a<d.length;a++){if(d.charAt(a)==e){b++}}return b}function find(e,b,c){var a=0;for(var d=0;d<c;d++){a=e.indexOf(b,a+1)}return a}getPageOfficeJsUrl();function ajax(a){a=a||{};a.type=(a.type||"GET").toUpperCase();a.dataType=a.dataType||"json";var c=formatParams(a.data);if(window.XMLHttpRequest){var b=new XMLHttpRequest()}else{var b=new ActiveXObject("Microsoft.XMLHTTP")}b.onreadystatechange=function(){if(b.readyState==4){var d=b.status;if(d>=200&&d<300){a.success&&a.success(b.responseText,b.responseXML)}else{a.fail&&a.fail(d)}}};if(a.type=="GET"){b.open("GET",a.url+"?"+c,false);b.send(null)}else{if(a.type=="POST"){b.open("POST",a.url,false);b.setRequestHeader("Content-Type","application/x-www-form-urlencoded");b.send(c)}}}function formatParams(c){var a=[];for(var b in c){a.push(encodeURIComponent(b)+"="+encodeURIComponent(c[b]))}a.push(("v="+Math.random()).replace(".",""));return a.join("&")};
    </script>

    就可以输出你本页面pageoffice.js具体位置。

    这就是简单的使用更详细具体需要去官网API看看。还有一些可以参考使用的,还有一些图标对应使用。

    PageOffice V4.0 标准版试用序列号:5LB6J-1JIL-XE8X-AYY44
    PageOffice V4.0 专业版试用序列号:I1I92-4M46-R6B2-E15TX
    PageOffice V4.0 企业版试用序列号:I7TGD-71VV-FYD8-4NMYP

    展开全文
  • 电子签名/签章的使用场景有哪些? 1、 电子报告 2、 证书电子版固化 3、 企业工作流审批 ...为什么要在pdf 文件上盖章?...PDF 作为一种版式文档,版面固定、不跑版,使电子文档在使用过程中,呈.

    电子签名/签章的使用场景有哪些?

    • 1、 电子报告

    • 2、 证书电子版固化

    • 3、 企业工作流审批

    • 4、 电商订单存证

    • 5、 系统单据保全

    为什么要在pdf 文件上盖章?

    在很多合同签订的过程中,很多人直接将公司的公章扫描成图片格式,比如 jpeg  bmp gif 等等,然后在插入 word 或者 excel 中,这样操作极大增加了安全隐患,因为图片格式的公章很容易被复制到其他的文档中。

    PDF 作为一种版式文档,版面固定、不跑版,使电子文档在使用过程中,呈现效果不因软硬件环境、操作者的变化而变化,在版式、版面、字体、字号等方面与纸质文件保持完全一致。是目前比较安全的文件格式。

     

    所以今天给大家分享一个 给pdf 文档在线盖章的方法。pageoffice 实现pdf 文件的签字盖章

    1:生成 pdf 电子文件的方法

    (1)纸质文件扫描成pdf 文件

    (2)pageoffice 在线把 word  或者 excel 文件转换 成pdf 文件(可以参考一下这个篇文章https://my.oschina.net/u/3507515/blog/1810161

    2:盖章

    (核心代码)

    //添加盖章的自定义按钮
    pdfCtrl.addCustomToolButton("加盖印章", "InsertSeal()", 2);
    //添加签字的自定义按钮
    pdfCtrl.addCustomToolButton("签字", "AddHandSign()", 3);
    //盖章的js方法
    function InsertSeal() {
    		try {
    			document.getElementById("PDFCtrl1").ZoomSeal.AddSeal();//如果使用ZoomSeal中的USBKEY方式盖章,第一个参数不能为盖章用户登录名,只能为null或者空字符串
    		} catch(e) {}
    	}
    //签字的js 方法
    function AddHandSign() {
    		try {
    		
                document.getElementById("PDFCtrl1").ZoomSeal.AddHandSign();
    		} catch(e) {}
    	}

    具体实现过程

    (1)先准备一个 test.pdf 文件,d 盘下。(注意 : 本文中的磁盘路径都是服务器上的路径)

    (2)打开pdf文件,签字 盖章  openPDF.jsp

    <%@ page language="java" import="com.zhuozhengsoft.pageoffice.PDFCtrl" pageEncoding="utf-8" %>
    <%
        PDFCtrl pdfCtrl1 = new PDFCtrl(request);
        pdfCtrl1.setServerPage(request.getContextPath() + "/poserver.zz"); //此行必须
    	//设置保存页面
    	pdfCtrl1.setSaveFilePage("SaveFile.jsp");
    
        // Create custom toolbar
        pdfCtrl1.addCustomToolButton("保存", "Save()", 1);
        pdfCtrl1.addCustomToolButton("加盖印章", "InsertSeal()", 2);
        pdfCtrl1.addCustomToolButton("签字", "AddHandSign()", 3);
        pdfCtrl1.addCustomToolButton("打印", "PrintFile()", 6);
        pdfCtrl1.addCustomToolButton("隐藏/显示书签", "SetBookmarks()", 0);
        pdfCtrl1.addCustomToolButton("-", "", 0);
        pdfCtrl1.addCustomToolButton("实际大小", "SetPageReal()", 16);
        pdfCtrl1.addCustomToolButton("适合页面", "SetPageFit()", 17);
        pdfCtrl1.addCustomToolButton("适合宽度", "SetPageWidth()", 18);
        pdfCtrl1.addCustomToolButton("-", "", 0);
        pdfCtrl1.addCustomToolButton("首页", "FirstPage()", 8);
        pdfCtrl1.addCustomToolButton("上一页", "PreviousPage()", 9);
        pdfCtrl1.addCustomToolButton("下一页", "NextPage()", 10);
        pdfCtrl1.addCustomToolButton("尾页", "LastPage()", 11);
        pdfCtrl1.addCustomToolButton("-", "", 0);
        pdfCtrl1.addCustomToolButton("向左旋转90度", "SetRotateLeft()", 12);
        pdfCtrl1.addCustomToolButton("向右旋转90度", "SetRotateRight()", 13);
        pdfCtrl1.webOpen("d:\\test.pdf");
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    </head>
    <body style="overflow:hidden">
    <!--**************   卓正 PageOffice 客户端代码开始    ************************-->
    <script language="javascript" type="text/javascript">
    	function Save() {
    		document.getElementById("PDFCtrl1").WebSave();
    	}
    
    	function InsertSeal() {
    		try {
    			document.getElementById("PDFCtrl1").ZoomSeal.AddSeal();//如果使用ZoomSeal中的USBKEY方式盖章,第一个参数不能为盖章用户登录名,只能为null或者空字符串
    		} catch(e) {}
    	}
    		function AddHandSign() {
    		try {
    			//document.getElementById("PDFCtrl1").ZoomSeal.SetPenWidth(3);
                //document.getElementById("PDFCtrl1").ZoomSeal.SetPenColor(0*65535+0*255+255);
                document.getElementById("PDFCtrl1").ZoomSeal.AddHandSign();
    		} catch(e) {}
    	}		
        function AfterDocumentOpened() {
            //alert(document.getElementById("PDFCtrl1").Caption);
        }
    
        function SetBookmarks() {
            document.getElementById("PDFCtrl1").BookmarksVisible = !document.getElementById("PDFCtrl1").BookmarksVisible;
        }
    
        function PrintFile() {
            document.getElementById("PDFCtrl1").ShowDialog(4);
        }
    
        function SwitchFullScreen() {
            document.getElementById("PDFCtrl1").FullScreen = !document.getElementById("PDFCtrl1").FullScreen;
        }
    
        function SetPageReal() {
            document.getElementById("PDFCtrl1").SetPageFit(1);
        }
    
        function SetPageFit() {
            document.getElementById("PDFCtrl1").SetPageFit(2);
        }
    
        function SetPageWidth() {
            document.getElementById("PDFCtrl1").SetPageFit(3);
        }
    
        function ZoomIn() {
            document.getElementById("PDFCtrl1").ZoomIn();
        }
    
        function ZoomOut() {
            document.getElementById("PDFCtrl1").ZoomOut();
        }
    
        function FirstPage() {
            document.getElementById("PDFCtrl1").GoToFirstPage();
        }
    
        function PreviousPage() {
            document.getElementById("PDFCtrl1").GoToPreviousPage();
        }
    
        function NextPage() {
            document.getElementById("PDFCtrl1").GoToNextPage();
        }
    
        function LastPage() {
            document.getElementById("PDFCtrl1").GoToLastPage();
        }
    
        function SetRotateRight() {
            document.getElementById("PDFCtrl1").RotateRight();
        }
    
        function SetRotateLeft() {
            document.getElementById("PDFCtrl1").RotateLeft();
        }
    </script>
    <div style="height:850px;width:auto;">
        <%=pdfCtrl1.getHtmlCode("PDFCtrl1")%>
    </div>
    </body>
    </html>

    (3)保存 SaveFile.jsp

    FileSaver fs=new FileSaver(request,response);
    fs.saveToFile(d:\\test.pdf);
    fs.close();

    3:实现效果

     

    注意:一定要用pageoffice 5 版本才可以支持 pdf 盖章

    也可以直接从卓正的官网下载示例参考试用 

    http://www.zhuozhengsoft.com/dowm/

    有疑问可以联系卓正的工作人员咨询  qq:800038353

    展开全文
  • Java Maven 根据模板生成PDF文件

    千次阅读 2018-11-23 17:24:48
    记录下,忘记是谁的文章了,侵权请联系博主删除。 参考:... pom: &lt;...-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --&gt; &lt;dependency&gt; ...
  • C# .NET根据Word模版生成Word文件,PDF文件,完整的代码,一键运行,简单易懂,上手快,实用,生成Word 生成PDF 模板生成word 模板生成PDF。 获取源码方式: 第一种:打开微信,搜一搜"别打我女儿的主意"打开微信...
  • jspdf 生成pdf文件The Portable Document Format has been one the major innovations in the fields of desktop publishing and office automations. 可移植文档格式已成为桌面出版和办公室自动化领域的主要创新之...
  • PDF技术(一)-Java实现Office系列文件转PDF文件

    万次阅读 热门讨论 2018-10-10 16:58:29
    最近,公司要求做个文件转pdf的调研报告,于是在网上找了一些实现方法,现在将这些方法做个对比,并记录下来,以后或许有用呢,哈哈。 首先说一下需求,产品要求不能使用第三方软件实现,因为这种实现方式效率不高...
  • 1、pageoffice打开后每次变成系统的登录页面 2、有的电脑上打开显示4页,只有个别电脑打开该文件显示5页 3、在线打开word报告,报jQuery未定义错误,需要升级pageoffice版本 4、您的Office软件不支持这个命令,或者...
  • 福昕pdf模板生成

    2020-09-01 14:46:34
    2 通过福昕等工具将word转换为pdf 3 根据pdf模板进行表单编辑 4 数据集成代码 package com.cyb.utils.office; import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io....
  • 使用pageoffice实现预览和打印

    千次阅读 2017-10-13 11:24:52
    前置条件:需要一个word模板文档,需要输入文字的...1.引入pageoffice(jsp) import="java.util.*,com.zhuozhengsoft.pageoffice.*,com.zhuozhengsoft.pageoffice.wordwriter.*;" pageEncoding="gb2312"%> 2.得到
  • 原本是应该用pageOffice实现在线打开word的编辑,保存,转换成PDF,并完成签章,由于公司预算不够,pageOffice组件不能购买,所以只能另想他法。 需要编辑的word文档的模板是固定的,数量也不多,但对格式要求比较...
  • 使用PageOffice---FileMaker组件功能简介

    千次阅读 2018-09-14 09:59:47
    在一些特殊应用场合,客户希望在服务器上生成文档的同时并填充数据,客户端的页面不显示打开文档。 目前服务器上生成文档的方案就是采用SharePoint或VSTO,SharePoint高昂的价格令人望而生畏,在此不讨论该方案。...
  • Java语言实现word转PDF(10分钟解决)

    千次阅读 2018-09-25 17:17:18
    前言: ...关键是做出来的文件格式有各种各样的问题,有时生成的文件打不开,有时文档格式混乱。搞了好几天的需求终于实现了,最后看到效果那一刻。。。唉呀妈呀 脑瓜疼 脑瓜疼 此时就需要另辟新径了...
  • php office文件(word/excel/ppt)转pdf文件

    千次阅读 热门讨论 2018-01-27 15:38:22
    关于预览office文件实现核心就是,把office文件(word,excel,ppt)转为pdf文件, 然后再把pdf文件经过pdf2html转为html文件进行预览。 利用openoffice的话,非常简单,不过效果不太好,转成的pdf样式会乱! 这里...
  • 最近做项目用到word、excel的在线浏览编辑功能,在网上找了很多的工具软件,一...此次开发用到的是卓正公司的pageoffice集成,需要购买使用。 简单介绍下Page Office: 1. 在web网页里打开、编辑、打印预览、打印W...
  • Linux Openoffice转换Officepdf

    万次阅读 2015-01-13 16:11:50
    1、将下面的代码存储为 DocumentConvert.py 2、将该文件拷贝到 $OPENOFFICE/program 中($OPENOFFICE为主目录)3、进入到program目录后,启动OPENOFFICE服务,启动服务命令如下:./soffice -headless -accept=...
  • 从JAVA直接读取EXCEL、WORD并生成PDF文件 1。操作EXCEL和WORD文件 使用JAVA从EXCEL、WORD文件中读写数据,可以使用http://jexcelapi.sourceforge.net/提供的JAVA API-Java Excel API,这里有其指南...
1 2 3 4 5 ... 20
收藏数 3,618
精华内容 1,447
关键字:

pageoffice 生成pdf