org.sejda.cli.model.MergeTaskCliArguments Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sejda-console Show documentation
Show all versions of sejda-console Show documentation
The sejda-console is a shell interface for Sejda to perform pdf manipulation tasks such as merge or split through the command line.
The newest version!
/*
* Created on Sep 3, 2011
* Copyright 2010 by Eduard Weissmann ([email protected]).
*
* This file is part of the Sejda source code
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package org.sejda.cli.model;
import org.sejda.conversion.AcroFormPolicyAdapter;
import org.sejda.conversion.MultiplePageRangeSetAdapter;
import org.sejda.conversion.OutlinePolicyAdapter;
import org.sejda.conversion.PdfFileSourceListAdapter;
import org.sejda.conversion.ToCPolicyAdapter;
import com.lexicalscope.jewel.cli.CommandLineInterface;
import com.lexicalscope.jewel.cli.Option;
/**
* Specifications for command line options of the Concat/Merge task
*
* @author Eduard Weissmann
*
*/
@CommandLineInterface(application = TaskCliArguments.EXECUTABLE_NAME + " merge")
public interface MergeTaskCliArguments
extends CliArgumentsWithPdfFileOutput, MultipleOptionalPdfSourceTaskCliArguments {
@Option(shortName = "a", description = "acro forms merge policy. {discard, merge, merge_renaming, flatten}. Default is 'discard' (optional)", defaultValue = "discard")
AcroFormPolicyAdapter getAcroForms();
@Option(description = "add a blank page after each merged document if the number of pages is odd (optional)")
boolean isAddBlanks();
@Option(shortName = "d", description = "directory containing pdf files to merge. Files will be merged in alphabetical order. (optional)")
PdfFileSourceListAdapter getDirectory();
boolean isDirectory();
@Option(shortName = "e", description = "regular expression the file names have to match when the directory input is used (Ex -e \"test(.*).pdf\"). (optional)")
String getMatchingRegEx();
boolean isMatchingRegEx();
// TODO: make sure optional options are reflected in the jewelcli produced help output, add isXXX
@Option(shortName = "s", description = "page selection script. You can set a subset of pages to merge as a colon separated list of page selections. Order of the pages is relevant. Accepted values: 'all' or 'num1-num2' or"
+ " 'num-' or 'num1,num2-num3..' (EX. -f /tmp/file1.pdf /tmp/file2.pdf -s all:all:), "
+ "(EX. -f /tmp/file1.pdf /tmp/file2.pdf /tmp/file3.pdf -s all:12-14:32,12-14,4,34-:) to merge file1.pdf, pages 12,13,14 of file2.pdf and pages 32,12,13,14,4,34,35.. of file3.pdf. "
+ "If -s is not set default behaviour is to merge document completely (optional)", defaultValue = "")
MultiplePageRangeSetAdapter getPageSelection();
@Option(shortName = "l", description = "xml or csv file containing pdf files list to concat. If csv file in comma separated value format; "
+ "if xml file (optional)")
PdfFileSourceListAdapter getFilesListConfig();
boolean isFilesListConfig();
@Option(shortName = "b", description = "bookmarks (outline) merge policy. {discard, retain, one_entry_each_doc, retain_as_one_entry}. Default is 'retain' (optional)", defaultValue = "retain")
OutlinePolicyAdapter getBookmarks();
@Option(shortName = "t", description = "table of contents creation policy dictating if a ToC should be created. {none, file_names, doc_titles}. Default is 'none' (optional)", defaultValue = "none")
ToCPolicyAdapter getToc();
@Option(description = "add a footer to every page with the name of the original PDF document the page belonged to (optional)")
boolean getFooter();
}