2015-06-02 12:48:49 myfmyfmyfmyf 阅读数 26844
  • 企业微信视频教程(Java标准版)

    企业微信教程有:“标准版”和“在线版”。正常的,学习“标准版”可以完成企业微信的相关开发。“在线版”是“一对一在线班讲解”,针对同学们项目遇到的问题,个性化定制课程大纲,解决具体问题。“一对一在线班讲解”报名,请qq2326321088 标准版主要讲解企业微信开发的关键技术,接收普通消息、回复普通消息、发送消息、网页授权、网页应用、JS-SDK,等知识点。 该课程适合有微信企业号、微信服务号基础或具有一定的C# web开发基础的学员。 “一对一在线班讲解”,在标准版知识结构的基础上,全面讲解企业微信的各个技术点,涵盖企业微信的全部内容,提供企业微信开发工具包。 此外,针对accesstoken缓存给出建议解决方案。讲解针对企业微信的OA项目开发。OA项目重点讲解企业微信的“同事吧”、“公告”、“打卡”、“日报”、“审批”等应用。 购买咨询课程,有技术问题,qq2326321088

    6800 人正在学习 去看看 翟东平

     最近开发微信企业号,发现微信andriod版内置浏览器在打开文件方面有问题,但是ios版没有问题,原因是ios版使用的是safari浏览器 支持文档直接打开,但是andriod版使用的是腾讯浏览器x5内核,不知道什么原因不支持,可能是集成出现的问题,这里提供解决方法,这种方法也同样适用手机浏览器或者安卓开发。通过此方法可以在微信上开发自己的第三方应用,或者解决自己的项目问题,解决方法及核心代码如下:

     1、判断浏览器类型

          HttpServletRequest req = ServletActionContext.getRequest();
          String userAgent=req.getHeader("User-Agent");//里面包含了设备类型

    2、IOS版直接使用流输出

         Andriod版利用openoffice+jod转换成html,然后对html内容重新编辑,文件中有图片的将路径改为网络路径或者采用流输出(改成网络路径注意特殊符号,如+号会变成空格)

 

