mirror of
https://github.com/qpdf/qpdf.git
synced 2024-05-31 01:10:51 +00:00
QPDFJob increment: generate handler declarations
This commit is contained in:
parent
6e70d99b58
commit
c3e9b64e7f
|
@ -93,8 +93,12 @@ class Main:
|
||||||
with open('job.yml', 'r') as f:
|
with open('job.yml', 'r') as f:
|
||||||
data = yaml.safe_load(f.read())
|
data = yaml.safe_load(f.read())
|
||||||
self.validate(data)
|
self.validate(data)
|
||||||
self.generate_decl(data)
|
with open(self.DESTS['decl'], 'w') as f:
|
||||||
self.generate_init(data)
|
print(BANNER, file=f)
|
||||||
|
self.generate_decl(data, f)
|
||||||
|
with open(self.DESTS['init'], 'w') as f:
|
||||||
|
print(BANNER, file=f)
|
||||||
|
self.generate_init(data, f)
|
||||||
|
|
||||||
# Update hashes last to ensure that this will be rerun in the
|
# Update hashes last to ensure that this will be rerun in the
|
||||||
# event of a failure.
|
# event of a failure.
|
||||||
|
@ -113,7 +117,7 @@ class Main:
|
||||||
self.check_keys('top', data, set(['choices', 'options']))
|
self.check_keys('top', data, set(['choices', 'options']))
|
||||||
for o in data['options']:
|
for o in data['options']:
|
||||||
self.check_keys('top', o, set(
|
self.check_keys('top', o, set(
|
||||||
['table', 'bare', 'positional',
|
['table', 'prefix', 'bare', 'positional',
|
||||||
'optional_parameter', 'required_parameter',
|
'optional_parameter', 'required_parameter',
|
||||||
'required_choices', 'from_table']))
|
'required_choices', 'from_table']))
|
||||||
|
|
||||||
|
@ -123,28 +127,46 @@ class Main:
|
||||||
identifier = identifier.upper()
|
identifier = identifier.upper()
|
||||||
else:
|
else:
|
||||||
identifier = identifier.lower()
|
identifier = identifier.lower()
|
||||||
identifier = re.sub('_([a-z])', lambda x: x.group(1).upper(),
|
identifier = re.sub(r'(?:^|_)([a-z])',
|
||||||
identifier)
|
lambda x: x.group(1).upper(),
|
||||||
|
identifier).replace('_', '')
|
||||||
return prefix + identifier
|
return prefix + identifier
|
||||||
|
|
||||||
def generate_decl(self, data):
|
def generate_decl(self, data, f):
|
||||||
with open(self.DESTS['decl'], 'w') as f:
|
for o in data['options']:
|
||||||
print(BANNER, file=f)
|
table = o['table']
|
||||||
for o in data['options']:
|
if table in ('main', 'help'):
|
||||||
table = o['table']
|
continue
|
||||||
if table in ('main', 'help'):
|
i = self.to_identifier(table, 'O_', True)
|
||||||
continue
|
print(f'static constexpr char const* {i} = "{table}";', file=f)
|
||||||
i = self.to_identifier(table, 'O_', True)
|
print('', file=f)
|
||||||
print(f'static constexpr char const* {i} = "{table}";', file=f)
|
for o in data['options']:
|
||||||
|
table = o['table']
|
||||||
|
prefix = 'arg' + o.get('prefix', '')
|
||||||
|
if o.get('positional', False):
|
||||||
|
print(f'void {prefix}Positional(char*);', file=f)
|
||||||
|
for i in o.get('bare', []):
|
||||||
|
identifier = self.to_identifier(i, prefix, False)
|
||||||
|
print(f'void {identifier}();', file=f)
|
||||||
|
for i in o.get('optional_parameter', []):
|
||||||
|
identifier = self.to_identifier(i, prefix, False)
|
||||||
|
print(f'void {identifier}(char *);', file=f)
|
||||||
|
for i in o.get('required_parameter', {}):
|
||||||
|
identifier = self.to_identifier(i, prefix, False)
|
||||||
|
print(f'void {identifier}(char *);', file=f)
|
||||||
|
for i in o.get('required_choices', {}):
|
||||||
|
identifier = self.to_identifier(i, prefix, False)
|
||||||
|
print(f'void {identifier}(char *);', file=f)
|
||||||
|
if table not in ('main', 'help'):
|
||||||
|
identifier = self.to_identifier(table, 'argEnd', False)
|
||||||
|
print(f'void {identifier}();', file=f)
|
||||||
|
|
||||||
def generate_init(self, data):
|
def generate_init(self, data, f):
|
||||||
with open(self.DESTS['init'], 'w') as f:
|
for k, v in data['choices'].items():
|
||||||
print(BANNER, file=f)
|
print(f'char const* {k}_choices[] = {{', file=f, end='')
|
||||||
for k, v in data['choices'].items():
|
for i in v:
|
||||||
print(f'char const* {k}_choices[] = {{', file=f, end='')
|
print(f'"{i}", ', file=f, end='')
|
||||||
for i in v:
|
print('0};', file=f)
|
||||||
print(f'"{i}", ', file=f, end='')
|
|
||||||
print('0};', file=f)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
6
job.sums
6
job.sums
|
@ -1,5 +1,5 @@
|
||||||
# Generated by generate_auto_job
|
# Generated by generate_auto_job
|
||||||
generate_auto_job 82410a924077d975acc27240f7b167cd32e1c358b8b2ea40161e607ee2ac0599
|
generate_auto_job 52a5e6bc70375e1183fedd5865ae4eae2a10be8d80edede1c48f9946be5d2538
|
||||||
job.yml 8c66b75eb06be65dfa40058a52cbc0bc18627a3aade5b3d4e034543605c93298
|
job.yml b4d230c46ca2b2e75b3b974e2d9ad21fb007eb5007d05cf249ae1e2cde81040c
|
||||||
libqpdf/qpdf/auto_job_decl.hh b098ee02ec853f47850b6421cc72b08c608f303f74f01d0b3ce3df52cecd5ffa
|
libqpdf/qpdf/auto_job_decl.hh fca37543c1a2b7f675374e23b1ab34b30a7f5f2d843c53d4bc7e9a12bf4c3615
|
||||||
libqpdf/qpdf/auto_job_init.hh 0640167b8d550030c086851408b842e2a93c86577253d78f1b7d41d4ca695bd9
|
libqpdf/qpdf/auto_job_init.hh 0640167b8d550030c086851408b842e2a93c86577253d78f1b7d41d4ca695bd9
|
||||||
|
|
10
job.yml
10
job.yml
|
@ -143,18 +143,22 @@ options:
|
||||||
remove-unreferenced-resources: remove_unref
|
remove-unreferenced-resources: remove_unref
|
||||||
stream-data: stream_data
|
stream-data: stream_data
|
||||||
- table: pages
|
- table: pages
|
||||||
|
prefix: Pages
|
||||||
positional: true
|
positional: true
|
||||||
required_parameter:
|
required_parameter:
|
||||||
- password: password
|
password: password
|
||||||
- table: encryption
|
- table: encryption
|
||||||
|
prefix: Enc
|
||||||
positional: true
|
positional: true
|
||||||
- table: 40-bit encryption
|
- table: 40-bit encryption
|
||||||
|
prefix: Enc40
|
||||||
required_choices:
|
required_choices:
|
||||||
extract: yn
|
extract: yn
|
||||||
annotate: yn
|
annotate: yn
|
||||||
print: yn
|
print: yn
|
||||||
modify: yn
|
modify: yn
|
||||||
- table: 128-bit encryption
|
- table: 128-bit encryption
|
||||||
|
prefix: Enc128
|
||||||
bare:
|
bare:
|
||||||
- cleartext-metadata
|
- cleartext-metadata
|
||||||
- force-V4
|
- force-V4
|
||||||
|
@ -169,6 +173,7 @@ options:
|
||||||
modify: modify128_choices
|
modify: modify128_choices
|
||||||
use-aes: yn
|
use-aes: yn
|
||||||
- table: 256-bit encryption
|
- table: 256-bit encryption
|
||||||
|
prefix: Enc256
|
||||||
from_table:
|
from_table:
|
||||||
table: 128-bit encryption
|
table: 128-bit encryption
|
||||||
options:
|
options:
|
||||||
|
@ -185,6 +190,7 @@ options:
|
||||||
- force-R5
|
- force-R5
|
||||||
- allow-insecure
|
- allow-insecure
|
||||||
- table: underlay/overlay
|
- table: underlay/overlay
|
||||||
|
prefix: UO
|
||||||
positional: true
|
positional: true
|
||||||
required_parameter:
|
required_parameter:
|
||||||
to: page-range
|
to: page-range
|
||||||
|
@ -192,6 +198,7 @@ options:
|
||||||
repeat: page-range
|
repeat: page-range
|
||||||
password: password
|
password: password
|
||||||
- table: attachment
|
- table: attachment
|
||||||
|
prefix: Att
|
||||||
positional: true
|
positional: true
|
||||||
bare:
|
bare:
|
||||||
- replace
|
- replace
|
||||||
|
@ -203,6 +210,7 @@ options:
|
||||||
mimetype: mime/type
|
mimetype: mime/type
|
||||||
description: description
|
description: description
|
||||||
- table: copy attachment
|
- table: copy attachment
|
||||||
|
prefix: CopyAtt
|
||||||
positional: true
|
positional: true
|
||||||
required_parameter:
|
required_parameter:
|
||||||
prefix: prefix
|
prefix: prefix
|
||||||
|
|
|
@ -25,134 +25,6 @@ namespace
|
||||||
private:
|
private:
|
||||||
# include <qpdf/auto_job_decl.hh>
|
# include <qpdf/auto_job_decl.hh>
|
||||||
|
|
||||||
void argHelp();
|
|
||||||
void argVersion();
|
|
||||||
void argCopyright();
|
|
||||||
void argJsonHelp();
|
|
||||||
void argShowCrypto();
|
|
||||||
void argPositional(char* arg);
|
|
||||||
void argPassword(char* parameter);
|
|
||||||
void argPasswordFile(char* parameter);
|
|
||||||
void argEmpty();
|
|
||||||
void argLinearize();
|
|
||||||
void argEncrypt();
|
|
||||||
void argDecrypt();
|
|
||||||
void argPasswordIsHexKey();
|
|
||||||
void argAllowInsecure();
|
|
||||||
void argAllowWeakCrypto();
|
|
||||||
void argPasswordMode(char* parameter);
|
|
||||||
void argSuppressPasswordRecovery();
|
|
||||||
void argCopyEncryption(char* parameter);
|
|
||||||
void argEncryptionFilePassword(char* parameter);
|
|
||||||
void argPages();
|
|
||||||
void argPagesPassword(char* parameter);
|
|
||||||
void argPagesPositional(char* parameter);
|
|
||||||
void argEndPages();
|
|
||||||
void argUnderlay();
|
|
||||||
void argOverlay();
|
|
||||||
void argRotate(char* parameter);
|
|
||||||
void argCollate(char* parameter);
|
|
||||||
void argFlattenRotation();
|
|
||||||
void argListAttachments();
|
|
||||||
void argShowAttachment(char* parameter);
|
|
||||||
void argRemoveAttachment(char* parameter);
|
|
||||||
void argAddAttachment();
|
|
||||||
void argCopyAttachments();
|
|
||||||
void argStreamData(char* parameter);
|
|
||||||
void argCompressStreams(char* parameter);
|
|
||||||
void argRecompressFlate();
|
|
||||||
void argCompressionLevel(char* parameter);
|
|
||||||
void argDecodeLevel(char* parameter);
|
|
||||||
void argNormalizeContent(char* parameter);
|
|
||||||
void argSuppressRecovery();
|
|
||||||
void argObjectStreams(char* parameter);
|
|
||||||
void argIgnoreXrefStreams();
|
|
||||||
void argQdf();
|
|
||||||
void argPreserveUnreferenced();
|
|
||||||
void argPreserveUnreferencedResources();
|
|
||||||
void argRemoveUnreferencedResources(char* parameter);
|
|
||||||
void argKeepFilesOpen(char* parameter);
|
|
||||||
void argKeepFilesOpenThreshold(char* parameter);
|
|
||||||
void argNewlineBeforeEndstream();
|
|
||||||
void argLinearizePass1(char* parameter);
|
|
||||||
void argCoalesceContents();
|
|
||||||
void argFlattenAnnotations(char* parameter);
|
|
||||||
void argGenerateAppearances();
|
|
||||||
void argMinVersion(char* parameter);
|
|
||||||
void argForceVersion(char* parameter);
|
|
||||||
void argSplitPages(char* parameter);
|
|
||||||
void argVerbose();
|
|
||||||
void argProgress();
|
|
||||||
void argNoWarn();
|
|
||||||
void argWarningExitZero();
|
|
||||||
void argDeterministicId();
|
|
||||||
void argStaticId();
|
|
||||||
void argStaticAesIv();
|
|
||||||
void argNoOriginalObjectIds();
|
|
||||||
void argShowEncryption();
|
|
||||||
void argShowEncryptionKey();
|
|
||||||
void argCheckLinearization();
|
|
||||||
void argShowLinearization();
|
|
||||||
void argShowXref();
|
|
||||||
void argShowObject(char* parameter);
|
|
||||||
void argRawStreamData();
|
|
||||||
void argFilteredStreamData();
|
|
||||||
void argShowNpages();
|
|
||||||
void argShowPages();
|
|
||||||
void argWithImages();
|
|
||||||
void argJson();
|
|
||||||
void argJsonKey(char* parameter);
|
|
||||||
void argJsonObject(char* parameter);
|
|
||||||
void argCheck();
|
|
||||||
void argOptimizeImages();
|
|
||||||
void argExternalizeInlineImages();
|
|
||||||
void argKeepInlineImages();
|
|
||||||
void argRemovePageLabels();
|
|
||||||
void argOiMinWidth(char* parameter);
|
|
||||||
void argOiMinHeight(char* parameter);
|
|
||||||
void argOiMinArea(char* parameter);
|
|
||||||
void argIiMinBytes(char* parameter);
|
|
||||||
void arg40Print(char* parameter);
|
|
||||||
void arg40Modify(char* parameter);
|
|
||||||
void arg40Extract(char* parameter);
|
|
||||||
void arg40Annotate(char* parameter);
|
|
||||||
void arg128Accessibility(char* parameter);
|
|
||||||
void arg128Extract(char* parameter);
|
|
||||||
void arg128Print(char* parameter);
|
|
||||||
void arg128Modify(char* parameter);
|
|
||||||
void arg128ClearTextMetadata();
|
|
||||||
void arg128Assemble(char* parameter);
|
|
||||||
void arg128Annotate(char* parameter);
|
|
||||||
void arg128Form(char* parameter);
|
|
||||||
void arg128ModOther(char* parameter);
|
|
||||||
void arg128UseAes(char* parameter);
|
|
||||||
void arg128ForceV4();
|
|
||||||
void arg256ForceR5();
|
|
||||||
void argEncryptPositional(char* arg);
|
|
||||||
void argEndEncrypt();
|
|
||||||
void argUOpositional(char* arg);
|
|
||||||
void argUOto(char* parameter);
|
|
||||||
void argUOfrom(char* parameter);
|
|
||||||
void argUOrepeat(char* parameter);
|
|
||||||
void argUOpassword(char* parameter);
|
|
||||||
void argEndUnderOverlay();
|
|
||||||
void argReplaceInput();
|
|
||||||
void argIsEncrypted();
|
|
||||||
void argRequiresPassword();
|
|
||||||
void argAApositional(char* arg);
|
|
||||||
void argAAKey(char* parameter);
|
|
||||||
void argAAFilename(char* parameter);
|
|
||||||
void argAACreationDate(char* parameter);
|
|
||||||
void argAAModDate(char* parameter);
|
|
||||||
void argAAMimeType(char* parameter);
|
|
||||||
void argAADescription(char* parameter);
|
|
||||||
void argAAReplace();
|
|
||||||
void argEndAddAttachment();
|
|
||||||
void argCApositional(char* arg);
|
|
||||||
void argCAprefix(char* parameter);
|
|
||||||
void argCApassword(char* parameter);
|
|
||||||
void argEndCopyAttachments();
|
|
||||||
|
|
||||||
void usage(std::string const& message);
|
void usage(std::string const& message);
|
||||||
void initOptionTable();
|
void initOptionTable();
|
||||||
void doFinalChecks();
|
void doFinalChecks();
|
||||||
|
@ -226,7 +98,7 @@ ArgParser::initOptionTable()
|
||||||
p(&ArgParser::argRemoveAttachment), "attachment-key");
|
p(&ArgParser::argRemoveAttachment), "attachment-key");
|
||||||
this->ap.addBare("add-attachment", b(&ArgParser::argAddAttachment));
|
this->ap.addBare("add-attachment", b(&ArgParser::argAddAttachment));
|
||||||
this->ap.addBare(
|
this->ap.addBare(
|
||||||
"copy-attachments-from", b(&ArgParser::argCopyAttachments));
|
"copy-attachments-from", b(&ArgParser::argCopyAttachmentsFrom));
|
||||||
this->ap.addRequiredChoices("stream-data",
|
this->ap.addRequiredChoices("stream-data",
|
||||||
p(&ArgParser::argStreamData), stream_data_choices);
|
p(&ArgParser::argStreamData), stream_data_choices);
|
||||||
this->ap.addRequiredChoices("compress-streams",
|
this->ap.addRequiredChoices("compress-streams",
|
||||||
|
@ -270,7 +142,7 @@ ArgParser::initOptionTable()
|
||||||
this->ap.addBare("verbose", b(&ArgParser::argVerbose));
|
this->ap.addBare("verbose", b(&ArgParser::argVerbose));
|
||||||
this->ap.addBare("progress", b(&ArgParser::argProgress));
|
this->ap.addBare("progress", b(&ArgParser::argProgress));
|
||||||
this->ap.addBare("no-warn", b(&ArgParser::argNoWarn));
|
this->ap.addBare("no-warn", b(&ArgParser::argNoWarn));
|
||||||
this->ap.addBare("warning-exit-0", b(&ArgParser::argWarningExitZero));
|
this->ap.addBare("warning-exit-0", b(&ArgParser::argWarningExit0));
|
||||||
this->ap.addBare("deterministic-id", b(&ArgParser::argDeterministicId));
|
this->ap.addBare("deterministic-id", b(&ArgParser::argDeterministicId));
|
||||||
this->ap.addBare("static-id", b(&ArgParser::argStaticId));
|
this->ap.addBare("static-id", b(&ArgParser::argStaticId));
|
||||||
this->ap.addBare("static-aes-iv", b(&ArgParser::argStaticAesIv));
|
this->ap.addBare("static-aes-iv", b(&ArgParser::argStaticAesIv));
|
||||||
|
@ -321,73 +193,73 @@ ArgParser::initOptionTable()
|
||||||
|
|
||||||
this->ap.selectMainOptionTable();
|
this->ap.selectMainOptionTable();
|
||||||
this->ap.addBare("encrypt", b(&ArgParser::argEncrypt));
|
this->ap.addBare("encrypt", b(&ArgParser::argEncrypt));
|
||||||
this->ap.registerOptionTable(O_ENCRYPTION, b(&ArgParser::argEndEncrypt));
|
this->ap.registerOptionTable(O_ENCRYPTION, b(&ArgParser::argEndEncryption));
|
||||||
this->ap.addPositional(p(&ArgParser::argEncryptPositional));
|
this->ap.addPositional(p(&ArgParser::argEncPositional));
|
||||||
this->ap.registerOptionTable(O_40_BIT_ENCRYPTION, b(&ArgParser::argEndEncrypt));
|
this->ap.registerOptionTable(O_40_BIT_ENCRYPTION, b(&ArgParser::argEndEncryption));
|
||||||
this->ap.addRequiredChoices("extract",p(&ArgParser::arg40Extract), yn_choices);
|
this->ap.addRequiredChoices("extract",p(&ArgParser::argEnc40Extract), yn_choices);
|
||||||
this->ap.addRequiredChoices("annotate",p(&ArgParser::arg40Annotate), yn_choices);
|
this->ap.addRequiredChoices("annotate",p(&ArgParser::argEnc40Annotate), yn_choices);
|
||||||
this->ap.addRequiredChoices("print",p(&ArgParser::arg40Print), yn_choices);
|
this->ap.addRequiredChoices("print",p(&ArgParser::argEnc40Print), yn_choices);
|
||||||
this->ap.addRequiredChoices("modify",p(&ArgParser::arg40Modify), yn_choices);
|
this->ap.addRequiredChoices("modify",p(&ArgParser::argEnc40Modify), yn_choices);
|
||||||
this->ap.registerOptionTable(O_128_BIT_ENCRYPTION, b(&ArgParser::argEndEncrypt));
|
this->ap.registerOptionTable(O_128_BIT_ENCRYPTION, b(&ArgParser::argEndEncryption));
|
||||||
this->ap.registerOptionTable(O_256_BIT_ENCRYPTION, b(&ArgParser::argEndEncrypt));
|
this->ap.registerOptionTable(O_256_BIT_ENCRYPTION, b(&ArgParser::argEndEncryption));
|
||||||
for (char const* k: {O_128_BIT_ENCRYPTION, O_256_BIT_ENCRYPTION})
|
for (char const* k: {O_128_BIT_ENCRYPTION, O_256_BIT_ENCRYPTION})
|
||||||
{
|
{
|
||||||
this->ap.selectOptionTable(k);
|
this->ap.selectOptionTable(k);
|
||||||
this->ap.addRequiredChoices("accessibility",
|
this->ap.addRequiredChoices("accessibility",
|
||||||
p(&ArgParser::arg128Accessibility), yn_choices);
|
p(&ArgParser::argEnc128Accessibility), yn_choices);
|
||||||
this->ap.addRequiredChoices("extract", p(&ArgParser::arg128Extract), yn_choices);
|
this->ap.addRequiredChoices("extract", p(&ArgParser::argEnc128Extract), yn_choices);
|
||||||
this->ap.addRequiredChoices("print",
|
this->ap.addRequiredChoices("print",
|
||||||
p(&ArgParser::arg128Print), print128_choices);
|
p(&ArgParser::argEnc128Print), print128_choices);
|
||||||
this->ap.addRequiredChoices("assemble",p(&ArgParser::arg128Assemble), yn_choices);
|
this->ap.addRequiredChoices("assemble",p(&ArgParser::argEnc128Assemble), yn_choices);
|
||||||
this->ap.addRequiredChoices("annotate",p(&ArgParser::arg128Annotate), yn_choices);
|
this->ap.addRequiredChoices("annotate",p(&ArgParser::argEnc128Annotate), yn_choices);
|
||||||
this->ap.addRequiredChoices("form",p(&ArgParser::arg128Form), yn_choices);
|
this->ap.addRequiredChoices("form",p(&ArgParser::argEnc128Form), yn_choices);
|
||||||
this->ap.addRequiredChoices("modify-other",p(&ArgParser::arg128ModOther), yn_choices);
|
this->ap.addRequiredChoices("modify-other",p(&ArgParser::argEnc128ModifyOther), yn_choices);
|
||||||
this->ap.addRequiredChoices("modify",
|
this->ap.addRequiredChoices("modify",
|
||||||
p(&ArgParser::arg128Modify), modify128_choices);
|
p(&ArgParser::argEnc128Modify), modify128_choices);
|
||||||
this->ap.addBare("cleartext-metadata", b(&ArgParser::arg128ClearTextMetadata));
|
this->ap.addBare("cleartext-metadata", b(&ArgParser::argEnc128CleartextMetadata));
|
||||||
}
|
}
|
||||||
|
|
||||||
this->ap.selectOptionTable(O_128_BIT_ENCRYPTION);
|
this->ap.selectOptionTable(O_128_BIT_ENCRYPTION);
|
||||||
this->ap.addRequiredChoices("use-aes",p(&ArgParser::arg128UseAes), yn_choices);
|
this->ap.addRequiredChoices("use-aes",p(&ArgParser::argEnc128UseAes), yn_choices);
|
||||||
this->ap.addBare("force-V4", b(&ArgParser::arg128ForceV4));
|
this->ap.addBare("force-V4", b(&ArgParser::argEnc128ForceV4));
|
||||||
|
|
||||||
this->ap.selectOptionTable(O_256_BIT_ENCRYPTION);
|
this->ap.selectOptionTable(O_256_BIT_ENCRYPTION);
|
||||||
this->ap.addBare("force-R5", b(&ArgParser::arg256ForceR5));
|
this->ap.addBare("force-R5", b(&ArgParser::argEnc256ForceR5));
|
||||||
this->ap.addBare("allow-insecure", b(&ArgParser::argAllowInsecure));
|
this->ap.addBare("allow-insecure", b(&ArgParser::argEnc256AllowInsecure));
|
||||||
|
|
||||||
this->ap.registerOptionTable(O_UNDERLAY_OVERLAY, b(&ArgParser::argEndUnderOverlay));
|
this->ap.registerOptionTable(O_UNDERLAY_OVERLAY, b(&ArgParser::argEndUnderlayOverlay));
|
||||||
this->ap.addPositional(p(&ArgParser::argUOpositional));
|
this->ap.addPositional(p(&ArgParser::argUOPositional));
|
||||||
this->ap.addRequiredParameter("to",
|
this->ap.addRequiredParameter("to",
|
||||||
p(&ArgParser::argUOto), "page-range");
|
p(&ArgParser::argUOTo), "page-range");
|
||||||
this->ap.addRequiredParameter("from",
|
this->ap.addRequiredParameter("from",
|
||||||
p(&ArgParser::argUOfrom), "page-range");
|
p(&ArgParser::argUOFrom), "page-range");
|
||||||
this->ap.addRequiredParameter("repeat",
|
this->ap.addRequiredParameter("repeat",
|
||||||
p(&ArgParser::argUOrepeat), "page-range");
|
p(&ArgParser::argUORepeat), "page-range");
|
||||||
this->ap.addRequiredParameter("password",
|
this->ap.addRequiredParameter("password",
|
||||||
p(&ArgParser::argUOpassword), "password");
|
p(&ArgParser::argUOPassword), "password");
|
||||||
|
|
||||||
this->ap.registerOptionTable(O_ATTACHMENT, b(&ArgParser::argEndAddAttachment));
|
this->ap.registerOptionTable(O_ATTACHMENT, b(&ArgParser::argEndAttachment));
|
||||||
this->ap.addPositional(p(&ArgParser::argAApositional));
|
this->ap.addPositional(p(&ArgParser::argAttPositional));
|
||||||
this->ap.addRequiredParameter("key",
|
this->ap.addRequiredParameter("key",
|
||||||
p(&ArgParser::argAAKey), "attachment-key");
|
p(&ArgParser::argAttKey), "attachment-key");
|
||||||
this->ap.addRequiredParameter("filename",
|
this->ap.addRequiredParameter("filename",
|
||||||
p(&ArgParser::argAAFilename), "filename");
|
p(&ArgParser::argAttFilename), "filename");
|
||||||
this->ap.addRequiredParameter("creationdate",
|
this->ap.addRequiredParameter("creationdate",
|
||||||
p(&ArgParser::argAACreationDate), "creation-date");
|
p(&ArgParser::argAttCreationdate), "creation-date");
|
||||||
this->ap.addRequiredParameter("moddate",
|
this->ap.addRequiredParameter("moddate",
|
||||||
p(&ArgParser::argAAModDate), "modification-date");
|
p(&ArgParser::argAttModdate), "modification-date");
|
||||||
this->ap.addRequiredParameter("mimetype",
|
this->ap.addRequiredParameter("mimetype",
|
||||||
p(&ArgParser::argAAMimeType), "mime/type");
|
p(&ArgParser::argAttMimetype), "mime/type");
|
||||||
this->ap.addRequiredParameter("description",
|
this->ap.addRequiredParameter("description",
|
||||||
p(&ArgParser::argAADescription), "description");
|
p(&ArgParser::argAttDescription), "description");
|
||||||
this->ap.addBare("replace", b(&ArgParser::argAAReplace));
|
this->ap.addBare("replace", b(&ArgParser::argAttReplace));
|
||||||
|
|
||||||
this->ap.registerOptionTable(O_COPY_ATTACHMENT, b(&ArgParser::argEndCopyAttachments));
|
this->ap.registerOptionTable(O_COPY_ATTACHMENT, b(&ArgParser::argEndCopyAttachment));
|
||||||
this->ap.addPositional(p(&ArgParser::argCApositional));
|
this->ap.addPositional(p(&ArgParser::argCopyAttPositional));
|
||||||
this->ap.addRequiredParameter("prefix",
|
this->ap.addRequiredParameter("prefix",
|
||||||
p(&ArgParser::argCAprefix), "prefix");
|
p(&ArgParser::argCopyAttPrefix), "prefix");
|
||||||
this->ap.addRequiredParameter("password",
|
this->ap.addRequiredParameter("password",
|
||||||
p(&ArgParser::argCApassword), "password");
|
p(&ArgParser::argCopyAttPassword), "password");
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1067,7 +939,7 @@ ArgParser::argEncrypt()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argEncryptPositional(char* arg)
|
ArgParser::argEncPositional(char* arg)
|
||||||
{
|
{
|
||||||
this->accumulated_args.push_back(arg);
|
this->accumulated_args.push_back(arg);
|
||||||
size_t n_args = this->accumulated_args.size();
|
size_t n_args = this->accumulated_args.size();
|
||||||
|
@ -1159,7 +1031,7 @@ ArgParser::argPasswordMode(char* parameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argAllowInsecure()
|
ArgParser::argEnc256AllowInsecure()
|
||||||
{
|
{
|
||||||
o.allow_insecure = true;
|
o.allow_insecure = true;
|
||||||
}
|
}
|
||||||
|
@ -1364,7 +1236,7 @@ ArgParser::argAddAttachment()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argCopyAttachments()
|
ArgParser::argCopyAttachmentsFrom()
|
||||||
{
|
{
|
||||||
o.attachments_to_copy.push_back(QPDFJob::CopyAttachmentFrom());
|
o.attachments_to_copy.push_back(QPDFJob::CopyAttachmentFrom());
|
||||||
this->ap.selectOptionTable(O_COPY_ATTACHMENT);
|
this->ap.selectOptionTable(O_COPY_ATTACHMENT);
|
||||||
|
@ -1616,7 +1488,7 @@ ArgParser::argNoWarn()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argWarningExitZero()
|
ArgParser::argWarningExit0()
|
||||||
{
|
{
|
||||||
o.warnings_exit_zero = true;
|
o.warnings_exit_zero = true;
|
||||||
}
|
}
|
||||||
|
@ -1793,43 +1665,43 @@ ArgParser::argIiMinBytes(char* parameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg40Print(char* parameter)
|
ArgParser::argEnc40Print(char* parameter)
|
||||||
{
|
{
|
||||||
o.r2_print = (strcmp(parameter, "y") == 0);
|
o.r2_print = (strcmp(parameter, "y") == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg40Modify(char* parameter)
|
ArgParser::argEnc40Modify(char* parameter)
|
||||||
{
|
{
|
||||||
o.r2_modify = (strcmp(parameter, "y") == 0);
|
o.r2_modify = (strcmp(parameter, "y") == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg40Extract(char* parameter)
|
ArgParser::argEnc40Extract(char* parameter)
|
||||||
{
|
{
|
||||||
o.r2_extract = (strcmp(parameter, "y") == 0);
|
o.r2_extract = (strcmp(parameter, "y") == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg40Annotate(char* parameter)
|
ArgParser::argEnc40Annotate(char* parameter)
|
||||||
{
|
{
|
||||||
o.r2_annotate = (strcmp(parameter, "y") == 0);
|
o.r2_annotate = (strcmp(parameter, "y") == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg128Accessibility(char* parameter)
|
ArgParser::argEnc128Accessibility(char* parameter)
|
||||||
{
|
{
|
||||||
o.r3_accessibility = (strcmp(parameter, "y") == 0);
|
o.r3_accessibility = (strcmp(parameter, "y") == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg128Extract(char* parameter)
|
ArgParser::argEnc128Extract(char* parameter)
|
||||||
{
|
{
|
||||||
o.r3_extract = (strcmp(parameter, "y") == 0);
|
o.r3_extract = (strcmp(parameter, "y") == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg128Print(char* parameter)
|
ArgParser::argEnc128Print(char* parameter)
|
||||||
{
|
{
|
||||||
if (strcmp(parameter, "full") == 0)
|
if (strcmp(parameter, "full") == 0)
|
||||||
{
|
{
|
||||||
|
@ -1850,7 +1722,7 @@ ArgParser::arg128Print(char* parameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg128Modify(char* parameter)
|
ArgParser::argEnc128Modify(char* parameter)
|
||||||
{
|
{
|
||||||
if (strcmp(parameter, "all") == 0)
|
if (strcmp(parameter, "all") == 0)
|
||||||
{
|
{
|
||||||
|
@ -1894,55 +1766,55 @@ ArgParser::arg128Modify(char* parameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg128ClearTextMetadata()
|
ArgParser::argEnc128CleartextMetadata()
|
||||||
{
|
{
|
||||||
o.cleartext_metadata = true;
|
o.cleartext_metadata = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg128Assemble(char* parameter)
|
ArgParser::argEnc128Assemble(char* parameter)
|
||||||
{
|
{
|
||||||
o.r3_assemble = (strcmp(parameter, "y") == 0);
|
o.r3_assemble = (strcmp(parameter, "y") == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg128Annotate(char* parameter)
|
ArgParser::argEnc128Annotate(char* parameter)
|
||||||
{
|
{
|
||||||
o.r3_annotate_and_form = (strcmp(parameter, "y") == 0);
|
o.r3_annotate_and_form = (strcmp(parameter, "y") == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg128Form(char* parameter)
|
ArgParser::argEnc128Form(char* parameter)
|
||||||
{
|
{
|
||||||
o.r3_form_filling = (strcmp(parameter, "y") == 0);
|
o.r3_form_filling = (strcmp(parameter, "y") == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg128ModOther(char* parameter)
|
ArgParser::argEnc128ModifyOther(char* parameter)
|
||||||
{
|
{
|
||||||
o.r3_modify_other = (strcmp(parameter, "y") == 0);
|
o.r3_modify_other = (strcmp(parameter, "y") == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg128UseAes(char* parameter)
|
ArgParser::argEnc128UseAes(char* parameter)
|
||||||
{
|
{
|
||||||
o.use_aes = (strcmp(parameter, "y") == 0);
|
o.use_aes = (strcmp(parameter, "y") == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg128ForceV4()
|
ArgParser::argEnc128ForceV4()
|
||||||
{
|
{
|
||||||
o.force_V4 = true;
|
o.force_V4 = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::arg256ForceR5()
|
ArgParser::argEnc256ForceR5()
|
||||||
{
|
{
|
||||||
o.force_R5 = true;
|
o.force_R5 = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argEndEncrypt()
|
ArgParser::argEndEncryption()
|
||||||
{
|
{
|
||||||
o.encrypt = true;
|
o.encrypt = true;
|
||||||
o.decrypt = false;
|
o.decrypt = false;
|
||||||
|
@ -1950,7 +1822,7 @@ ArgParser::argEndEncrypt()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argUOpositional(char* arg)
|
ArgParser::argUOPositional(char* arg)
|
||||||
{
|
{
|
||||||
if (o.under_overlay->filename)
|
if (o.under_overlay->filename)
|
||||||
{
|
{
|
||||||
|
@ -1963,14 +1835,14 @@ ArgParser::argUOpositional(char* arg)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argUOto(char* parameter)
|
ArgParser::argUOTo(char* parameter)
|
||||||
{
|
{
|
||||||
parseNumrange(parameter, 0);
|
parseNumrange(parameter, 0);
|
||||||
o.under_overlay->to_nr = parameter;
|
o.under_overlay->to_nr = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argUOfrom(char* parameter)
|
ArgParser::argUOFrom(char* parameter)
|
||||||
{
|
{
|
||||||
if (strlen(parameter))
|
if (strlen(parameter))
|
||||||
{
|
{
|
||||||
|
@ -1980,7 +1852,7 @@ ArgParser::argUOfrom(char* parameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argUOrepeat(char* parameter)
|
ArgParser::argUORepeat(char* parameter)
|
||||||
{
|
{
|
||||||
if (strlen(parameter))
|
if (strlen(parameter))
|
||||||
{
|
{
|
||||||
|
@ -1990,13 +1862,13 @@ ArgParser::argUOrepeat(char* parameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argUOpassword(char* parameter)
|
ArgParser::argUOPassword(char* parameter)
|
||||||
{
|
{
|
||||||
o.under_overlay->password = parameter;
|
o.under_overlay->password = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argEndUnderOverlay()
|
ArgParser::argEndUnderlayOverlay()
|
||||||
{
|
{
|
||||||
if (0 == o.under_overlay->filename)
|
if (0 == o.under_overlay->filename)
|
||||||
{
|
{
|
||||||
|
@ -2026,25 +1898,25 @@ ArgParser::argRequiresPassword()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argAApositional(char* arg)
|
ArgParser::argAttPositional(char* arg)
|
||||||
{
|
{
|
||||||
o.attachments_to_add.back().path = arg;
|
o.attachments_to_add.back().path = arg;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argAAKey(char* parameter)
|
ArgParser::argAttKey(char* parameter)
|
||||||
{
|
{
|
||||||
o.attachments_to_add.back().key = parameter;
|
o.attachments_to_add.back().key = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argAAFilename(char* parameter)
|
ArgParser::argAttFilename(char* parameter)
|
||||||
{
|
{
|
||||||
o.attachments_to_add.back().filename = parameter;
|
o.attachments_to_add.back().filename = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argAACreationDate(char* parameter)
|
ArgParser::argAttCreationdate(char* parameter)
|
||||||
{
|
{
|
||||||
if (! QUtil::pdf_time_to_qpdf_time(parameter))
|
if (! QUtil::pdf_time_to_qpdf_time(parameter))
|
||||||
{
|
{
|
||||||
|
@ -2054,7 +1926,7 @@ ArgParser::argAACreationDate(char* parameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argAAModDate(char* parameter)
|
ArgParser::argAttModdate(char* parameter)
|
||||||
{
|
{
|
||||||
if (! QUtil::pdf_time_to_qpdf_time(parameter))
|
if (! QUtil::pdf_time_to_qpdf_time(parameter))
|
||||||
{
|
{
|
||||||
|
@ -2064,7 +1936,7 @@ ArgParser::argAAModDate(char* parameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argAAMimeType(char* parameter)
|
ArgParser::argAttMimetype(char* parameter)
|
||||||
{
|
{
|
||||||
if (strchr(parameter, '/') == nullptr)
|
if (strchr(parameter, '/') == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -2074,19 +1946,19 @@ ArgParser::argAAMimeType(char* parameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argAADescription(char* parameter)
|
ArgParser::argAttDescription(char* parameter)
|
||||||
{
|
{
|
||||||
o.attachments_to_add.back().description = parameter;
|
o.attachments_to_add.back().description = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argAAReplace()
|
ArgParser::argAttReplace()
|
||||||
{
|
{
|
||||||
o.attachments_to_add.back().replace = true;
|
o.attachments_to_add.back().replace = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argEndAddAttachment()
|
ArgParser::argEndAttachment()
|
||||||
{
|
{
|
||||||
static std::string now = QUtil::qpdf_time_to_pdf_time(
|
static std::string now = QUtil::qpdf_time_to_pdf_time(
|
||||||
QUtil::get_current_qpdf_time());
|
QUtil::get_current_qpdf_time());
|
||||||
|
@ -2119,25 +1991,25 @@ ArgParser::argEndAddAttachment()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argCApositional(char* arg)
|
ArgParser::argCopyAttPositional(char* arg)
|
||||||
{
|
{
|
||||||
o.attachments_to_copy.back().path = arg;
|
o.attachments_to_copy.back().path = arg;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argCAprefix(char* parameter)
|
ArgParser::argCopyAttPrefix(char* parameter)
|
||||||
{
|
{
|
||||||
o.attachments_to_copy.back().prefix = parameter;
|
o.attachments_to_copy.back().prefix = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argCApassword(char* parameter)
|
ArgParser::argCopyAttPassword(char* parameter)
|
||||||
{
|
{
|
||||||
o.attachments_to_copy.back().password = parameter;
|
o.attachments_to_copy.back().password = parameter;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ArgParser::argEndCopyAttachments()
|
ArgParser::argEndCopyAttachment()
|
||||||
{
|
{
|
||||||
if (o.attachments_to_copy.back().path.empty())
|
if (o.attachments_to_copy.back().path.empty())
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,3 +11,134 @@ static constexpr char const* O_256_BIT_ENCRYPTION = "256-bit encryption";
|
||||||
static constexpr char const* O_UNDERLAY_OVERLAY = "underlay/overlay";
|
static constexpr char const* O_UNDERLAY_OVERLAY = "underlay/overlay";
|
||||||
static constexpr char const* O_ATTACHMENT = "attachment";
|
static constexpr char const* O_ATTACHMENT = "attachment";
|
||||||
static constexpr char const* O_COPY_ATTACHMENT = "copy attachment";
|
static constexpr char const* O_COPY_ATTACHMENT = "copy attachment";
|
||||||
|
|
||||||
|
void argHelp();
|
||||||
|
void argVersion();
|
||||||
|
void argCopyright();
|
||||||
|
void argJsonHelp();
|
||||||
|
void argShowCrypto();
|
||||||
|
void argPositional(char*);
|
||||||
|
void argAddAttachment();
|
||||||
|
void argAllowWeakCrypto();
|
||||||
|
void argCheck();
|
||||||
|
void argCheckLinearization();
|
||||||
|
void argCoalesceContents();
|
||||||
|
void argCopyAttachmentsFrom();
|
||||||
|
void argDecrypt();
|
||||||
|
void argDeterministicId();
|
||||||
|
void argEmpty();
|
||||||
|
void argEncrypt();
|
||||||
|
void argExternalizeInlineImages();
|
||||||
|
void argFilteredStreamData();
|
||||||
|
void argFlattenRotation();
|
||||||
|
void argGenerateAppearances();
|
||||||
|
void argIgnoreXrefStreams();
|
||||||
|
void argIsEncrypted();
|
||||||
|
void argJson();
|
||||||
|
void argKeepInlineImages();
|
||||||
|
void argLinearize();
|
||||||
|
void argListAttachments();
|
||||||
|
void argNewlineBeforeEndstream();
|
||||||
|
void argNoOriginalObjectIds();
|
||||||
|
void argNoWarn();
|
||||||
|
void argOptimizeImages();
|
||||||
|
void argOverlay();
|
||||||
|
void argPages();
|
||||||
|
void argPasswordIsHexKey();
|
||||||
|
void argPreserveUnreferenced();
|
||||||
|
void argPreserveUnreferencedResources();
|
||||||
|
void argProgress();
|
||||||
|
void argQdf();
|
||||||
|
void argRawStreamData();
|
||||||
|
void argRecompressFlate();
|
||||||
|
void argRemovePageLabels();
|
||||||
|
void argReplaceInput();
|
||||||
|
void argRequiresPassword();
|
||||||
|
void argShowEncryption();
|
||||||
|
void argShowEncryptionKey();
|
||||||
|
void argShowLinearization();
|
||||||
|
void argShowNpages();
|
||||||
|
void argShowPages();
|
||||||
|
void argShowXref();
|
||||||
|
void argStaticAesIv();
|
||||||
|
void argStaticId();
|
||||||
|
void argSuppressPasswordRecovery();
|
||||||
|
void argSuppressRecovery();
|
||||||
|
void argUnderlay();
|
||||||
|
void argVerbose();
|
||||||
|
void argWarningExit0();
|
||||||
|
void argWithImages();
|
||||||
|
void argCollate(char *);
|
||||||
|
void argSplitPages(char *);
|
||||||
|
void argCompressionLevel(char *);
|
||||||
|
void argCopyEncryption(char *);
|
||||||
|
void argEncryptionFilePassword(char *);
|
||||||
|
void argForceVersion(char *);
|
||||||
|
void argIiMinBytes(char *);
|
||||||
|
void argJsonObject(char *);
|
||||||
|
void argKeepFilesOpenThreshold(char *);
|
||||||
|
void argLinearizePass1(char *);
|
||||||
|
void argMinVersion(char *);
|
||||||
|
void argOiMinArea(char *);
|
||||||
|
void argOiMinHeight(char *);
|
||||||
|
void argOiMinWidth(char *);
|
||||||
|
void argPassword(char *);
|
||||||
|
void argPasswordFile(char *);
|
||||||
|
void argRemoveAttachment(char *);
|
||||||
|
void argRotate(char *);
|
||||||
|
void argShowAttachment(char *);
|
||||||
|
void argShowObject(char *);
|
||||||
|
void argCompressStreams(char *);
|
||||||
|
void argDecodeLevel(char *);
|
||||||
|
void argFlattenAnnotations(char *);
|
||||||
|
void argJsonKey(char *);
|
||||||
|
void argKeepFilesOpen(char *);
|
||||||
|
void argNormalizeContent(char *);
|
||||||
|
void argObjectStreams(char *);
|
||||||
|
void argPasswordMode(char *);
|
||||||
|
void argRemoveUnreferencedResources(char *);
|
||||||
|
void argStreamData(char *);
|
||||||
|
void argPagesPositional(char*);
|
||||||
|
void argPagesPassword(char *);
|
||||||
|
void argEndPages();
|
||||||
|
void argEncPositional(char*);
|
||||||
|
void argEndEncryption();
|
||||||
|
void argEnc40Extract(char *);
|
||||||
|
void argEnc40Annotate(char *);
|
||||||
|
void argEnc40Print(char *);
|
||||||
|
void argEnc40Modify(char *);
|
||||||
|
void argEnd40BitEncryption();
|
||||||
|
void argEnc128CleartextMetadata();
|
||||||
|
void argEnc128ForceV4();
|
||||||
|
void argEnc128Accessibility(char *);
|
||||||
|
void argEnc128Extract(char *);
|
||||||
|
void argEnc128Print(char *);
|
||||||
|
void argEnc128Assemble(char *);
|
||||||
|
void argEnc128Annotate(char *);
|
||||||
|
void argEnc128Form(char *);
|
||||||
|
void argEnc128ModifyOther(char *);
|
||||||
|
void argEnc128Modify(char *);
|
||||||
|
void argEnc128UseAes(char *);
|
||||||
|
void argEnd128BitEncryption();
|
||||||
|
void argEnc256ForceR5();
|
||||||
|
void argEnc256AllowInsecure();
|
||||||
|
void argEnd256BitEncryption();
|
||||||
|
void argUOPositional(char*);
|
||||||
|
void argUOTo(char *);
|
||||||
|
void argUOFrom(char *);
|
||||||
|
void argUORepeat(char *);
|
||||||
|
void argUOPassword(char *);
|
||||||
|
void argEndUnderlayOverlay();
|
||||||
|
void argAttPositional(char*);
|
||||||
|
void argAttReplace();
|
||||||
|
void argAttKey(char *);
|
||||||
|
void argAttFilename(char *);
|
||||||
|
void argAttCreationdate(char *);
|
||||||
|
void argAttModdate(char *);
|
||||||
|
void argAttMimetype(char *);
|
||||||
|
void argAttDescription(char *);
|
||||||
|
void argEndAttachment();
|
||||||
|
void argCopyAttPositional(char*);
|
||||||
|
void argCopyAttPrefix(char *);
|
||||||
|
void argCopyAttPassword(char *);
|
||||||
|
void argEndCopyAttachment();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user