办公 · 2023年 4月 26日 0

PDF

ImageMagick安装

sudo apt-get install imagemagick

图片修改

修改分辨率

可强制修改分辨率,注意数字之间是个小写的字母x,不是乘号

convert -resize 720x1280! in.jpg out720x1280.jpg

调整图像大小

缩减图像为原来的50%x50%,

convert -sample 50%x50% in.jpg out.jpg

压缩图像

压缩图像大小

convert antialias -quality 80 压缩质量为80%

裁剪

convert in.jpg -crop wxh+dx+dy out.jpg

通用格式转换

convert in.jpg  out.png
convert in.gif  out.bmp
convert -quality100-antialias -density96-transparent white -trim in.pdf out.png

图片转pdf

当图片转pdf出错时候参考最后一条

vim /etc/ImageMagick-6/policy.xml
<policy domain="coder" rights="none" pattern="PDF" />

change none to write

  • 将彩色图像 RGB 转换为灰度图像 Gray
convert color1.png -colorspace Gray gray1.png

批量格式转换与合并

for i in *.jpeg; do convert ii.pdf; done

pdfunite *.pdf merged.pdf

旋转图像

顺时针旋转270度

convert -rotate 270 in.jpg out.jpg

插入文字

convert -pointsize 28 -draw 'text 700,550 "1986" ' 1996.jpg bb.jpg

  • convert 可使用字体,查看

convert -list font | grep "Italic"

  • 然后,在图像的10,80 位置采用24磅的全黑Helvetica字体写上 Hello, World!

convert -fill black -pointsize 24 -font helvetica -draw 'text 10,80 "Hello, World!"' hello.png helloworld.png

  • 给图片添加标注

convert -font Ubuntu-Bold-Italic -pointsize 20 -draw "text 110 210 '(a)'" 2.png new2.png

拼接图像

多张图片拼图在一起

montage 1.png -geometry +0+20 new1.png

背景透明

convert 杨老师电子签名.jpg y.png
convert y.png -fuzz 10% -transparent white test.png

查看图片信息

identify 2.png

Ref

制作gif动画

