头图

0.基础环境

类别:笔记本
型号:中国长城 UF712
硬件平台:飞腾处理器(ArmV8 指令集)
系统:银河麒麟操作系统 V10 SP1(2203)
关键词:
信创,麒麟系统,linux,PKS,银河麒麟,飞腾,arm64,arm,pdf,acrobat,pdf编辑

1. 需求背景

在银河麒麟系统(Linux生态下),acrobat pro 等专业的PDF编辑器都没有对应的版本。而官方应用市场的大部分还是不太好用, 有个别老牌的值得推荐,但也有收费。本文尝试对标acrobat pro为大家在银河麒麟系统下提供可以接受的功能。
仅仅是阅读的话,可以利用wps套件即可。本文重点是解决编辑,标签管理,多文件合并等问题。

2.桌面版本

2.1 福昕PDF编辑器(收费,可试用)

image.png
image.png
windows下,以前经常用,而且可以很方便的找到破解版本,这个Linux下要找到破解版本很难,只能交钱使用。本软件相对还是很优秀,满足大家的所有需求,除了要给钱。
image.png

2.2 libreoffice(免费,可用,桌面推荐)

libreoffice从openoffice的基础上建立,里面是完整的套件,对于pdf,实质使用的是libreoffice draw功能。
在应用市场安装
image.png
安装语言包
image.png
或者打开终端,输入

sudo apt-get install libreoffice-l10n-zh-cn -y #安装中文语言包,默认是英文的

使用libreoffice打开pdf文件进行编辑
image.png
image.png

功能全面,且详细,但界面和操作习惯需要适应。但目前的环境下,libreoffice是功能最强大,且免费稳定的pdf 编辑器。
image.png

2.3 Master PDF Editor for Linux

注:简单好用,但没有中文版,如果大家能激活好,这是在ARM64平台下首选推荐的。
https://code-industry.net/free-pdf-editor/#get
image.png
页面提供了arm64版本的二进制版本,解压即可运行
https://code-industry.net/public/master-pdf-editor-5.8.46-qt5...
image.png
下载后解压
image.png
运行后效果
image.png
windows版本有较多的pdf 破解keygen,大家可以找到对应版本的windows版本以及激活工具,再进行离线激活即可。
image.png
image.png
正版价格
image.png
附:windows下的破解版及相关工具,供参考
https://www.jb51.net/softs/616487.html

3.在线网页版本

桌面版本如果不想花时间适应,可以找一些专用的在线网站提供(前提是你的资料能上传,有些文件较为敏感的话,还是建议走桌面或移动版本)

3.1 PDF24 Tools

PDF24 Tools
免费且易于使用的在线PDF工具
https://tools.pdf24.org/zh/
image.png

4.PDF Guru

注:本软件由读者QQ群友批着狼皮的羊推荐
PDF Guru是一个通用型PDF文件处理工具,包含PDF合并、拆分、旋转、水印、加密、转换等20多项常用功能,完全开源,个人免费使用,界面简洁,简单易用。
图片.png
国内镜像:https://gitee.com/Kevin234/PDF-Guru
github: https://github.com/kevin2li/PDF-Guru/
图片.png
官方提供了windows和macos下的安装包,但Linux下没有找到,特别是没有找到我手上有的ARM64下的安装包。本人下面为大家编译一个可直接使用的二进制包,编译过程见接下来的内容,二进制包,请参见尾部群文件

4.1源代码下来

下载最新tag为1.1.3,克隆代码

git clone -b v1.1.3 https://gitee.com/Kevin234/PDF-Guru.git

4.2编译环境准备

安装go环境、node环境和python环境本文省略,具体过程请参见本专栏其他三篇文章
1.python:https://segmentfault.com/a/1190000043433666
2.go:https://segmentfault.com/a/1190000041984117
3.node:https://segmentfault.com/a/1190000041978634 node使用nvm切换至14

# 确认go安装成功
go version

# 确认GO的安装位置,如果你是不同位置就改成你对应的位置 "~/app/go/bin" 位于PATH环境变量中
echo "export PATH=$PATH:$HOME/app/go/bin" >> $HOME/.bashrc 
source $HOME/.bashrc
echo $PATH | grep go/bin

# 确认nodejs安装成功,node版本要求>=6 <15.0.0,使用nvm切至14,并使用npm install -g yarn 安装yarn
npm --version

4.3编译

cd PDF-Guru
ROOT=$(pwd)
go install github.com/wailsapp/wails/v2/cmd/wails@v2.8.0 #2.8.0是tag版本最新版本
go mod tidy

图片.png

