PDF主要由Objects、File structure、Document structure、Content streams组成。其中Objects又细分为:

  • Boolean objects
  • Numeric objects
  • String objects
  • Name objects
  • Array objects
  • Dictionary objects
  • Stream objects
  • Null object
  • Indirect objects
    这篇博客主要是介绍一下Stream objects在PDF ISO标准文件中的信息以及itext core代码实现。
阅读全文 »

介绍

依赖于ffmpeg,允许传递起始时间、截图间隔、截图数量、视频文件地址等四个参数,其中时间单位为秒。

我在Linux Alpine中使用,可能部分依赖在其它Linux环境中会遇到问题,欢迎评论告知。

示例

1
2
3

sh snapshot.sh 600 800 6 Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265.mkv

你会得到六个文件,文件命名如下:

1
2
3
4
5
6
Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265_frame_001.jpg
Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265_frame_002.jpg
Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265_frame_003.jpg
Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265_frame_004.jpg
Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265_frame_005.jpg
Dune.Part.Two.2024.2160p.WEB-DL.DV.HDR10+.DDP5.1.Atmos.H265_frame_006.jpg

阅读全文 »

需求点分析

  1. 是否支持多类数据库以及脚本区分?
  2. 如何撤销变更?
  3. 版本是如何管理的?
  4. 费用问题?是否开源?开源协议是什么?
阅读全文 »

现象描述

正常启动服务时,突然遇到栈溢出异常,日志输出内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
java.lang.StackOverflowError: null
at org.springframework.data.util.TypeDiscoverer.createInfo(TypeDiscoverer.java:113) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.TypeDiscoverer.getSuperTypeInformation(TypeDiscoverer.java:443) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.ClassTypeInformation.getSuperTypeInformation(ClassTypeInformation.java:42) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.TypeDiscoverer.getSuperTypeInformation(TypeDiscoverer.java:449) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.ClassTypeInformation.getSuperTypeInformation(ClassTypeInformation.java:42) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.TypeDiscoverer.getSuperTypeInformation(TypeDiscoverer.java:449) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.ClassTypeInformation.getSuperTypeInformation(ClassTypeInformation.java:42) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.TypeDiscoverer.getSuperTypeInformation(TypeDiscoverer.java:449) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.ClassTypeInformation.getSuperTypeInformation(ClassTypeInformation.java:42) ~[spring-data-commons-2.5.1.jar:2.5.1]
at org.springframework.data.util.TypeDiscoverer.getSuperTypeInformation(TypeDiscoverer.java:449) ~[spring-data-commons-2.5.1.jar:2.5.1]
...
阅读全文 »

Windows查看快捷键占用程序

使用openark即可

实际并不是很准确,我就没找到占用Shift+F6的程序是哪个。

解决Windows平台 IDEA Shift+F6 快捷键冲突

实际是因为微软拼音输入法占用了,需要开启兼容模式

参考:微软拼音输入法占用Shift+F6快捷键

这个话题还是很有意思的,银行卡号有点类似于身份证号的设计。

银行卡的卡号长度及结构符合ISO 7812-1 有关规定,由13-19位数字表示,具体由以下几部分组成:

发卡行标识代码 自定义位 校验位
XXXXX X……X X

其中校验位是通过一个名为Luhn的校验算法得出的。

然而实际上一些商业银行不遵守这个规范,所以导致Luhn设计被废弃了,具体可以见这个Github Issue的讨论。

现在更推荐使用一些开放平台提供的API接口来实现,比如支付宝开放平台以及中国银联开放平台

中国银联开放平台有准入门槛,需要先申请,如果只是做银行卡是否有效的验证,不校验对应所有人身份信息的话可以直接用支付宝提供的接口。

接口请求示例:

1
curl "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo=银行卡卡号&cardBinCheck=true"

比如我们请求:

1
curl https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo=6214832018989180&cardBinCheck=true

我们可以拿到请求结果为:

1
2
3
4
5
6
7
8
{
cardType: "DC",
bank: "CMB",
key: "6214832018989180",
messages: [ ],
validated: true,
stat: "ok"
}

这里需要注意的是支付宝开放平台-文档中心:银行简码——混合渠道这篇文章是2015年所写的,一直也没有更新,只是个局部参考,如果真的要相对稳定的接口,还是建议使用中国银联开放平台。

注:

  1. 支付宝开放平台-文档中心:银行简码——混合渠道这篇文章是2015年所写的,一直也没有更新,只是个局部参考,如果真的要相对稳定的接口,还是建议使用中国银联开放平台;
  2. 支付宝的这个接口其实也支持其他卡组织的卡号校验(境外卡号我没有试过);

本文参考:

0%