/**
	 * 从OA上抓取文件
	 * author  muyunfei
	 * tel     15562579597
	 * qq      1147417467
	 * @return
	 */
	public String getFileFromOa(){	
		
		HttpServletRequest req = ServletActionContext.getRequest();
		String userAgent=req.getHeader("User-Agent");//里面包含了设备类型
		if(-1!=userAgent.indexOf("iPhone")){
			//-----------------//
			//此方法需要浏览器自己能够打开,ios可以但是微信andriod版内置浏览器不支持
			//-----------------//
			//如果是苹果手机
			//获得文件地址
			 String fileUrl = ServletActionContext.getRequest().getParameter("fileUrl");
			 fileUrl.replaceAll("%20", "\\+");//转换加号
			 String strURL = MessageUtil.oaUrl+fileUrl;
			 String fileType=strURL.substring(strURL.lastIndexOf(".")+1,strURL.length());
			//获得图片的数据流
			try {
				URL oaUrl = new URL(strURL);
				HttpURLConnection httpConn = (HttpURLConnection) oaUrl.openConnection();
				InputStream in = httpConn.getInputStream();
				//获取输出流
				HttpServletResponse response = ServletActionContext.getResponse();
				req.setCharacterEncoding("UTF-8");
				response.setCharacterEncoding("UTF-8");
				String name=fileUrl.substring(fileUrl.lastIndexOf("/")+1, fileUrl.length());
	
				response.setHeader("Content-Disposition",  
					                   "attachment;filename=" +  
					                		   new String( (name ).getBytes(),  
						                                "iso-8859-1"));
				if("doc".equals(fileType)||"docx".equals(fileType)){
					response.setContentType("application/msword");
				}else if("xls".equals(fileType)||"xlsx".equals(fileType)){
					response.setContentType("application/msexcel"); 
				}else{
					response.setContentType("application/"+fileType);
				}
				OutputStream out = response.getOutputStream();
				//输出图片信息
				byte[] bytes = new byte[1024];  
				int cnt=0;  
				while ((cnt=in.read(bytes,0,bytes.length)) != -1) {  
					out.write(bytes, 0, cnt);  
				}  
				out.flush();
				out.close();
				in.close();
	
			} catch (MalformedURLException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
			return null;
		}else{
			//如果非苹果手机,自己处理文档
			
			//获得文件地址
			String fileUrl = ServletActionContext.getRequest().getParameter("fileUrl");
						
			fileUrl.replaceAll("%2B", "\\+");//转换加号
			String strURL = MessageUtil.oaUrl+fileUrl;
			//在本地存放OA文件,然后转换成html,再对文档中的图片路径进行修改,最后输出到页面
			try {
				URL oaUrl = new URL(strURL);
				HttpURLConnection httpConn = (HttpURLConnection) oaUrl.openConnection();
				InputStream in = httpConn.getInputStream();
				//获取输出流
				HttpServletResponse response = ServletActionContext.getResponse();
				req.setCharacterEncoding("UTF-8");
				response.setCharacterEncoding("UTF-8");
				String name=fileUrl.substring(fileUrl.lastIndexOf("/")+1, fileUrl.length());
				
				//首先判断本地是否存在
				String path=req.getRealPath("");
				path=path.substring(0, path.lastIndexOf("\\")+1);
				File htmlFile=new File(path +  "OaFileToHtml\\"+name+".html");
				if(!htmlFile.exists()){
					//判断文件夹是否存在,创建文件夹
					String oaFilePath=path + "OaFile";//存放OA文档的文件夹路径;
					File oaFiles=new File(oaFilePath);
					if(!oaFiles.exists()){
						//如果文件夹不存在创建文件夹
						oaFiles.mkdirs();
					}
					//将OA消息存入本地
					File oafile=new File(oaFiles+ File.separator +name);
					OutputStream out = new FileOutputStream(oafile);
					//输出图片信息
					byte[] bytes = new byte[1024];  
					int cnt=0;  
					while ((cnt=in.read(bytes,0,bytes.length)) != -1) {  
						out.write(bytes, 0, cnt);  
					}  
					out.flush();
					out.close();
					in.close();
					//转换成html
					String htmlFilePath =path + "OaFileToHtml";//OA文件转成html的位置
					String htmlcontext=ConvertFileToHtml.toHtmlString(oafile, htmlFilePath);
					req.setAttribute("htmlcontext", htmlcontext);
				}else{
					//已经存在转换成功的文档
					StringBuffer htmlSb = new StringBuffer();
					try {
						BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(htmlFile),Charset.forName("gb2312")));
						while (br.ready()) {
							htmlSb.append(br.readLine());
						}
						br.close();
					} catch (FileNotFoundException e) {
						e.printStackTrace();
					} catch (IOException e) {
						e.printStackTrace();
					}
					// HTML文件字符串
					String htmlStr = htmlSb.toString();
					//System.out.println("htmlStr=" + htmlStr);
					// 返回经过清洁的html文本
					req.setAttribute("htmlcontext", ConvertFileToHtml.clearFormat(htmlStr, ""));
				}
				
			} catch (MalformedURLException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
			return "lookfile";
		}
		
	}


 

-------------------将word转换成html文件,并读取内容-------------------------

此类借鉴原地址并修改http://jadethao.iteye.com/blog/1817738

 

package com.muyunfei.wx.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ConnectException;
import java.nio.charset.Charset;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;

/**
 * * 端口启动命令:
 * soffice -headless -accept="socket,port=8100;urp;
 *
 * 
 * author  牟云飞
 * company 海颐软件股份有限公司
 * tel     15562579597
 * qq      1147417467
 * team    客服产品中心/于洋
 * 
 */
public class ConvertFileToHtml {
	/**
	 * 将word文档转换成html文档
	 * @param docFile   需要转换的word文档
	 * @param filepath  转换之后html的存放路径
	 * @return 转换之后的html文件
	 */
	public static File convert(File docFile, String filepath) {

		// 创建保存html的文件
		String fileName=docFile.getName();
		File htmlFile = new File(filepath + "/" + fileName + ".html");
		// 创建Openoffice连接
		OpenOfficeConnection con = new SocketOpenOfficeConnection(8100);
		try {
			// 连接
			con.connect();
		} catch (ConnectException e) {
			System.out.println("获取OpenOffice连接失败...");
			e.printStackTrace();
		}
		
		// 创建转换器
		DocumentConverter converter = new OpenOfficeDocumentConverter(con);
		// 转换文档问html
		converter.convert(docFile, htmlFile);
		// 关闭openoffice连接
		con.disconnect();
		return htmlFile;
	}

