PDF页面倒序

今天遇到一个问题,把项目资料扫描电子版归档,扫描完后发现某个资料排序是从最新到最旧,想着如何倒序排列。尝试了几个常用的PDF阅读器,没发现类似的功能,于是尝试用python来实现。

import fitz  # PyMuPDF
import os
#定义函数
def reverse_pdf_order(input_pdf_path, output_pdf_path):
    source_pdf = fitz.open(input_pdf_path)  # 打开pdf
    reversed_pdf = fitz.open()  # 新建pdf

    # Iterate through the pages in reverse order
    for page_number in range(source_pdf.page_count - 1, -1, -1):
        # 插入页面
        reversed_pdf.insert_pdf(source_pdf, from_page=page_number, to_page=page_number)

    reversed_pdf.save(output_pdf_path)  # 保存生成的pdf
    source_pdf.close()  # 关闭输入pdf
    reversed_pdf.close()  # 关闭生成的pdf

folder = 'd:/Desktop/' #指定工作目录
os.chdir(folder)       #切换到工作目录
input = 'input.pdf'    #需要调整页面顺序的文件
reverse_pdf_order(input, 'reversed_' + input) #生成文件

当然,可以改造代码批量转换,就不多说了。

Homeassistant通过ILO RESTful API控制hp server开关

自从使用home assistant系统后,逐步将家中各种设备接入。先是窗帘、灯、空气净化器、空调等智能家居设备接入后,然后发现truenas、ILO、openwrt等设备也可以接入并控制。

根据老婆大人的指示,家里用电已经达到三阶了,要求我省电,服务器能关就关。为了响应老婆大人的号召,先是研究了truenas接入HA。

HACS安装Truenas插件,添加integration,配置ip,用户名和密码即可。最后可以通过call service即可完成Truenas的关闭。

前面的研究很顺利,但是如何自动开机就麻烦了。Truenas插件肯定不行,因为关机状态根本就不会运行,只能另想办法。

HP的server通过ILO可以控制开关机,因此研究接入ilo的方案。显示研究默认的ilo integration,发现只能监控服务器的状态。

后转而研究通过ssh连接ilo,发现那是多年前的帖子,ssh更新后,由于ilo的验证方式问题已经失效。

最后,发现还可以通过ilo的RESTful API进行控制,然后发现刚才的帖子最后竟然有人贴出了解决方案。这就教育我们看文章一定要看到最后!

先是两篇参考:

iLO 4 API: iLO RESTful API Data Model Reference (iLO 4) 5

RESTful Command: RESTful Command – Home Assistant 2

代码如下:

#RestAPI iLO start server
rest_command:
  server_poweron:
    url: "https://<IPADDRESS>/rest/v1/systems/1"
    method: POST
    headers:
      accept: "application/json"
    payload: '{"Action":"Reset","ResetType":"On"}'
    content_type:  'application/json; charset=utf-8'
    username: apiuser
    password: apipassword
    verify_ssl: false

在config.yaml中加入以上代码,重启后,调用restful api即可,也可以写成script,按时自动运行。可以按需调整代码,比如ResetType,可以改为ForceOff等。