convert -delay 80 *.jpg -loop 0 test.gif

  1. -delay 120 : The GIF animation speed (Ref
  2. -loop 0 : Infinite loops of the animation.

pdf 操作

生成目录(pdftk方法)

首先获取 pdf 文件结构

pdftk in.pdf dump_data output info

其中in.pdf是希望修改的pdf文件,info是自由指定的pdf文件结构输出文件,dump_data是pdftk的获取结构的指令,output是pdftk的输出到文件的指令。运行成功则生成info文件。

然后,输出添加目录后的pdf文件

pdftk in.pdf update_info info output out.pdf

命令中in.pdf是待修改的pdf源文件,info是我们准备好的pdf结构文件,out.pdf则是希望输出的pdf的文件名;update_info是pdftk更新pdf结构的指令。注意输出文件名不能和输入文件名重名,若希望原位修改则需要自己手动重命名了。

ref: ref

使用gs合并PDF文件并添加目录

gs -q sDEVICE=pdfwrite -dBATCH -sOUTPUTFILE=new.pdf -dNOPAUSE 博后01申请表.pdf 博后02进站审核表.pdf 博后03中期考核表.pdf 博后04工作期满审批表.pdf 博后05工作期满业务考核表.pdf 博后06出站考核表.pdf pdfmark

压缩 pdf

使用latex等生成pdf格式的文件时,若其中包含过多的高清图片,会导致PDF文件过大,不便于传输和存储。特别是论文投稿时候会对pdf大小有一定要求,这里介绍几种在linux平台下压缩PDF文件的工具.

Install on Debian/Ubuntu

sudo apt install ghostscript

Install on Archlinux

sudo pacman -S ghostscript

压缩命令

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/prepress -dNOPAUSE -dQUIET -dBATCH -sOutputFile=compressed_PDF_file.pdf input_PDF_file.pdf

在上面的命令中,您需要设置源文件和压缩后文件的正确路径。

  • /prepress(默认) 高质量 (300 dpi) 但文件较大
  • /ebook 中质量 (150 dpi) 适中的文件大小
  • /screen 低质量 (72 dpi) 但输出文件较小
    参考文献:insidentally
#!/bin/bash
if [ # -lt 2 ]; then
  echo "Usage: sh0 para1 para2"
  echo " "
  echo "e.g. : "
  echo "m.split.compress.pdf.sh out.pdf input.pdf"
  exit 1
fi

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=1 "2"
echo " "
echo "finish compressed as $1.pdf"

合并PDF(pdfunite方法)

pdfunitePoppler 提供的一个工具,一般系统都已经安装了 Poppler,所以这个工具在 Linux 下是很常见的。

pdfunite input1.pdf input2.pdf input3.pdf output.pdf

合并PDF(cpdf命令行方法)

cpdf 全称是 Coherent PDF Command Line Tools,是一个强大的 PDF 处理工具。PDF 合并只是它的一个功能之一。

cpdf input1.pdf input2.pdf -o output.pdf

合并PDF(pdfjam方法)

如果你安装了 TeXLive,并且安装了 pdfpage 包,则其中包含了 pdfjam 工具。

pdfjam input1.pdf input2.pdf input3.pdf -o output.pdf

该命令的选项很多,可以通过 pdfjam --help 查看。

pdfjoinpdfjam 的一个封装,也可以直接使用: pdfjoin a.pdf b.pdf

专业的pdftk工具

  • 合并 PDF;
  • 分割 PDF 页面;
  • 旋转 PDF 页面;
  • PDF 带密码访问;
  • PDF 填加密码;
  • 用 X/FDF 填写 PDF 表格;
  • 从 PDF 表格中生成 PDF Data Stencils;
  • 加背景水印或前景印章;
  • 报告 PDF Metrics,书签和元数据;
  • 增加 / 更新 PDF 书签或元数据;
  • 给 PDF 页面或文档加附件;
  • 解压 PDF 附件;
  • 分解 PDF 文档为多个单页;
  • 解压缩和重压缩页面流;
  • 修复受损的 PDF 文档;

pdftk 是专门用于处理 PDF 文档的一套工具。在大多数发行版中都可以直接安装使用。

提取页面

提取1-15页为一个文件

pdftk input.pdf cat 1-15 output new.pdf

提取第1至3,第5,第6至10页,并合并为一个pdf文件

pdftk input.pdf cat 1-3 5 6-10 output combined.pdf

写成工具

#!/bin/bash
# 提取指定页码pdf
#
if [ # -lt 2 ]; then
  echo "Usage: sh0 para1 para2 para3" 
  echo "e.g. : sh 0 ori.pdf 4-12 out.pdf"
  exit 1
fi
pdftk1 cat 2 output3

合并页面

合并多个pdf为一个文件

pdftk input1.pdf input2.pdf input3.pdf cat output comined.pdf

按照通配符,合并大量PDF文件

pdftk *.pdf cat output combined.pdf

拆分页面

拆分PDF的每一页为一个新文件 并按照指定格式设定文件名

pdftk input.pdf burst output new_%d.pdf

将一个 PDF 文档分割成一页一个文档:

pdftk in.pdf burst

旋转pdf

按180°旋转所有页面

pdftk input.pdf cat 1-endsouth output output.pdf

顺时针90°旋转第三页,其他页不变

pdftk input.pdf cat 1-2 3east 4-end output output.pdf

加密pdf

pdftk secured.pdf input_pw foopass output unsecured.pdf

压缩 PDF

pdftk mydoc.pdf output mydoc.clear.pdf compress

参考文献:

  1. linux合并pdf
  2. pdftk 的选项很多,用法复杂,可以参考 PDF 合并和分割工具—PDFtk
  3. blog.kelu.org
  4. pdf工具pdftk主页 REF
  5. 中文使用1 REF
  6. 中文链接2 REF

参考文献:

  1. linux合并pdf
  2. pdftk 的选项很多,用法复杂,可以参考 PDF 合并和分割工具—PDFtk
  3. blog.kelu.org

pdf转图片

Pdftoppm是一个命令行工具,它可以将PDF文档页面转换为PNG等格式的图片。还可以指定图片的分辨率、比例和裁剪图片。

安装

sudo apt install poppler-utils 

将pdf转换为图片

pdftoppm -<image_format> <pdf_filename> <image_name>

pdftoppm -png La.pdf La

指定范围页面转图片

将文件 a.pdf 的第10页到第15页转换为PNG

pdftoppm -png -f 10 -l 15 a.pdf a

调整转换图片的DPI质量

Pdftoppm默认将PDF页面转换为DPI为150的图片。

如需要调整,使用参数选项 -rx-ry

pdftoppm -png -rx 300 -ry 300 file.pdf file

参考文献: ZHIHU

foxitreader

Downlaod from homepage

安装与卸载

mkdir tmp && mv FoxitReader.enu.setup.2.4.4.0911.x64.run.tar.gz tmp && cd tmp && tar -zxvf FoxitReader.enu.setup.2.4.4.0911.x64.run.tar.gz 
./FoxitReader.enu.setup.2.4.4.0911\(r057d814\).x64.run
# 卸载 foxitreader
% Double click the Uninstaller file in the Foxit Reader installation directory.
cd /home/u/opt/foxitsoftware/foxitreader
Thunar
% ./maintenancetool.sh 

修改

If you want to read all PDF files using adobe acrobat do the following changes,Edit the /etc/gnome/defaults.list file

sudo gedit /etc/gnome/defaults.list

Change the following line

application/pdf=evince.desktop

application/pdf=acroread.desktop

Also add the following lines in the end

application/fdf=acroread.desktop
application/xdp=acroread.desktop
application/xfdf=acroread.desktop
application/pdx=acroread.desktop
TOC