	/**
	 * 
	 * 将word转换成html文件,并且获取html文件代码。
	 * @param docFile  需要转换的文档
	 * @param filepath  文档中图片的保存位置
	 * @return 转换成功的html代码
	 */
	public static String toHtmlString(File docFile, String filepath) {
		// 转换word文档
		File htmlFile = convert(docFile, filepath);
		System.out.println(htmlFile.getAbsolutePath());
		// 获取html文件流
		StringBuffer htmlSb = new StringBuffer();
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(htmlFile),Charset.forName("gb2312")));
			while (br.ready()) {
				htmlSb.append(br.readLine());
			}
			br.close();
			// 删除临时文件
			//htmlFile.delete();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		// HTML文件字符串
		String htmlStr = htmlSb.toString();
		//System.out.println("htmlStr=" + htmlStr);
		// 返回经过清洁的html文本
		return clearFormat(htmlStr, filepath);
	}

	/**
	 * 
	 * 清除一些不需要的html标记
	*/

	public static String clearFormat(String htmlStr, String docImgPath) {

		// 获取body内容的正则
		String bodyReg = "<BODY .*</BODY>";
		Pattern bodyPattern = Pattern.compile(bodyReg);
		Matcher bodyMatcher = bodyPattern.matcher(htmlStr);
		if (bodyMatcher.find()) {
			// 获取BODY内容,并转化BODY标签为DIV
			htmlStr = bodyMatcher.group().replaceFirst("<BODY", "<DIV").replaceAll("</BODY>", "</DIV>");
		}

		// 调整图片地址,这里将图片路径改为网络路径
		
		htmlStr = htmlStr.replaceAll("<IMG SRC=\"../","<IMG SRC=\"" + MessageUtil.webUrl+"/******.do?action=***);
		//特殊处理一下+号,因为网络传输+会变成空格,用%2B替换+号
		String temp1=htmlStr.substring(htmlStr.indexOf("action=***"), htmlStr.length());
		String temp2=temp1.substring(0,temp1.indexOf("."));
		String temp3=temp2.replaceAll("\\+", "%2B");
		htmlStr=htmlStr.substring(0,htmlStr.indexOf("action=***"))+temp3+temp1.substring(temp1.indexOf("."), temp1.length());
		
		// 把<P></P>转换成</div></div>保留样式
		// content = content.replaceAll("(<P)([^>]*>.*?)(<\\/P>)",
		// "<div$2</div>");
		// 把<P></P>转换成</div></div>并删除样式
		htmlStr = htmlStr.replaceAll("(<P)([^>]*)(>.*?)(<\\/P>)", "<p$3</p>");
		// 删除不需要的标签
		htmlStr = htmlStr.replaceAll("<[/]?(font|FONT|span|SPAN|xml|XML|del|DEL|ins|INS|meta|META|[ovwxpOVWXP]:\\w+)[^>]*?>","");
		// 删除不需要的属性
		htmlStr = htmlStr.replaceAll("<([^>]*)(?:lang|LANG|class|CLASS|style|STYLE|size|SIZE|face|FACE|[ovwxpOVWXP]:\\w+)=(?:'[^']*'|\"\"[^\"\"]*\"\"|[^>]+)([^>]*)>","<$1$2>");

		return htmlStr;

	}
}


 

2016-02-22 15:17:00 weixin_33782386 阅读数 73
  • 企业微信视频教程(Java标准版)

    企业微信教程有:“标准版”和“在线版”。正常的,学习“标准版”可以完成企业微信的相关开发。“在线版”是“一对一在线班讲解”,针对同学们项目遇到的问题,个性化定制课程大纲,解决具体问题。“一对一在线班讲解”报名,请qq2326321088 标准版主要讲解企业微信开发的关键技术,接收普通消息、回复普通消息、发送消息、网页授权、网页应用、JS-SDK,等知识点。 该课程适合有微信企业号、微信服务号基础或具有一定的C# web开发基础的学员。 “一对一在线班讲解”,在标准版知识结构的基础上,全面讲解企业微信的各个技术点,涵盖企业微信的全部内容,提供企业微信开发工具包。 此外,针对accesstoken缓存给出建议解决方案。讲解针对企业微信的OA项目开发。OA项目重点讲解企业微信的“同事吧”、“公告”、“打卡”、“日报”、“审批”等应用。 购买咨询课程,有技术问题,qq2326321088

    6800 人正在学习 去看看 翟东平

     近期开发微信企业号,发现微信andriod版内置浏览器在打开文件方面有问题,可是ios版没有问题。原因是ios版使用的是safari浏览器 支持文档直接打开。可是andriod版使用的是腾讯浏览器x5内核。不知道什么原因不支持。可能是集成出现的问题,这里提供解决方法。这样的方法也相同适用手机浏览器或者安卓开发。

