当前位置: 首页 > news >正文

企业网站建设合同书模板东莞招聘网站

企业网站建设合同书模板,东莞招聘网站,普通的旧房装修价格,中国软件邮箱登录入口需求 用户可以选择以长图的形式分享本网页 方法 wkhtmltopdf wkhtmltopdf url filewkhtmltoimage url file java Runtime.getRuntime().exec() 下载 直接去官网下载对应的版本#xff1a;官网 命令行使用WK wkhtmltopdf https://www.nowcoder.com /opt/project/…需求 用户可以选择以长图的形式分享本网页 方法 wkhtmltopdf wkhtmltopdf url filewkhtmltoimage url file java Runtime.getRuntime().exec() 下载 直接去官网下载对应的版本官网 命令行使用WK wkhtmltopdf https://www.nowcoder.com /opt/project/java/mycommunity-pdfs/1.pdf Loading pages (1/6) Counting pages (2/6) Resolving links (4/6) Loading headers and footers (5/6) Printing pages (6/6) Done wkhtmltoimage https://www.nowcoder.com /opt/project/java/mycommunity-images/1.png Loading page (1/2) Rendering (2/2) Done// 上面那条命令生成的长图太大了可以使用下面这条以75%的质量输出wkhtmltoimage --quality 75 https://www.nowcoder.com /opt/project/java/mycommunity-images/1.png Loading page (1/2) Rendering (2/2) Done在java中调用 application.properties mycommunity.path.domainhttp://localhost:8080 server.servlet.context-path/myCommunity # WK wk.image.command/usr/local/bin/wkhtmltoimage wk.image.storage/opt/project/java/mycommunity-images/WK配置类在每次程序开始运行时自动生成存放图像的文件夹 Configuration public class WkConfig {private static final Logger logger LoggerFactory.getLogger(WkConfig.class);Value(${wk.image.storage})private String wkImageStorage;PostConstructpublic void init(){// create the dic about WKimageFile file new File(wkImageStorage);if(!file.exists()){file.mkdir();logger.info(create the dictionary of WKimage: wkImageStorage);}} }调用WK的控制层因为生成长图比较耗时所以使用异步操作在用户操作时调用Kafka的生产者生成事件通知消费者 Controller public class ShareController implements CommunityConstant {private static final Logger logger LoggerFactory.getLogger(ShareController.class);Autowiredprivate EventProducer eventProducer;Value(${mycommunity.path.domain})private String domain;Value(${server.servlet.context-path})private String contextPath;Value(${wk.image.storage})private String wkImageStorage;GetMapping(path /share)ResponseBodypublic String share(String htmlUrl){// generate the file nameString fileName CommunityUtil.generateUUID();// Asynchronous generation long picEvent event new Event().setTopic(TOPIC_SHARE).setData(htmlUrl, htmlUrl).setData(fileName, fileName).setData(suffix, .png);eventProducer.fireEvent(event);MapString, Object map new HashMap();map.put(shareUrl, domain contextPath /share/image fileName);return CommunityUtil.getJSONString(0, null, map);}//GetMapping(path /share/image/{fileName})public void getShareImage(PathVariable(fileName) String fileName, HttpServletResponse response){if(StringUtils.isBlank(fileName)){throw new IllegalStateException(the file name cannot be blank);}response.setContentType(image/png);File file new File(wkImageStorage / fileName .png);try {OutputStream os response.getOutputStream();FileInputStream fis new FileInputStream(file);byte[] data new byte[1024];int len 0;while ((len fis.read(data)) ! -1) {os.write(data, 0, len);}} catch (IOException e) {logger.error(querty the long image failed: , e.getMessage());}} }Kafka的消费者定义如何消费生成长图的事件 Component public class EventConsumer implements CommunityConstant {Autowiredprivate static final Logger logger LoggerFactory.getLogger(EventConsumer.class);Value(${wk.image.storage})private String wkImageStorage;Value(${wk.image.command})private String wkImageCommand;KafkaListener(topics {TOPIC_SHARE})public void handleShareMessage(ConsumerRecord record) {if (record null || record.value() null) {logger.error(the content of the message is empty);return;}Event event JSONObject.parseObject(record.value().toString(), Event.class);if (event null) {logger.error(message format error);return;}String htmlUrl (String) event.getData().get(htmlUrl);String fileName (String) event.getData().get(fileName);String suffix (String) event.getData().get(suffix);String cmd wkImageCommand --quality 75 htmlUrl wkImageStorage / fileName suffix;try {Runtime.getRuntime().exec(cmd);logger.info(generate long image successfully: cmd);} catch (IOException e) {logger.info(generate long image fail: e.getMessage());}} }测试
http://www.pierceye.com/news/12229/

相关文章:

  • 工作站做网站如何用vs2010做网站
  • 微网站做的比较好哈尔滨百度网站排名
  • 网站推广的基本方法天津建设网投标网站
  • 别人建的网站怎么修改代码普陀网站建设哪家好
  • 网站建设的学习网站搭建修改收费依据
  • 有什么可以在线做数学题的网站制作免费企业宣传视频
  • 为什么做的网站要续费阜宁哪家专业做网站
  • 佛山专业的免费建站网站一键提交
  • 福建商城网站制作公司网站域名虚拟主机
  • 个人网站的设计与建设论文宿州物流网站建设
  • 南京app网站开发公司专业网站制作公司教程
  • 网站模板 html5嵌入字体的网站
  • 优惠活动制作网站装修公司加盟合作模式
  • 南乐网站建设电话如何制造公司网址
  • 网站上动画视频怎么做wordpress 添加产品
  • wordpress检查全站链接网站 的空间
  • 好的网站推荐下 感谢asp.net ftp发布网站
  • 免费wap建站的网址是什么了深圳工商注册核名查询系统
  • 建企业网站 硬件网站建设 淘宝运营
  • 宜昌本地网站广州做外贸网站公司
  • phpcms中的网站介绍页wordpress手机验证码
  • 怎样可以做网站站长百度ocpc如何优化
  • 织梦网站源码建设工程检测预约网站
  • 河北网站建设方案网站建设定制公司推荐
  • 分析网站规划建设目标国内最好的wordpress主题
  • 济南网站建设搜点网络营销推广方式有哪些
  • 龙海网站建设商务网站建设摘要
  • 郑州网站建设推广渠道海南建设网网站
  • 山西省建设厅网站企业管理小程序
  • 医院网站建设标书做班级网站代码