如何在 Mac 上解决“pdftk:可执行文件中的 CPU 类型错误”?

Amr*_*ady 37 macos terminal pdftk

我想使用 pdftk 但我总是收到这个错误zsh: bad CPU type in executable: pdftk我重新安装了 pdftk 并且我将终端从 bsh 更改为 zsh,因为我在搜索如何解决此错误时发现但没有任何成功。我正在使用最新的 MacOS 版本“Catalina v10.15.4”

Ben*_*Ben 111

此版本的 pdftk 适用于 macOS Catalina (10.15)。

https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-2.02-mac_osx-10.11-setup.pkg

网站上的链接不是最新的。这意味着通过单击网站上的下载按钮,您将获得旧版本。

  • 也适用于 M1 上的 Big Sur (OSX 11)! (7认同)
  • M1 上的蒙特雷也适用 (6认同)
  • 确认,无需任何额外努力即可在 M1 上工作,只需照常运行“pdftk”命令即可。 (6认同)
  • 你现在是个男人了,狗。 (2认同)
  • 互联网为您带来的这个“为什么”时刻 (2认同)
  • 这有效(Intel 上的 Big Sur)。向作者发送电子邮件,要求他修复链接。 (2认同)

gat*_*ack 16

自制:

brew install pdftk-java
Run Code Online (Sandbox Code Playgroud)

https://formulae.brew.sh/formula/pdftk-java

与卡特琳娜、大苏尔兼容


小智 5

根据 Ben 的回答,下面是一个 bash 脚本,用于从其网站搜索最新的可用 PDFTK 版本:

#!/bin/bash

PDFTK_VERSION="2.02"
MACOS_VERSION_MAJOR_START="10"
MACOS_VERSION_MAJOR_END="12"
MACOS_VERSION_MINOR_START="0"
MACOS_VERSION_MINOR_END="20"
DOWNLOAD_URL="https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-PDFTK_VERSION-mac_osx-MACOS_VERSION_MAJOR.MACOS_VERSION_MINOR-setup.pkg"

# Check if we want debug mode or not
if [[ "$1" == "debug" ]]; then
    DEBUG="YES"
fi

# Function that check if a file exist with curl
check_url_exist() {
    http_code=$( curl --output /dev/null --silent --head --fail -w '%{http_code}' "$1" 2>/dev/null )
    if [[ "$http_code" == "200" ]]; then
        echo "YES"
    else
        echo "NO"
    fi
}

echo "INFO - Searching for PDFTK version $PDFTK_VERSION, from MacOS version $MACOS_VERSION_MAJOR_START.$MACOS_VERSION_MINOR_START to $MACOS_VERSION_MAJOR_END.$MACOS_VERSION_MINOR_END."

# Search for available versions
MAJOR="$MACOS_VERSION_MAJOR_START"
while [ $MAJOR -le $MACOS_VERSION_MAJOR_END ]; do
    MINOR="$MACOS_VERSION_MINOR_START"
    while [ $MINOR -le $MACOS_VERSION_MINOR_END ]; do
        THIS_DOWNLOAD_URL=$( echo "$DOWNLOAD_URL" | sed -e "s|PDFTK_VERSION|$PDFTK_VERSION|g" | sed -e "s|MACOS_VERSION_MAJOR|$MAJOR|g" | sed -e "s|MACOS_VERSION_MINOR|$MINOR|g" )
        if [[ $( check_url_exist "$THIS_DOWNLOAD_URL" ) == "YES" ]]; then
            echo "FOUND     - Found version ! PDFTK:$PDFTK_VERSION, MacOS:$MAJOR.$MINOR. URL: $THIS_DOWNLOAD_URL"
        elif [[ "$DEBUG" == "YES" ]]; then
            echo "NOT FOUND - PDFTK:$PDFTK_VERSION, MacOS:$MAJOR.$MINOR. URL: $THIS_DOWNLOAD_URL"
        fi
        MINOR=$(( MINOR + 1))
        sleep 0.2
    done
    MAJOR=$(( MAJOR + 1))
done
Run Code Online (Sandbox Code Playgroud)

截至 2022 年 10 月 15 日,结果为:

$ bash ./download_pdftk_mac.sh
INFO      - Searching for PDFTK version 2.02, from MacOS version 10.0 to 12.20.
FOUND     - Found version ! PDFTK:2.02, MacOS:10.6. URL: https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-2.02-mac_osx-10.6-setup.pkg
FOUND     - Found version ! PDFTK:2.02, MacOS:10.11. URL: https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk_server-2.02-mac_osx-10.11-setup.pkg
Run Code Online (Sandbox Code Playgroud)