通过此方法能够在微信上开发自己的第三方应用。或者解决自己的项目问题,解决方法及核心代码例如以下:

     1、推断浏览器类型

          HttpServletRequest req = ServletActionContext.getRequest();
          String userAgent=req.getHeader("User-Agent");//里面包括了设备类型

    2、IOS版直接使用流输出

         Andriod版利用openoffice+jod转换成html,然后对html内容又一次编辑。文件里有图片的将路径改为网络路径或者採用流输出(改成网络路径注意特殊符号,如+号会变成空格)

 

/**
	 * 从OA上抓取文件
	 * author  牟云飞
	 * company 海颐软件股份有限公司
	 * tel     15562579597
	 * qq      1147417467
	 * team    客服产品中心/于洋
	 * @return
	 */
	public String getFileFromOa(){	
		
		HttpServletRequest req = ServletActionContext.getRequest();
		String userAgent=req.getHeader("User-Agent");//里面包括了设备类型
		if(-1!=userAgent.indexOf("iPhone")){
			//-----------------//
			//此方法须要浏览器自己可以打开。ios可以可是微信andriod版内置浏览器不支持
			//-----------------//
			//假设是苹果手机
			//获得文件地址
			 String fileUrl = ServletActionContext.getRequest().getParameter("fileUrl");
			 fileUrl.replaceAll("%20", "\\+");//转换加号
			 String strURL = MessageUtil.oaUrl+fileUrl;
			 String fileType=strURL.substring(strURL.lastIndexOf(".")+1,strURL.length());
			//获得图片的数据流
			try {
				URL oaUrl = new URL(strURL);
				HttpURLConnection httpConn = (HttpURLConnection) oaUrl.openConnection();
				InputStream in = httpConn.getInputStream();
				//获取输出流
				HttpServletResponse response = ServletActionContext.getResponse();
				req.setCharacterEncoding("UTF-8");
				response.setCharacterEncoding("UTF-8");
				String name=fileUrl.substring(fileUrl.lastIndexOf("/")+1, fileUrl.length());
	
				response.setHeader("Content-Disposition",  
					                   "attachment;filename=" +  
					                		   new String( (name ).getBytes(),  
						                                "iso-8859-1"));
				if("doc".equals(fileType)||"docx".equals(fileType)){
					response.setContentType("application/msword");
				}else if("xls".equals(fileType)||"xlsx".equals(fileType)){
					response.setContentType("application/msexcel"); 
				}else{
					response.setContentType("application/"+fileType);
				}
				OutputStream out = response.getOutputStream();
				//输出图片信息
				byte[] bytes = new byte[1024];  
				int cnt=0;  
				while ((cnt=in.read(bytes,0,bytes.length)) != -1) {  
					out.write(bytes, 0, cnt);  
				}  
				out.flush();
				out.close();
				in.close();
	
			} catch (MalformedURLException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
			return null;
		}else{
			//假设非苹果手机。自己处理文档
			
			//获得文件地址
			String fileUrl = ServletActionContext.getRequest().getParameter("fileUrl");
						
			fileUrl.replaceAll("%2B", "\\+");//转换加号
			String strURL = MessageUtil.oaUrl+fileUrl;
			//在本地存放OA文件,然后转换成html,再对文档中的图片路径进行改动,最后输出到页面
			try {
				URL oaUrl = new URL(strURL);
				HttpURLConnection httpConn = (HttpURLConnection) oaUrl.openConnection();
				InputStream in = httpConn.getInputStream();
				//获取输出流
				HttpServletResponse response = ServletActionContext.getResponse();
				req.setCharacterEncoding("UTF-8");
				response.setCharacterEncoding("UTF-8");
				String name=fileUrl.substring(fileUrl.lastIndexOf("/")+1, fileUrl.length());
				
				//首先推断本地是否存在
				String path=req.getRealPath("");
				path=path.substring(0, path.lastIndexOf("\\")+1);
				File htmlFile=new File(path +  "OaFileToHtml\\"+name+".html");
				if(!htmlFile.exists()){
					//推断目录是否存在。创建目录
					String oaFilePath=path + "OaFile";//存放OA文档的目录路径;
					File oaFiles=new File(oaFilePath);
					if(!oaFiles.exists()){
						//假设目录不存在创建目录
						oaFiles.mkdirs();
					}
					//将OA消息存入本地
					File oafile=new File(oaFiles+ File.separator +name);
					OutputStream out = new FileOutputStream(oafile);
					//输出图片信息
					byte[] bytes = new byte[1024];  
					int cnt=0;  
					while ((cnt=in.read(bytes,0,bytes.length)) != -1) {  
						out.write(bytes, 0, cnt);  
					}  
					out.flush();
					out.close();
					in.close();
					//转换成html
					String htmlFilePath =path + "OaFileToHtml";//OA文件转成html的位置
					String htmlcontext=ConvertFileToHtml.toHtmlString(oafile, htmlFilePath);
					req.setAttribute("htmlcontext", htmlcontext);
				}else{
					//已经存在转换成功的文档
					StringBuffer htmlSb = new StringBuffer();
					try {
						BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(htmlFile),Charset.forName("gb2312")));
						while (br.ready()) {
							htmlSb.append(br.readLine());
						}
						br.close();
					} catch (FileNotFoundException e) {
						e.printStackTrace();
					} catch (IOException e) {
						e.printStackTrace();
					}
					// HTML文件字符串
					String htmlStr = htmlSb.toString();
					//System.out.println("htmlStr=" + htmlStr);
					// 返回经过清洁的html文本
					req.setAttribute("htmlcontext", ConvertFileToHtml.clearFormat(htmlStr, ""));
				}
				
			} catch (MalformedURLException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
			return "lookfile";
		}
		
	}


 

