Skip to content
This repository was archived by the owner on Jan 2, 2023. It is now read-only.

Commit 1e55e71

Browse files
committed
Working program
0 parents  commit 1e55e71

3 files changed

Lines changed: 71 additions & 0 deletions

File tree

CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2+
PROJECT(wkhtmltopdf)
3+
SET( CMAKE_COLOR_MAKEFILE ON )
4+
SET( CMAKE_VERBOSE_MAKEFILE ON )
5+
SET( CMAKE_INCLUDE_CURRENT_DIR TRUE )
6+
ADD_DEFINITIONS( -Wall -ansi)
7+
SET( QT_USE_QTWEBKIT TRUE )
8+
FIND_PACKAGE( Qt4 REQUIRED )
9+
INCLUDE( ${QT_USE_FILE} )
10+
INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} )
11+
QT4_WRAP_CPP(HAT wkhtmltopdf.hh)
12+
ADD_EXECUTABLE(wkhtmltopdf wkhtmltopdf.cc ${HAT})
13+
TARGET_LINK_LIBRARIES( wkhtmltopdf ${QT_LIBRARIES} )
14+
INSTALL(TARGETS wkhtmltopdf DESTINATION bin)

wkhtmltopdf.cc

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#include "wkhtmltopdf.hh"
2+
QApplication * app;
3+
4+
void WKHtmlToPdf::run(int argc, char ** argv) {
5+
if(argc != 3) {
6+
fprintf(stderr,
7+
"Usage: wkhtmltopdf <input file> <output file>\n"
8+
"\t<input file> URL or local path to html document\n"
9+
"\t<output file> Name of ps or pdf file to be produced\n");
10+
exit(1);
11+
}
12+
QUrl url(argv[1]);
13+
v.load(url);
14+
out = argv[2];
15+
connect(&v, SIGNAL(loadProgress(int)), this, SLOT(loadProgress(int)));
16+
connect(&v, SIGNAL(loadFinished()), this, SLOT(loadFinished()));
17+
}
18+
19+
void WKHtmlToPdf::loadFinished() {
20+
printf("Outputting page \r");
21+
fflush(stdout);
22+
QPrinter p(QPrinter::HighResolution);
23+
p.setOutputFileName(out);
24+
p.setPaperSize(QPrinter::A4);
25+
v.print(&p);
26+
printf("Done \n");
27+
app->quit();
28+
}
29+
30+
void WKHtmlToPdf::loadProgress(int progress) {
31+
printf("Loading page: %d%% \r",progress);
32+
fflush(stdout);
33+
}
34+
35+
int main(int argc, char * argv[]) {
36+
QApplication a(argc,argv);
37+
app = &a;
38+
WKHtmlToPdf x;
39+
x.run(argc,argv);
40+
return a.exec();
41+
}

wkhtmltopdf.hh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#ifndef __wkhtmltopdf_hh__
2+
#define __wkhtmltopdf_hh__
3+
#include <QObject>
4+
#include <QtGui>
5+
#include <QWebView>
6+
class WKHtmlToPdf : public QObject {
7+
Q_OBJECT
8+
public:
9+
QWebView v;
10+
char * out;
11+
void run(int argc, char** argv);
12+
public slots:
13+
void loadFinished();
14+
void loadProgress(int progress);
15+
};
16+
#endif //__wkhtmltopdf_hh__

0 commit comments

Comments
 (0)