in poi-ooxml/src/main/java/org/apache/poi/xslf/util/PPTX2PNG.java [126:281]
private boolean parseCommandLine(String[] args) {
if (args.length == 0) {
usage(null);
return false;
}
for (int i = 0; i < args.length; i++) {
String opt = (i+1 < args.length) ? args[i+1] : null;
switch (args[i].toLowerCase(Locale.ROOT)) {
case "-scale":
if (opt != null) {
scale = Float.parseFloat(opt);
i++;
}
break;
case "-slide":
slidenumStr = opt;
i++;
break;
case "-format":
format = opt;
i++;
break;
case "-outdir":
if (opt != null) {
outdir = new File(opt);
i++;
}
break;
case "-outfile":
outfile = opt;
i++;
break;
case "-outpat":
outPattern = opt;
i++;
break;
case "-quiet":
quiet = true;
break;
case "-dump":
if (opt != null) {
dumpfile = new File(opt);
i++;
} else {
dumpfile = new File("pptx2png.dump");
}
break;
case "-fixside":
if (opt != null) {
fixSide = opt.toLowerCase(Locale.ROOT);
i++;
} else {
fixSide = "long";
}
break;
case "-inputtype":
if (opt != null) {
defaultFileType = FileMagic.valueOf(opt);
i++;
} else {
defaultFileType = FileMagic.OLE2;
}
break;
case "-textasshapes":
textAsShapes = true;
break;
case "-ignoreparse":
ignoreParse = true;
break;
case "-extractembedded":
extractEmbedded = true;
break;
case "-charset":
if (opt != null) {
charset = Charset.forName(opt);
i++;
} else {
charset = LocaleUtil.CHARSET_1252;
}
break;
case "-emfheaderbounds":
emfHeaderBounds = true;
break;
case "-fontdir":
if (opt != null) {
fontDir = opt;
i++;
} else {
fontDir = null;
}
break;
case "-fontttf":
if (opt != null) {
fontTtf = opt;
i++;
} else {
fontTtf = null;
}
break;
case "-fontmap":
if (opt != null) {
fontMap = opt;
i++;
} else {
fontMap = null;
}
break;
default:
file = new File(args[i]);
break;
}
}
final boolean isStdin = file != null && "stdin".equalsIgnoreCase(file.getName());
if (!isStdin && (file == null || !file.exists())) {
usage("File not specified or it doesn't exist");
return false;
}
if (format == null || !format.matches("^(png|gif|jpg|null|svg|pdf|log)$")) {
usage("Invalid format given");
return false;
}
if (outdir == null) {
if (isStdin) {
usage("When reading from STDIN, you need to specify an outdir.");
return false;
} else {
outdir = file.getAbsoluteFile().getParentFile();
}
}
if (!outdir.exists()) {
usage("Outdir doesn't exist");
return false;
}
if (!"null".equals(format) && (outdir == null || !outdir.exists() || !outdir.isDirectory())) {
usage("Output directory doesn't exist");
return false;
}
if (scale < 0) {
usage("Invalid scale given");
return false;
}
if (!"long,short,width,height,scale".contains(fixSide)) {
usage("<fixside> must be one of long / short / width / height / scale");
return false;
}
return true;
}