2021 12-03

PDFium 渲染

PDFium是Chromium的PDF渲染引擎,许可协议为BSD3-Clause。不同于Mozilla基于HTML5的PDF.js,PDFium是基于FoxitSoftware(福昕软件)的渲染代码,Google与其合作开源出的。 此外,QtPDF模块也选用了PDFium,可见QtWebEngine/QtPdf。 本文将介绍如何用PDFium实现一个简单的PDF阅读器,代码见:https://github.com/ikuokuo/pdfium-reader。 编译PDFium 使用预编译库:h

2021 12-03

Java 读取txt文件生成Word文档

本文将以Java程序代码为例介绍如何读取txt文件中的内容,生成Word文档。在编辑代码前,可参考如下代码环境进行配置: IntelliJIDEA FreeSpire.DocforJava Txt文档 导入Jar包 两种方法可在Java程序中导入jar文件 1.Maven仓库下载导入。 在pom.xml中配置如下: <repositories> <repository> <id>com.e-iceblue</id> <url>

2021 12-03

C++20协程实例:携程化的IOCP服务端/客户端

VC支持协程已经有一段时间了,之前一直想不明白协程的意义在哪里,前几天拉屎的时候突然灵光一闪: 以下是伪代码: taskserver(){ for(;;){ sock_contexts=co_awaitio.accept(); for(;;){ autobuf=co_awaitio.recv(s); if(!buf.length()) break; std::cout<<buf.data()<<std::endl; intn=co_awaitio.send(s,"收到

2021 12-03

也谈string.Join和StringBuilder的性能比较

前几天在园子里面看到一篇讲StringBuilder性能的文章。文章里面给出了一个测试用例,比较StringBuilder.AppendJoin和String.Join的性能。根据该测试结果,“对于这个操作,这两种方法的速度很接近,但StringBuilder.AppendJoin使用的内存明显较少”。据此,该文言之凿凿地指出,应该使用“StringBuilder.AppendJoin而不是String.Join”。 事实果真如此吗? 搜索一下就知道,StringBuilder采用的是先预分配缓

2021 12-03

从源码角度,带你研究什么是三级缓存

Java开发,总会遇到问三级缓存的。 看了很多文章,感觉不是很透彻。打算自己写一个自以为很详细的对三级缓存的理解。有图文。也有文字概括。受不了动图的可以看文字概括哦 进入正题: 在开发过程中会遇到循环依赖的问题。就跟下图一样 Spring在为此设计了三级缓存来解决以上依赖的问题 首先我们得知道三级缓存里面分别存的什么 一级缓存里存的是成品对象,实例化和初始化都完成了,我们的应用中使用的对象就是一级缓存中的 二级缓存中存的是半成品,用来解决对象创建过程中的循环依赖问题 三级缓存中存的

2021 12-03

C/C++ Qt StatusBar 底部状态栏应用

Qt窗体中默认会附加一个QstatusBar组件,状态栏组件位于主窗体的最下方,其作用是提供一个工具提示功能,当程序中有提示信息是可以动态的显示在这个区域内,状态栏组件内可以增加任何Qt中的通用组件,只需要通过addWidget函数动态追加即可引入到底部,底部状态栏在实际开发中应用非常普遍,以下代码是对该组件基本使用方法的总结。 首先我们通过new新增3个QLabel组件,并将该组件依次排列在底部状态栏内,实现代码如下所示: #include"mainwindow.h" #include"ui_

2021 12-03

【玩具】获取B站视频的音频片段

事情是这样的,我有个和社畜的社会地位不太相符的小爱好——听音乐剧。 基本上是在B站上点开视频听,不是不想在网易云或者QQ音乐听,只是在这些音乐软件上面,我想听的片段要不就收费,要不版本不是我喜欢的,要不干脆就找不到。 而且,一部音乐剧里面,总是有些片段我很喜欢,但是有些片段则没多大兴趣,如果在B站上面听,则总要听一遍这些不感兴趣的地方,这效率就很低了。 那么干脆就搞一个小工具吧!就放服务器上面,直接用接口去调用,然后把处理好的音频文件返回回来,这样也不用在本地下载整个视频然后自己手动切了,快捷又

2021 12-03

排序算法:堆排序的实现和时间复杂度分析

前置知识 堆排序是将数组看成了一个二叉树,并且是一个完全二叉树,再进行排序 所以得知道完全二叉树的一些性质:设完全二叉树的层次为k,完全二叉树的节点数量在两种情况之间 节点数量最大为2k -1,最后一层的节点是满的,有2k-1个节点 节点数量最小为2k-1,最后一层只有一个节点 除了最后一层外,第i层的节点数量永远是2i-1个。 以数组的下标当做节点的序号,即下标为i的元素对应二叉树的第i-1个节点,左右两个孩子的下标分别是(2*i+1)和(2*i+2) 数组下标从1开始的话,下

2021 12-03

同态加密实现数据隐私计算,能让你的小秘密更加秘密

摘要:同态加密作为实现数据隐私计算的关键技术,在云计算、区块链、隐私计算等领域均存在着广泛的应用需求和一些可行的应用方案。 本文分享自华为云社区《同态加密在联邦计算中的应用》,作者:生也有涯知也无涯。 1什么是同态加密 同态加密(Homomorphicencryption)是一种加密形式,它允许人们对密文进行特定形式的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样。换言之,这项技术令人们可以对加密的数据进行处理,得出正确的结果,而在整个处理过程中无需对数据进

2021 12-03

KEPServeEX 6与KepOPC中间件测试

KEPServeEX6可以组态服务器端和客户端连接很多PLC以及具有OPC服务器的设备,以下使用KEPServeEX6建立一个OPCUA服务器,然后使用KepOPC建立客户端来连接服务器做测试。 首先打开KEPServeEX6软件,在右下角状态栏中找到软件图标,然后在右键菜单中寻找OPCUA配置选项,点击进入后,在ServeEndPoints栏点击新建,定义一个端点,测试时,网络适配器栏选择了默认,其他没有测试。如下图(图片直接用的CSDN上的) 这里,安全策略中,仅勾选了无和Basic128