diff --git a/scribus/plugins/scripter/api_printer.cpp b/scribus/plugins/scripter/api_printer.cpp
index 1de480c6f..fb5d05f80 100644
--- a/scribus/plugins/scripter/api_printer.cpp
+++ b/scribus/plugins/scripter/api_printer.cpp
@@ -74,11 +74,9 @@ void PrinterAPI::doPrint()
 	QString printcomm;
 	bool fil, PSfile;
 	PSfile = false;
-
 //    ReOrderText(ScCore->primaryMainWindow()->doc, ScCore->primaryMainWindow()->view);
 	prn = printer;
 	fna = file;
-	fil = (printer == QString("File")) ? true : false;
 	std::vector<int> pageNs;
 	PrintOptions options;
 	for (int i = 0; i < pages.size(); ++i) {
@@ -88,7 +86,6 @@ void PrinterAPI::doPrint()
 	SepName = separation;
 	options.printer   = prn;
 	options.prnEngine = (PrintEngine) pslevel;
-	options.toFile    = fil;
 	options.separationName = SepName;
 	options.outputSeparations = (SepName == QString("No")) ?  false : true;
 	options.useColor = color;
@@ -108,6 +105,8 @@ void PrinterAPI::doPrint()
 	if (!PrinterUtil::checkPrintEngineSupport(options.printer, options.prnEngine, options.toFile))
 		options.prnEngine = PrinterUtil::getDefaultPrintEngine(options.printer, options.toFile);
 	printcomm = cmd;
+	fil = (printer == QString("File")) && printcomm.trimmed().isEmpty();
+	options.toFile    = fil;
 	QMap<QString, QMap<uint, FPointArray> > ReallyUsed;
 	ReallyUsed.clear();
 	ScCore->primaryMainWindow()->doc->getUsedFonts(ReallyUsed);
@@ -159,7 +158,7 @@ void PrinterAPI::doPrint()
 
 			if (!fil)
 			{
-				if (!printcomm.isEmpty())
+			  if (!printcomm.trimmed().isEmpty())
 					cmd = printcomm + " "+fna;
 				else
 				{