-------------------将word转换成html文件,并读取内容-------------------------

此类借鉴原地址并改动http://jadethao.iteye.com/blog/1817738

 

package com.haiyisoft.wx.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ConnectException;
import java.nio.charset.Charset;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;

/**
 * * 端口启动命令:
 * soffice -headless -accept="socket,port=8100;urp;
 *
 * 
 * author  牟云飞
 * company 海颐软件股份有限公司
 * tel     15562579597
 * qq      1147417467
 * team    客服产品中心/于洋
 * 
 */
public class ConvertFileToHtml {
	/**
	 * 将word文档转换成html文档
	 * @param docFile   须要转换的word文档
	 * @param filepath  转换之后html的存放路径
	 * @return 转换之后的html文件
	 */
	public static File convert(File docFile, String filepath) {

		// 创建保存html的文件
		String fileName=docFile.getName();
		File htmlFile = new File(filepath + "/" + fileName + ".html");
		// 创建Openoffice连接
		OpenOfficeConnection con = new SocketOpenOfficeConnection(8100);
		try {
			// 连接
			con.connect();
		} catch (ConnectException e) {
			System.out.println("获取OpenOffice连接失败...");
			e.printStackTrace();
		}
		
		// 创建转换器
		DocumentConverter converter = new OpenOfficeDocumentConverter(con);
		// 转换文档问html
		converter.convert(docFile, htmlFile);
		// 关闭openoffice连接
		con.disconnect();
		return htmlFile;
	}

