【最新已解决】预览preview软件无法保存PDF注释/保存失效/备注丢失的解决方法-MACOS

书接上回(预览preview软件无法保存PDF注释/保存失效/备注丢失的解决方法-MACOS_jiandongg的博客-CSDN博客),目前有了更好的解决方案(参考自为什么用苹果电脑自带预览编辑PDF文件并保存后,部分高亮和下划线会消失? - 知乎的Chris的回答)。

使用GITHUB上的GitHub - julihoh/pdf_annotation_fix: Fixes macOS Preview garbled annotations

工具。修复的原理是恢复pdf中错误的信息格式,意思是你的注释并没有“丢失”,而是macos识别错误读不出来了。他这里面有两个工具,一个是网页版可以临时帮你修复一个pdf,一个是本地的代码工具。我们这里介绍本地的代码工具。

1.从github上下载项目。macos需要安装rust环境,具体教程见他的github里,有链接,安装很简单。

2.将下载的项目放到macos的合适位置,便于经常访问。

3.编写repair.sh,放在这个项目的文件夹中。

4.在项目文件夹新建一个temp文件夹,便于存放临时文件。

repair.sh:

#!/bin/zsh
# macos please use zsh, or "echo $SHELL", to solve macos space path error.
# everything worked in you terminal must could work in your shell, using /bin/zsh PLEASE

# echo and run
set -x

date=$(date +%Y%m%d-%H%M%S)
filepath=$1
filename=$(basename $filepath)
extension="${filepath##*.}"
# echo $date
# echo $filepath
# echo $filename
# echo $extension

new_pdf_filename=$filename.$date.pdf

if [ $extension = "pdf" ]
then
	echo "right, is pdf"

	# copy pdf to our dir

	cp $filepath ./
	cargo run -- ./$filename ./$new_pdf_filename

	# replace old pdf
	cp ./$new_pdf_filename $filepath	

	# clean up cache
	mv ./$filename ./temp
	mv ./$new_pdf_filename ./temp
else
	echo "wrong"
fi

这个脚本的运行方式:

./repair.sh 你的破损的pdf的完整路径

这个脚本干的事情:判断你输入的路径是不是以.pdf结尾的,如果是的话,脚本会将pdf复制到程序路径,运行github程序生成一个修复完成的临时新pdf。直接将老的pdf替换为新的。将新旧pdf临时文件移动到temp文件夹。

脚本覆盖旧pdf的动作比较激进,会直接将原路径的pdf覆盖,文件名保持不变。

注:pdf文件的完整路径,在macos中,直接鼠标拖拽pdf到终端窗口里,就OK了

注:你的shell需要是zsh的,echo $SHELL查看确认

注:不必担心macos路径中的空格问题。不必担心rm命令,脚本中先判断了pdf后缀,另外采用了cp的覆盖方法。

MACOS改进修复这个BUG!!!@apple

猜你喜欢

转载自blog.csdn.net/q753698/article/details/132458107