# 安装前端依赖
cd ${ROOT}/frontend
nvm install v14.21.3 #安装前端所依赖的版本(9<x<15)
nvm use v14.21.3 #设置为当前NODE版本
npm i -g yarn #安装yarn工具
yarn install #下载前端工程依赖

图片.png

# 安装后端环境
cd ${ROOT}/thirdparty
pip install -r requirements.txt
pyinstaller -F -w pdf.py
mkdir ${ROOT}/build/bin

# 1) for darwin, linux
cp dist/pdf ocr.py convert.py ${ROOT}/build/bin

cd $ROOT
wails dev # 开发预览
wails build # 编译

将build/bin目录打包,运行PDF Guru即可
注:
1.如果执行wails dev出现错误,先确认文件存在,没存在touch wails.json,再进入项目根目录,重新执行

go install github.com/wailsapp/wails/v2/cmd/wails@v2.8.0 #v2.8.0是编译时能看到的最新版本TAG
go mod tidy

再执行wails dev,解决。(如果还没有,注意看是不是在个人主目录里面有一个go目录,复制并粘至你的go主目录.如果我安装在~/app/go,但wails编译后的cli在~/go,手动替换一下即可)
图片.png
图片.png
运行程序,打开浏览器,输入localhost:5173,进入软件界面。
2.如果编译或dev时,出现

