1 // $Id: image.cpp,v 1.22.2.1 2008/03/07 11:06:26 stm Exp $
2 //
3 // PDFlib client: image example in C++
4 //
5 
6 #include <iostream>
7 #include <cstdlib>
8 
9 #include "pdflib.hpp"
10 
11 using namespace std;
12 
13 int
main(void)14 main(void)
15 {
16     try {
17 	PDFlib *p;
18 	int image;
19 	char *imagefile = (char *) "nesrin.jpg";
20 	// This is where font/image/PDF input files live. Adjust as necessary.
21 	char *searchpath = (char *) "../data";
22 
23 	p = new PDFlib();
24 
25 	//  This means we must check return values of load_font() etc.
26 	p->set_parameter("errorpolicy", "return");
27 
28 	p->set_parameter("SearchPath", searchpath);
29 
30 	// This line is required to avoid problems on Japanese systems
31 	p->set_parameter("hypertextencoding", "host");
32 
33 	if (p->begin_document("image.pdf", "") == -1) {
34 	    cerr << "Error: " << p->get_errmsg() << endl; return 2;
35 	}
36 
37 	p->set_info("Creator", "image.cpp");
38 	p->set_info("Author", "Thomas Merz");
39 	p->set_info("Title", "image sample (C++)!");
40 
41 	image = p->load_image("auto", imagefile, "");
42 
43 	if (image == -1) {
44 	    cerr << "Error: " << p->get_errmsg() << endl;
45 	    exit(3);
46 	}
47 
48 	// dummy page size, will be adjusted by PDF_fit_image()
49 	p->begin_page_ext(10, 10, "");
50 	p->fit_image(image, 0.0, 0.0, "adjustpage");
51 	p->close_image(image);
52 	p->end_page_ext("");
53 
54 	p->end_document("");
55     }
56 
57     catch (PDFlib::Exception &ex) {
58 	cerr << "PDFlib exception occurred in hello sample: " << endl;
59 	cerr << "[" << ex.get_errnum() << "] " << ex.get_apiname()
60 	    << ": " << ex.get_errmsg() << endl;
61 	return 2;
62     }
63 
64     return 0;
65 }
66