Преглед на файлове

Custom page size

Signed-off-by: Jakob Truelsen <jakobt@geneshaft.antialize.dk>
Benoit Garret преди 16 години
родител
ревизия
f27dce4875
променени са 3 файла, в които са добавени 21 реда и са изтрити 2 реда
  1. 2 0
      src/arguments.cc
  2. 8 1
      src/pageconverter.cc
  3. 11 1
      src/settings.hh

+ 2 - 0
src/arguments.cc

@@ -445,6 +445,8 @@ CommandLineParserPrivate::CommandLineParserPrivate(Settings & s):
 	addarg("htmldoc", 0, "Output program html help", new Caller<ReadmeFunc<true> >());
 	addarg("readme", 0, "Output program readme", new Caller<ReadmeFunc<false> >());
 	addarg("dpi",'d',"Change the dpi explicitly (this has no effect on X11 based systems)", new IntSetter(s.dpi,"dpi",-1));
+	addarg("page-height", 'h', "Page height (default unit millimeter)", new UnitRealSetter(s.size.height,"unitread",QPair<qreal,QPrinter::Unit>(-1,QPrinter::Millimeter)));
+	addarg("page-width", 'w', "Page width  (default unit millimeter)", new UnitRealSetter(s.size.width,"unitread",QPair<qreal,QPrinter::Unit>(-1,QPrinter::Millimeter)));
 	addarg("disable-javascript",'n',"Do not allow web pages to run javascript", new ConstSetter<bool>(s.enableJavascript,false,true));
 	addarg("grayscale",'g',"PDF will be generated in grayscale", new ConstSetter<QPrinter::ColorMode>(s.colorMode,QPrinter::GrayScale,QPrinter::Color));
 	addarg("lowquality",'l',"Generates lower quality pdf/ps. Useful to shrink the result document space", new ConstSetter<QPrinter::PrinterMode>(s.resolution,QPrinter::ScreenResolution,QPrinter::HighResolution));

+ 8 - 1
src/pageconverter.cc

@@ -182,7 +182,14 @@ void PageConverterPrivate::preparePrint(bool ok) {
 	printer->setPageMargins(settings.margin.left.first, settings.margin.top.first,
 							settings.margin.right.first, settings.margin.bottom.first,
 							settings.margin.left.second);
-	printer->setPageSize(settings.pageSize);
+	
+	if((settings.size.height.first != -1) && (settings.size.width.first != -1)) {
+		printer->setPaperSize(QSizeF(settings.size.width.first,settings.size.height.first), settings.size.height.second);
+	}
+	else {
+		printer->setPaperSize(settings.pageSize);
+	}
+	
 	printer->setOrientation(settings.orientation);
 	printer->setColorMode(settings.colorMode);
 

+ 11 - 1
src/settings.hh

@@ -93,7 +93,15 @@ struct Settings {
 		//!Margin applied to the leftp of the page
 		QPair<qreal, QPrinter::Unit> left;
 	};
-		
+	
+	/*! \brief Settings consdering page size */
+	struct SizeSettings {
+		//!Height of the page
+		QPair<qreal, QPrinter::Unit> height;
+		//!Width of the page
+		QPair<qreal, QPrinter::Unit> width;
+	};
+	
 	//! Proxy related settings
 	ProxySettings proxy;
 	//! Header related settings
@@ -102,6 +110,8 @@ struct Settings {
 	HeaderFooterSettings footer;
 	//! Margin related settings
 	MarginSettings margin;
+	//! Size related settings
+	SizeSettings size;
 	//! Settings regarding the TOC
 	TOCSettings toc;