linux下使用imagemagick将PDF拆分为图片

PDF -> 拆分为图片

  • 工具: imagemagick (convert)
  • 安装: sudo apt install imagemagick
  • 配置: vi /etc/ImageMagick-6/policy.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policymap [
  <!ELEMENT policymap (policy)+>
  <!ATTLIST policymap xmlns CDATA #FIXED ''>
<!ELEMENT policy EMPTY>
<!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED
name NMTOKEN #IMPLIED pattern CDATA #IMPLIED rights NMTOKEN #IMPLIED
stealth NMTOKEN #IMPLIED value CDATA #IMPLIED>
]>
<!--
Configure ImageMagick policies.
Domains include system, delegate, coder, filter, path, or resource.
Rights include none, read, write, execute and all.  Use | to combine them,
    for example: "read | write" to permit read from, or write to, a path.

    Use a glob expression as a pattern.

    Suppose we do not want users to process MPEG video images:

    <policy domain="delegate" rights="none" pattern="mpeg:decode" />

    Here we do not want users reading images from HTTP:

    <policy domain="coder" rights="none" pattern="HTTP" />

    The /repository file system is restricted to read only.  We use a glob
    expression to match all paths that start with /repository:
<policy domain="path" rights="read" pattern="/repository/*" />
Lets prevent users from executing any image filters:
<policy domain="filter" rights="none" pattern="*" />
Any large image is cached to disk rather than memory:
<policy domain="resource" name="area" value="1GP"/>
Define arguments for the memory, map, area, width, height and disk resources
with SI prefixes (.e.g 100MB).  In addition, resource policies are maximums
    for each instance of ImageMagick (e.g. policy memory limit 1GB, -limit 2GB
    exceeds policy maximum so memory limit is 1GB).

    Rules are processed in order.  Here we want to restrict ImageMagick to only
    read or write a small subset of proven web-safe image types:

        <policy domain="delegate" rights="none" pattern="*" />
        <policy domain="filter" rights="none" pattern="*" />
        <policy domain="coder" rights="none" pattern="*" />
        <policy domain="coder" rights="read|write" pattern="{GIF,JPEG,PNG,WEBP}" />
-->
        <policymap>
        <!-- <policy domain="system" name="shred" value="2"/> -->
        <!-- <policy domain="system" name="precision" value="6"/> -->
        <!-- <policy domain="system" name="memory-map" value="anonymous"/> -->
        <!-- <policy domain="system" name="max-memory-request" value="256MiB"/> -->
        <!-- <policy domain="resource" name="temporary-path" value="/tmp"/> -->
        <policy domain="resource" name="memory" value="6GiB"/>
        <policy domain="resource" name="map" value="1GiB"/>
        <policy domain="resource" name="width" value="16KP"/>
        <policy domain="resource" name="height" value="16KP"/>
        <!-- <policy domain="resource" name="list-length" value="128"/> -->
        <policy domain="resource" name="area" value="256MB"/>
        <policy domain="resource" name="disk" value="3GiB"/>
        <!-- <policy domain="resource" name="file" value="768"/> -->
        <!-- <policy domain="resource" name="thread" value="4"/> -->
        <!-- <policy domain="resource" name="throttle" value="0"/> -->
        <!-- <policy domain="resource" name="time" value="3600"/> -->
        <!-- <policy domain="coder" rights="none" pattern="MVG" /> -->
        <!-- <fdiskpolicy domain="module" rights="none" pattern="{PS,PDF,XPS}" /> -->
        <!-- <policy domain="delegate" rights="none" pattern="HTTPS" /> -->
        <!-- <policy domain="path" rights="none" pattern="@*" /> -->
        <!-- <policy domain="cache" name="memory-map" value="anonymous"/> -->
        <!-- <policy domain="cache" name="synchronize" value="True"/> -->
        <!-- <policy domain="cache" name="shared-secret" value="passphrase" stealth="true"/> -->
        <!-- <policy domain="system" name="pixel-cache-memory" value="anonymous"/> -->
        <!-- <policy domain="system" name="shred" value="2"/> -->
        <!-- <policy domain="system" name="precision" value="6"/> -->
        <!-- not needed due to the need to use explicitly by mvg: -->
        <!-- <policy domain="delegate" rights="none" pattern="MVG" /> -->
        <!-- use curl -->
        <policy domain="delegate" rights="none" pattern="URL" />
        <policy domain="delegate" rights="none" pattern="HTTPS" />
        <policy domain="delegate" rights="none" pattern="HTTP" />
        <!-- in order to avoid to get image with password text -->
        <policy domain="path" rights="none" pattern="@*"/>
        <!-- disable ghostscript format types -->
        <policy domain="coder" rights="none" pattern="PS" />
        <policy domain="coder" rights="none" pattern="PS2" />
        <policy domain="coder" rights="none" pattern="PS3" />
        <policy domain="coder" rights="none" pattern="EPS" />
        <policy domain="coder" rights="read|write" pattern="PDF" />
        <policy domain="coder" rights="none" pattern="XPS" />
        </policymap>
  • 使用: convert -density 250 -quality 100 河北省2021年历史组合分数分布统计.pdf hb_nishi.jpg

  • density 200 : 图像每英寸面积内的像素点数,数值越高图片质量越高

  • quality 100 : 这个为转换图片时的压缩率,0-100之间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值