编辑1:

编辑1:

我编写了以下(可运行)程序,它创建了一个具有可调整的禁止访问权限的arara密码锁定程序:pdf

secure.yaml

!config
# GhostScript-ps2pdf password-security rule for arara
# version: 0.1b
# requires arara 3.0+
identifier: secure
name: Secure
command: <arara> @{program} -sOwnerPassword=@{ownerpw} -sUserPassword=@{userpw} -dEncryptionR=@{encryptionmethode} -dKeyLength=@{keylength} -dPermissions=@{permission} @{getBasename(file)}.pdf @{outputpath}@{getBasename(file)}@{nameaffix}.pdf
arguments:
- identifier: program
  flag: <arara> @{parameters.program}
  default: ps2pdf
- identifier: ownerpw
  flag: <arara> @{parameters.ownerpw}
  default: aaa
- identifier: userpw
  flag: <arara> @{parameters.userpw}
  default: bbb
- identifier: encryptionmethode
  flag: <arara> @{parameters.encryptionmethode}
  default: 3
- identifier: keylength
  flag: <arara> @{parameters.keylength}
  default: 128
- identifier: permission
  flag: <arara> @{parameters.permission}
  default: 0
- identifier: nameaffix
  flag: <arara> @{parameters.nameaffix}
  default: _sec
- identifier: outputpath
  flag: <arara> @{parameters.outputpath}
  default: C:\Secret\

我想改变最后两个identifier

1. 问题“ nameaffix

如果不使用-Option,则默认ouputpath会在同一个工作文件夹中创建一个文件。jobname_sec.pdf

我想要一个像这样的选项%arara: secure: {nameaffix: false},这样就会生成一个“安全”文件jobname.pdf,这意味着“不安全”的文件将被“覆盖”。


编辑1:

所以,我觉得第一个问题不是问题,因为:

% arara: pdflatex
% #arara: secure: { userpw: foo } 
% #arara: secure: { userpw: foo , nameaffix: -mostsecret } 
% #arara: secure: { userpw: foo , nameaffix: "" }

% in this order:
% <"nothing">  yields: jobname_sec.pdf, the default
% <nameaffix: -mostsecret> yields jobname-mostsecret.pdf
% <nameaffix: "">  yields jobname.pdf; but a different outputpath is needed!!!

\documentclass{article}       
\begin{document}
\section{My very secret Text}
......
\end{document}

2. 问题“ outputpath

我怎样才能将此选项作为纯可选参数?这意味着: %arara: secure: {...}如果有 ... outputpath: C:/...声明后,将使用相同的工作文件夹来写入“安全”文件。

我希望我已经解释了我的问题,让您容易理解;)感谢您的阅读和关注。


编辑2:

对于第二个问题,我的想法是这样的:

- identifier: outputpath
  flag: <arara> @{parameters.outputpath}
  default: <arara> @{ getDirname(file) }

是需要的。但这可能并不完全正确,因为:

在这种情况下

% #arara: secure: { userpw: foo , outputpath: \SecrectDocuments\TodaysSecretDocuments } 

使用了“outputpath”(里面有一个正确的文件)。

但:

在这种情况下

% arara: secure: { userpw: foo } 

这意味着,如果没有,则在工作文件夹中创建了outputpath一个名为的文件。我怎样才能删除这个前缀'nulljobname_sec.pdf无效的“?


PS:也欢迎提出改进建议/想法!

备注:我忘了,为了测试 arara-secure,使用以下 MWE 例如:

% arara: pdflatex
% arara: secure: { userpw: foo , permission: 0 } 

\documentclass{article}       
\begin{document}
\section{My very secret Text}
......
\end{document}

答案1

很抱歉,我搜索的东西并不是真正需要的。

它的效果正如预期,我喜欢它,我喜欢 arara - 我希望你也喜欢 :()

请注意那个非常微小的变化。

