[wkhtmltopdf] 0.12.0

Mamoru TASAKA mtasaka at fedoraproject.org
Tue Jun 3 05:19:02 UTC 2014


commit 12f3990f6239bec26eea900233e67f919feff172
Author: Mamoru TASAKA <mtasaka at fedoraproject.org>
Date:   Tue Jun 3 14:18:52 2014 +0900

    0.12.0

 .gitignore                                         |    1 +
 sources                                            |    2 +-
 ...pdf-0.12.0-fix-compilation-with-native-qt.patch |  209 ++++++++++++++++++++
 wkhtmltopdf.spec                                   |   30 +++-
 4 files changed, 234 insertions(+), 8 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index f528236..bcf3929 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
 /wkhtmltopdf-0.11.0_rc1.tar.bz2
+/wkhtmltopdf-0.12.0.tar.gz
diff --git a/sources b/sources
index 4fc5813..b6ebd41 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-65378cf59698c676fcd6d8f5efd54be6  wkhtmltopdf-0.11.0_rc1.tar.bz2
+e2af84222d651791d10270ce9ccf1245  wkhtmltopdf-0.12.0.tar.gz
diff --git a/wkhtmltopdf-0.12.0-fix-compilation-with-native-qt.patch b/wkhtmltopdf-0.12.0-fix-compilation-with-native-qt.patch
new file mode 100644
index 0000000..4f616b7
--- /dev/null
+++ b/wkhtmltopdf-0.12.0-fix-compilation-with-native-qt.patch
@@ -0,0 +1,209 @@
+--- wkhtmltopdf-0.12.0/src/lib/pdfconverter.cc.qt	2014-02-06 17:38:26.000000000 +0900
++++ wkhtmltopdf-0.12.0/src/lib/pdfconverter.cc	2014-06-03 13:57:07.829410257 +0900
+@@ -78,9 +78,9 @@
+ 
+ PdfConverterPrivate::PdfConverterPrivate(PdfGlobal & s, PdfConverter & o) :
+ 	settings(s), pageLoader(s.load),
+-	out(o), printer(0), painter(0), webPrinter(0)
++	out(o), printer(0), painter(0)
+ #ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+-    , measuringHFLoader(s.load), hfLoader(s.load), tocLoader1(s.load), tocLoader2(s.load)
++    , webPrinter(0), measuringHFLoader(s.load), hfLoader(s.load), tocLoader1(s.load), tocLoader2(s.load)
+ 	, tocLoader(&tocLoader1), tocLoaderOld(&tocLoader2)
+     , outline(0), currentHeader(0), currentFooter(0)
+ #endif
+@@ -151,13 +151,15 @@
+ 		fail();
+ 		return;
+ 	}
+-#endif
++#else
+     bool headerHeightsCalcNeeded = false;
++#endif
+ 
+ 	for (QList<PageObject>::iterator i=objects.begin(); i != objects.end(); ++i) {
+ 		PageObject & o=*i;
+ 		settings::PdfObject & s = o.settings;
+ 
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+         if (!s.header.htmlUrl.isEmpty() ) {
+             if (looksLikeHtmlAndNotAUrl(s.header.htmlUrl)) {
+                 emit out.error("--header-html should be a URL and not a string containing HTML code.");
+@@ -195,6 +197,7 @@
+                 o.footerReserveHeight = settings.margin.bottom.first + s.footer.spacing;
+             }
+         }
++#endif
+ 
+ 		if (!s.isTableOfContent) {
+ 			o.loaderObject = pageLoader.addResource(s.page, s.load, &o.data);
+@@ -207,6 +210,7 @@
+ 	emit out.phaseChanged();
+ 	loadProgress(0);
+ 
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+     if (headerHeightsCalcNeeded) {
+         // preload header/footer to check their heights
+         measuringHFLoader.load();
+@@ -225,8 +229,12 @@
+ 
+         pageLoader.load();
+     }
++#else
++    pageLoader.load();
++#endif
+ }
+ 
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ // calculates header/footer height
+ // returns millimeters
+ qreal PdfConverterPrivate::calculateHeaderHeight(PageObject & object, QWebPage & header) {
+@@ -252,6 +260,8 @@
+     return (height / PdfConverter::millimeterToPointMultiplier);
+ }
+ 
++#endif
++
+ QPrinter * PdfConverterPrivate::createPrinter(const QString & tempFile) {
+     QPrinter * printer = new QPrinter(settings.resolution);
+     if (settings.dpi != -1) printer->setResolution(settings.dpi);
+@@ -275,6 +285,7 @@
+     return printer;
+ }
+ 
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ void PdfConverterPrivate::preprocessPage(PageObject & obj) {
+ 	currentObject++;
+ 	if (obj.settings.isTableOfContent) {
+@@ -309,7 +320,7 @@
+ 		outline->addEmptyWebPage();
+ 	painter->restore();
+ }
+-
++#endif
+ 
+ /*!
+  * Prepares printing out the document to the pdf file
+@@ -353,9 +364,15 @@
+ 	}
+ 
+     //Setup margins and papersize
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+     printer->setPageMargins(settings.margin.left.first, objects[0].headerReserveHeight,
+                                 settings.margin.right.first, objects[0].footerReserveHeight,
+                                 settings.margin.left.second);
++#else
++    printer->setPageMargins(settings.margin.left.first, settings.margin.top.first,
++                                settings.margin.right.first, settings.margin.bottom.first,
++                                settings.margin.left.second);
++#endif
+ 
+ 	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);
+@@ -656,7 +673,6 @@
+ 	}
+ 
+ }
+-#endif
+ 
+ void PdfConverterPrivate::handleTocPage(PageObject & obj) {
+ 	painter->save();
+@@ -670,6 +686,7 @@
+ 	tocChanged = outline->replaceWebPage(obj.number, obj.settings.toc.captionText, wp, obj.page->mainFrame(), obj.settings, obj.localLinks, obj.anchors) || tocChanged;
+ 	painter->restore();
+ }
++#endif
+ 
+ 
+ void PdfConverterPrivate::tocLoaded(bool ok) {
+@@ -731,6 +748,7 @@
+         return;
+     }
+ 
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+     for (int d=0; d < objects.size(); ++d) {
+         PageObject & obj = objects[d];
+         if (obj.measuringHeader) {
+@@ -743,6 +761,7 @@
+             obj.footerReserveHeight = calculateHeaderHeight(obj, *obj.measuringFooter) + obj.settings.header.spacing;
+         }
+     }
++#endif
+ 
+     pageLoader.load();
+ }
+@@ -758,6 +777,7 @@
+ 	printDocument();
+ }
+ 
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ 
+ void PdfConverterPrivate::spoolPage(int page) {
+ 	progressString = QString("Page ") + QString::number(actualPage) + QString(" of ") + QString::number(actualPages);
+@@ -904,7 +924,8 @@
+ 	}
+ 
+ }
+-			
++		
++#endif	
+ 
+ void PdfConverterPrivate::printDocument() {
+ #ifndef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+--- wkhtmltopdf-0.12.0/src/lib/pdfconverter_p.hh.qt	2014-02-06 17:38:26.000000000 +0900
++++ wkhtmltopdf-0.12.0/src/lib/pdfconverter_p.hh	2014-06-03 13:50:21.706157434 +0900
+@@ -94,8 +94,11 @@
+ 	}
+ 
+ 	PageObject(const settings::PdfObject & set, const QString * d=NULL):
+-        settings(set), loaderObject(0), page(0), headerReserveHeight(0), footerReserveHeight(0),
+-        measuringHeader(0), measuringFooter(0) {
++		settings(set), loaderObject(0), page(0)
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
++		, headerReserveHeight(0), footerReserveHeight(0), measuringHeader(0), measuringFooter(0)
++#endif
++	{
+ 		if (d) data=*d;
+ 	};
+ 
+@@ -134,6 +137,7 @@
+ 	bool tocChanged;
+ 	int actualPage;
+ 	int pageNumber;
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ 	QWebPrinter * webPrinter;
+ 	int objectPage;
+ 
+@@ -144,7 +148,6 @@
+ 	QHash<int, QVector<QWebElement> > pageFormElements;
+ 	bool pageHasHeaderFooter;
+ 	
+-#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+     // loader for measuringHeader and measuringFooter
+     MultiPageLoader measuringHFLoader;
+ 
+@@ -163,14 +166,14 @@
+ 	void fillParms(QHash<QString, QString> & parms, int page, const PageObject & object);
+ 	QString hfreplace(const QString & q, const QHash<QString, QString> & parms);
+ 	QWebPage * loadHeaderFooter(QString url, const QHash<QString, QString> & parms, const settings::PdfObject & ps);
+-
++    qreal calculateHeaderHeight(PageObject & object, QWebPage & header);
+ 
+ #endif
+ 	QWebPage * currentHeader;
+ 	QWebPage * currentFooter;
+-    qreal calculateHeaderHeight(PageObject & object, QWebPage & header);
+     QPrinter * createPrinter(const QString & tempFile);
+ 
++#ifdef __EXTENSIVE_WKHTMLTOPDF_QT_HACK__
+ 	void handleTocPage(PageObject & obj);
+ 	void preprocessPage(PageObject & obj);
+ 	void spoolPage(int page);
+@@ -179,6 +182,7 @@
+ 	void handleFooter(QWebPage * frame, int page);
+ 	void beginPrintObject(PageObject & obj);
+ 	void endPrintObject(PageObject & obj);
++#endif
+ 
+ 	void loadTocs();
+ 	void loadHeaders();
diff --git a/wkhtmltopdf.spec b/wkhtmltopdf.spec
index 2e1c8c2..1c95741 100644
--- a/wkhtmltopdf.spec
+++ b/wkhtmltopdf.spec
@@ -1,16 +1,22 @@
-%global	mainver	0.11.0
-%global	minorver	rc1
+%global	mainver	0.12.0
+#%%global	minorver	rc1
 
-%global	fedorarel	2
+%global	fedorarel	1
 
 Name:		wkhtmltopdf
 Version:	%{mainver}
-Release:	%{?minorver:0.}%{fedorarel}%{?minorver:.%minorver}%{?dist}.1
+Release:	%{?minorver:0.}%{fedorarel}%{?minorver:.%minorver}%{?dist}
 Summary:	Simple shell utility to convert html to pdf
 
 License:	GPLv3+
-URL:		http://code.google.com/p/wkhtmltopdf/
-Source0:	http://wkhtmltopdf.googlecode.com/files/%{name}-%{mainver}%{?minorver:_%minorver}.tar.bz2
+URL:		http://wkhtmltopdf.org/
+#Source0:	http://wkhtmltopdf.googlecode.com/files/%{name}-%{mainver}%{?minorver:_%minorver}.tar.bz2
+# https://github.com/wkhtmltopdf/wkhtmltopdf/archive/%%{version}.tar.gz
+# Renamed above
+Source0:	%{name}-%{version}.tar.gz
+# https://github.com/wkhtmltopdf/wkhtmltopdf/commit/88d5e32c7392855650f8bfe0089662bb41ae07c.patch
+# Slightly modified
+Patch0:	wkhtmltopdf-0.12.0-fix-compilation-with-native-qt.patch
 
 BuildRequires:	qtwebkit-devel%{?isa}
 
@@ -30,11 +36,17 @@ developing applications that use %{name}.
 
 %prep
 %setup -q -n %{name}-%{mainver}%{?minorver:_%minorver}
+%patch0 -p1 -b .qt
 # libdir handling.. better handling needed
 sed -i.lib -e \
 	'/INSTALLBASE/s|lib|%{_lib}|' \
 	src/lib/lib.pro
 
+# Remove BOM
+sed -i.bom -e 's|\xEF\xBB\xBF||' AUTHORS
+touch -r AUTHORS{.bom,}
+rm -f AUTHORS.bom
+
 %build
 %{_qt4_qmake}
 make %{_smp_mflags}
@@ -48,8 +60,9 @@ make install \
 
 
 %files
+%doc	AUTHORS
 %doc	COPYING
-%doc	README_WKHTMLTO*
+%doc	README.md
 
 %{_libdir}/libwkhtmltox.so.0*
 %{_bindir}/wkhtmltoimage
@@ -62,6 +75,9 @@ make install \
 
 
 %changelog
+* Tue Jun  3 2014 Mamoru TASAKA <mtasaka at fedoraproject.org> - 0.12.0-1
+- 0.12.0
+
 * Sun Aug 04 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 0.11.0-0.2.rc1.1
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
 


More information about the scm-commits mailing list