Perhaps you should add the directory containing `webkit2gtk-4.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'webkit2gtk-4.0' found

则需要尝试

sudo apt-get install libwebkit2gtk-4.0-37 libwebkit2gtk-4.0-dev -y

图片.png

进入build/bin目录,运行./"PDF Guru"即可
图片.png

4.4可执行文件

请进入群里面找群文件获取,群文件下载后,解压后先看README,关键信息如下

  1. 修改bin/config.json里面的地址即你解压后的具体地址
  2. 安装依赖,

    sudo apt install libwebkit2gtk-4.0-dev #如果后面不能正常运行,可以使用命令行运行看报什么错,安装对应依赖。
  3. 执行
    双击PDF GURU可以直接运行本程序 或 打开命令行,进入bin/,输入

      ./"PDF Guru"

4.5额外安装(可选)

软件中大部分功能可直接使用,无需安装额外东西,但是部分功能如ocr相关功能等因打包进来会导致安装包太大,供有需要的用户自行安装依赖环境。需要额外安装的功能会在软件中用蓝色标签标注,如下:
图片.png
//todo,我先搞把王者,不然顶不住了。

5.Stirling-PDF(首推,功能完整强大)

本节内容同样适用x64硬件平台
基于java web实现的可私有部署的pdf工具,功能齐全,强大。
This is a robust, locally hosted web-based PDF manipulation tool using Docker. It enables you to carry out various operations on PDF files, including splitting, merging, converting, reorganizing, adding images, rotating, compressing, and more. This locally hosted web application has evolved to encompass a comprehensive set of features, addressing all your PDF requirements.
Stirling PDF does not initiate any outbound calls for record-keeping or tracking purposes.
https://github.com/Stirling-Tools/Stirling-PDF

5.1 功能特性

Page Operations

  • View and modify PDFs - View multi page PDFs with custom viewing sorting and searching. Plus on page edit features like annotate, draw and adding text and images. (Using PDF.js with Joxit and Liberation.Liberation fonts)
  • Full interactive GUI for merging/splitting/rotating/moving PDFs and their pages.
  • Merge multiple PDFs together into a single resultant file.
  • Split PDFs into multiple files at specified page numbers or extract all pages as individual files.
  • Reorganize PDF pages into different orders.
  • Rotate PDFs in 90-degree increments.
  • Remove pages.
  • Multi-page layout (Format PDFs into a multi-paged page).
  • Scale page contents size by set %.
  • Adjust Contrast.
  • Crop PDF.
  • Auto Split PDF (With physically scanned page dividers).
  • Extract page(s).
  • Convert PDF to a single page.

Conversion Operations

  • Convert PDFs to and from images.
  • Convert any common file to PDF (using LibreOffice).
  • Convert PDF to Word/Powerpoint/Others (using LibreOffice).
  • Convert HTML to PDF.
  • URL to PDF.
  • Markdown to PDF.

Security & Permissions

  • Add and remove passwords.
  • Change/set PDF Permissions.
  • Add watermark(s).
  • Certify/sign PDFs.
  • Sanitize PDFs.
  • Auto-redact text.

Other Operations

  • Add/Generate/Write signatures.
  • Repair PDFs.
  • Detect and remove blank pages.
  • Compare 2 PDFs and show differences in text.
  • Add images to PDFs.
  • Compress PDFs to decrease their filesize (Using OCRMyPDF).
  • Extract images from PDF.
  • Extract images from Scans.
  • Add page numbers.
  • Auto rename file by detecting PDF header text.
  • OCR on PDF (Using OCRMyPDF).
  • PDF/A conversion (Using OCRMyPDF).
  • Edit metadata.
  • Flatten PDFs.
  • Get all information on a PDF to view or export as JSON.

For a overview of the tasks and the technology each uses please view Endpoint-groups.md
Demo of the app is available here. username: demo, password: demo

image.png

5.1 docker方式

需要先准备好docker,具体参见https://segmentfault.com/a/1190000042448010
新建一个stirlingpdf.sh文件,输入下面的内容

#! /bin/bash
#-v参数第一个是本地目录,我用的是~/app/stirlingpdf
#-p 第一个本地端口,如果你本地这个端口不能用的话就换一个,我就用8888
#-it rm 代表停止后会删除容器
#--restart unless-stopped 代表有问题会自动重启
#--name stirling-pdf 容器名称,可以通过docker stop stirling-pdf手动停止,也可以通过
docker stop stirling-pdf #停止
docker rm stirling-pdf #删除
docker run  -d \
  -p 8888:8080 \
  -v ~/app/stirlingpdf:/usr/share/tessdata \
  -v ~/app/stirlingpdf/extraConfigs:/configs \
  -v ~/app/stirlingpdf/logs:/logs \
  -e DOCKER_ENABLE_SECURITY=false \
  -e INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false \
  -e LANGS=zh_CN \
  --restart unless-stopped \
  --name stirling-pdf \
  frooodle/s-pdf:latest

然后,给stirlingpdf.sh右击增加执行权限,理论上只要执行一次,如果出问题就需要了解docker命令把他停止。
image.png
如上图,第一次需要下载镜像,需要等待。
成功后(容器启动也需要分把中,可以多刷几下浏览器),在浏览器中输入地址localhost:8888,其中8888需要和执行docker命令映射的本地端口一致
image.png
占击右上角地球标记,切换到简体中文。
image.png
另一个可以使用自己建立compose文件,再通过docker compose命令执行,我就上面的那个(如果你闲东东多,你就新建一个stirlingpdf.sh贴进去)
docker compose 文件内容,仅供参考。

version: '3.3'
services:
  stirling-pdf:
    image: frooodle/s-pdf:latest
    ports:
      - '8080:8080'
    volumes:
      - /location/of/trainingData:/usr/share/tessdata #Required for extra OCR languages
      - /location/of/extraConfigs:/configs
#      - /location/of/customFiles:/customFiles/
#      - /location/of/logs:/logs/
    environment:
      - DOCKER_ENABLE_SECURITY=false
      - INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false
      - LANGS=zh_CN

5.2 二进制方式

进入 https://github.com/Stirling-Tools/Stirling-PDF/releases
image.png
下载jar包(QQ群文件中有提供),java环境可以sdkman安装,更详细参照https://segmentfault.com/a/1190000041968411
下载完成后,打开命令行

java -jar Stirling-PDF.jar

image.png
根据提示,上面jar包默认使用8080(得保证8080端口未被占用)
在浏览器中输入localhost:8080即可(服务启动有一定延时,多刷新等待)
image.png
可以占击右上角地球切换中文

6.pdfarranger

功能要求不多的话,这一款安装简单,可以装上用用,主要是合并、拆分、重新排序和旋转
PDF Arranger 是一款功能强大的 PDF 文件处理工具,旨在提供用户对 PDF 文档进行合并、拆分、重新排序和旋转等操作的便捷方式。
项目地址:https://github.com/pdfarranger/pdfarranger

6.1安装

通过snap安装最新版本

sudo snap install pdfarranger #截止20240525 版本是1.10.1

也可以直接通过官方应用市场安装版本是1.4(2021年编译的)

6.2使用

image.png

补充:x86硬件下的多余的选择

在x86下,多了一个开源免费的选择,麒麟官方可以努点力,将其编译成arm版本,或联系官方让其提供arm64版本。
https://www.onlyoffice.com/zh/download-desktop.aspx
image.png

麒麟系统专栏:
https://segmentfault.com/blog/kylinos
文章发表在SegmentFault
联系邮箱:1179611323@qq.com
群:662512340 文章中相关资料均可通过群文件获取或向群主请求协助
发行日志:
20220902 首发
20231020 增加强大的PDF处理工具PDF Guru
20240303 完善GO的位置说明;完善前端编译具体步骤
20240414 完善PDF GURU的具体运行方式
20240525 增加强大的stirling-pdf软件
20240525 增加pdf arranger工具


码上世界
74 声望275 粉丝

码农极客,2004年接触Linux世界。爱技术的IT的男