	/**
	 * 
	 * 将word转换成html文件,而且获取html文件代码。
	 * @param docFile  须要转换的文档
	 * @param filepath  文档中图片的保存位置
	 * @return 转换成功的html代码
	 */
	public static String toHtmlString(File docFile, String filepath) {
		// 转换word文档
		File htmlFile = convert(docFile, filepath);
		System.out.println(htmlFile.getAbsolutePath());
		// 获取html文件流
		StringBuffer htmlSb = new StringBuffer();
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(htmlFile),Charset.forName("gb2312")));
			while (br.ready()) {
				htmlSb.append(br.readLine());
			}
			br.close();
			// 删除暂时文件
			//htmlFile.delete();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		// HTML文件字符串
		String htmlStr = htmlSb.toString();
		//System.out.println("htmlStr=" + htmlStr);
		// 返回经过清洁的html文本
		return clearFormat(htmlStr, filepath);
	}

	/**
	 * 
	 * 清除一些不须要的html标记
	*/

	public static String clearFormat(String htmlStr, String docImgPath) {

		// 获取body内容的正则
		String bodyReg = "<BODY .*</BODY>";
		Pattern bodyPattern = Pattern.compile(bodyReg);
		Matcher bodyMatcher = bodyPattern.matcher(htmlStr);
		if (bodyMatcher.find()) {
			// 获取BODY内容,并转化BODY标签为DIV
			htmlStr = bodyMatcher.group().replaceFirst("<BODY", "<DIV").replaceAll("</BODY>", "</DIV>");
		}

		// 调整图片地址,这里将图片路径改为网络路径
		
		htmlStr = htmlStr.replaceAll("<IMG SRC=\"../","<IMG SRC=\"" + MessageUtil.webUrl+"/******.do?

action=***); //特殊处理一下+号。由于网络传输+会变成空格。用%2B替换+号 String temp1=htmlStr.substring(htmlStr.indexOf("action=***"), htmlStr.length()); String temp2=temp1.substring(0,temp1.indexOf(".")); String temp3=temp2.replaceAll("\\+", "%2B"); htmlStr=htmlStr.substring(0,htmlStr.indexOf("action=***"))+temp3+temp1.substring(temp1.indexOf("."), temp1.length()); // 把<P></P>转换成</div></div>保留样式 // content = content.replaceAll("(<P)([^>]*>.*?)(<\\/P>)", // "<div$2</div>"); // 把<P></P>转换成</div></div>并删除样式 htmlStr = htmlStr.replaceAll("(<P)([^>]*)(>.*?)(<\\/P>)", "<p$3</p>"); // 删除不须要的标签 htmlStr = htmlStr.replaceAll("<[/]?(font|FONT|span|SPAN|xml|XML|del|DEL|ins|INS|meta|META|[ovwxpOVWXP]:\\w+)[^>]*?

>",""); // 删除不须要的属性 htmlStr = htmlStr.replaceAll("<([^>]*)(?:lang|LANG|class|CLASS|style|STYLE|size|SIZE|face|FACE|[ovwxpOVWXP]:\\w+)=(?:'[^']*'|\"\"[^\"\"]*\"\"|[^>]+)([^>]*)>","<$1$2>"); return htmlStr; } }


 

2018-10-30 16:41:34 sexyluna 阅读数 3042
  • 企业微信视频教程(Java标准版)

    企业微信教程有:“标准版”和“在线版”。正常的,学习“标准版”可以完成企业微信的相关开发。“在线版”是“一对一在线班讲解”,针对同学们项目遇到的问题,个性化定制课程大纲,解决具体问题。“一对一在线班讲解”报名,请qq2326321088 标准版主要讲解企业微信开发的关键技术,接收普通消息、回复普通消息、发送消息、网页授权、网页应用、JS-SDK,等知识点。 该课程适合有微信企业号、微信服务号基础或具有一定的C# web开发基础的学员。 “一对一在线班讲解”,在标准版知识结构的基础上,全面讲解企业微信的各个技术点,涵盖企业微信的全部内容,提供企业微信开发工具包。 此外,针对accesstoken缓存给出建议解决方案。讲解针对企业微信的OA项目开发。OA项目重点讲解企业微信的“同事吧”、“公告”、“打卡”、“日报”、“审批”等应用。 购买咨询课程,有技术问题,qq2326321088

    6800 人正在学习 去看看 翟东平

性感的小君君软件安装教程

office2016安装与激活

  1. 下载office

  • office2016(32/64位)软件下载地址:
  • 链接:https://pan.baidu.com/s/1fehK21gJthptiLsG8VyF2g
  • 提取码:ew39
  • 安装中有问题咨询管家私人微信:1196586501
  • 如果链接失效,请关注微信公众号:性感的小君君

2.解压文件(有些小白用户没有解压工具,已经解压好了,省略这步)

  1. 打开解压之后的文件,点击office软件安装包

  1. 鼠标右击setup,选择以管理员的身份运行

  1. 软件正在进行安装,请耐心等待

  1. 安装完成,点击关闭

  1. 点击安装包里的office2016激活工具文件夹,鼠标右击office2016激活工具,选择以管理员的身份运行

  1. 点击永久体验windows和office正版

1540877955546

  1. 激活完成

    !

  2. 我们可以打开word2016,点击文件,账户,在产品信息中查看是否激活成功,激活成功如下图,显示为激活的产品

  1. 安装完成

    如果感觉对您有帮助,请把我分享给您的朋友。感谢您的支持!

2018-12-04 21:07:00 weixin_30289831 阅读数 331
  • 企业微信视频教程(Java标准版)

    企业微信教程有:“标准版”和“在线版”。正常的,学习“标准版”可以完成企业微信的相关开发。“在线版”是“一对一在线班讲解”,针对同学们项目遇到的问题,个性化定制课程大纲,解决具体问题。“一对一在线班讲解”报名,请qq2326321088 标准版主要讲解企业微信开发的关键技术,接收普通消息、回复普通消息、发送消息、网页授权、网页应用、JS-SDK,等知识点。 该课程适合有微信企业号、微信服务号基础或具有一定的C# web开发基础的学员。 “一对一在线班讲解”,在标准版知识结构的基础上,全面讲解企业微信的各个技术点,涵盖企业微信的全部内容,提供企业微信开发工具包。 此外,针对accesstoken缓存给出建议解决方案。讲解针对企业微信的OA项目开发。OA项目重点讲解企业微信的“同事吧”、“公告”、“打卡”、“日报”、“审批”等应用。 购买咨询课程,有技术问题,qq2326321088

    6800 人正在学习 去看看 翟东平

iOS 不能打开 `.doc` `.xls` `.ppt` 类型的文档

Android 皆可

微信官方论坛上某人的回复:

微信小程序的 接口wx.openDocument 支持打开office相关文件, 但是 IOS端不支持旧版 97-2003版的格式,

需要打开office文件的统一上传新版pptx, docx, xlsx格式的文件, 不要用ppt, doc, 和xls

转载于:https://www.cnblogs.com/yier0705/p/10066884.html

2019-06-16 23:23:44 weixin_40807402 阅读数 481
  • 企业微信视频教程(Java标准版)

    企业微信教程有:“标准版”和“在线版”。正常的,学习“标准版”可以完成企业微信的相关开发。“在线版”是“一对一在线班讲解”,针对同学们项目遇到的问题,个性化定制课程大纲,解决具体问题。“一对一在线班讲解”报名,请qq2326321088 标准版主要讲解企业微信开发的关键技术,接收普通消息、回复普通消息、发送消息、网页授权、网页应用、JS-SDK,等知识点。 该课程适合有微信企业号、微信服务号基础或具有一定的C# web开发基础的学员。 “一对一在线班讲解”,在标准版知识结构的基础上,全面讲解企业微信的各个技术点,涵盖企业微信的全部内容,提供企业微信开发工具包。 此外,针对accesstoken缓存给出建议解决方案。讲解针对企业微信的OA项目开发。OA项目重点讲解企业微信的“同事吧”、“公告”、“打卡”、“日报”、“审批”等应用。 购买咨询课程,有技术问题,qq2326321088

    6800 人正在学习 去看看 翟东平

介绍

最近项目有个需要,需要正在APP内在线阅读Office、PDF文件,要求不能下载、不能修改只能阅读。在查阅了相关的资料,主要参考该文章,发现Android实现解析Office文件有三种方式:

  1. 后台统一转换文档格式,安卓端只预览一种格式文档。
  2. 在安卓端完成文档转换
  3. 第三方付费产品中

本人选择了第一种方式实现:openoffice + jodconverter将office文档转换为pdf格式。具体方式百度很多教程。

Android 端实现

android端只要使用 PDFView 第三方库实现在线阅读,具体实现方式如下:

导入依赖

compile 'com.github.barteksc:android-pdf-viewer:3.1.0-beta.1'

核心代码

	       pdfView.fromStream(PDFIs)	// 已流的方式读取文件
                //.nightMode(true)   // 夜间模式
                //.enableAnnotationRendering(false)//呈现注释(例如注释,颜色或表单)
                /** 以下配置实现 ViewPage */
                .swipeHorizontal(true) //pdf文档翻页是否是垂直翻页,默认是左右滑动翻页
                .pageSnap(true)     ///捕捉页面到屏幕边界
                .autoSpacing(true)  //在屏幕上添加动态间距以适应每个页面
                .pageFling(true)    // 像viewPage 一样效果
                .enableSwipe(true)//是否允许翻页,默认是允许翻页
                .defaultPage(0) //开始页数
                .load();

注:3.1.0的依赖优化了像 ViewPage 一样翻页。

office2016咋用

阅读数 29

没有更多推荐了,返回首页