!config
# GhostScript-ps2pdf password-security rule for arara
# version: 0.2b
# requires arara 3.0+
identifier: secure
name: Secure
command: <arara> @{program} -sOwnerPassword=@{ownerpw} -sUserPassword=@{userpw} -dEncryptionR=@{encryptionmethode} -dKeyLength=@{keylength} -dPermissions=@{permission} "@{getBasename(file)}.pdf" "@{outputpath}@{outputfilename}@{nameaffix}.pdf"
arguments:
- identifier: program
  flag: <arara> @{parameters.program}
  default: ps2pdf
- identifier: ownerpw
  flag: <arara> @{parameters.ownerpw}
  default: aaa
- identifier: userpw
  flag: <arara> @{parameters.userpw}
  default: bbb
- identifier: encryptionmethode
  flag: <arara> @{parameters.encryptionmethode}
  default: 3
- identifier: keylength
  flag: <arara> @{parameters.keylength}
  default: 128
- identifier: permission
  flag: <arara> @{parameters.permission}
  default: 0
- identifier: outputpath
  flag: <arara> @{parameters.outputpath}
- identifier: outputfilename
  flag: <arara> @{parameters.outputfilename}
  default: <arara> @{getBasename(file)}
- identifier: nameaffix
  flag: <arara> @{parameters.nameaffix}
  default: _sec

(请更改您自己的 userpw 和 ownpw 的默认值;))

用法:

%#########################################
%##### %arara: secure ##########################
%#########################################
%# PARAMETERS:
%# See   http://svn.ghostscript.com/ghostscript/trunk/gs/doc/Ps2pdf.htm
%# for further informations.
%
%# program: ps2pdf      (by default)
%
%# ownerpw: <OwnerPasswort>
%#  aaa     (by default)
%
%# userpw: <UserPasswort>
%#  bbb (by default)
%
%# encryptionmethode: <number>
%# 2 or 3 (default)
%
%# keylength: <number>
%: 40, 48, ... , 128 (default)
%
%# permission: <number>
%# => The sum of following numbers ---> allows
%# 0 ----------> all rights prohibited  (default)
%# 4    --> printing
%# 8    --> modifying
%# 16   --> copying contents
%# 32   --> adding / changing text annotations
%# 256  --> filling in (existing) formulary fields 
%# 512  --> extracting text / graphics
%# 1024 --> assembling the document
%# 2048 --> adding / changing text annotations
%# -1 ----------> all rights permitted
%
%# nameaffix: <text>
%# _sec (by default)
%#########################################


% arara: pdflatex
% arara: secure: { userpw: foo , permission: 0 } 

\documentclass{article}
\usepackage{xcolor}
\pagecolor{yellow!50}

\begin{document}
\section{My very secret Text}
......
\end{document}

一些例子。

a1)在工作文件夹中将生成一个具有特殊用户密码的文件,所有者密码将获取其默认值。

% arara: pdflatex
% arara: secure: { userpw: foo } 

\documentclass{article}
\begin{document}
\section{My very secret Text}
......
\end{document}

=> 职位名称_sec.pdf

a2)...此外还应该生成一个特殊的名称前缀。

% arara: pdflatex
% arara: secure: { userpw: foo , nameaffix: -most_secret} 

\documentclass{article}
\begin{document}
\section{My very secret Text}
......
\end{document}

=> 职位名称-most_secret.pdf

b)必须在特殊路径下生成一个同名文件(jobname.pdf)(这是强制性的,否则必须覆盖原始文件)。

% arara: pdflatex
% arara: secure: { userpw: foo , outputpath: 'C:\SecretDocuments\TodaysSecretDocuments\' , nameaffix: ''}  

\documentclass{article}
\begin{document}
\section{My very secret Text}
......
\end{document}

=>C:\SecretDocuments\TodaysSecretDocuments\jobname.pdf

nameaffix: ''删除参数值。

C)随意测试一些其他参数;询问是否存在问题。

相关内容