LuaLaTeX による PDF セキュリティ/暗号化

LuaLaTeX による PDF セキュリティ/暗号化

LuaLaTeXでPDFファイルを保護する(例えば、印刷/コピー/...アクセスを制御する)ことは可能でしょうか?サードパーティのソフトウェアを使用せずにのように翻訳または、pdf暗号化パッケージ。

少し古い役職コマンドで可能だと書かれています\specialが、その例では XeTeX を使用しており、LuaLaTeX でテストすると期待通りに動作しません。実際、LuaLaTeX に相当するものはおそらくないと言われています。

\special{pdf:encrypt ownerpw (abc) userpw (xyz) length 128 perm 2052}
\documentclass{article}
\begin{document}
This is a test.
\end{document}

次のような LuaLaTeX バックエンド プリミティブで可能でしょうか\pdfextension?

LuaLaTeX のみで可能な場合は、誰かが MWE を見せてくれるとありがたいです。

ありがとう、
デイブ

答え1

感謝翻訳者私はPDFファイルのセキュリティ保護/暗号化を自動化することができました。翻訳ドキュメンテーション) を LuaLaTeX 内で実行します。

PDFの後処理中にラップアップランフェーズでは、出力ディレクトリは Lua のパターン マッチングによって読み取られます。

local outdir = nil
for i = 0, #arg, 1 do
    if string.find(arg[i], "%-+output%-d[irectory]*%=?%s?") then
        outdir = string.gsub(arg[i], "%-+output%-d[irectory]*%=?%s?", "")
    end
end

注記: すべての引数形式がこれでカバーされているかどうかは正確には言えませんが、少なくとも翻訳者投稿しましたここ認識されます。

次に、必要な引数を指定して QPDF を実行します。

os.execute((outdir ~= nil and "cd " .. outdir .. " &&" or "") .. "qpdf " .. tex.jobname .. ".pdf --encrypt userpw ownerpw 256 --accessibility=y --assemble=y --extract=y --form=y --modify-other=y --print=full -- " .. tex.jobname .. "_secure.pdf")

フル MWE (Windows 10):

\documentclass{book}

\usepackage{luacode}

\begin{luacode}
    luatexbase.add_to_callback("wrapup_run", function()
        local outdir = nil
        for i = 0, #arg, 1 do
            if string.find(arg[i], "%-+output%-d[irectory]*%=?%s?") then
                outdir = string.gsub(arg[i], "%-+output%-d[irectory]*%=?%s?", "")
            end
        end
        os.execute((outdir ~= nil and "cd " .. outdir .. " &&" or "") .. "qpdf " .. tex.jobname .. ".pdf --encrypt userpw ownerpw 256 --accessibility=y --assemble=y --extract=y --form=y --modify-other=y --print=full -- " .. tex.jobname .. "_secure.pdf")
    end, "Callback to secure pdf")
\end{luacode}

\begin{document}
    Hello World!
\end{document}

関連情報