#include <iostream>
#include "pdflib.hpp"
using namespace std;
using namespace pdflib;
int
main(void)
{
try {
/* This is where the data files are. Adjust as necessary. */
const wstring searchpath = L"../data";
PDFlib p;
const wstring imagefile = L"nesrin.jpg";
int image;
wostringstream optlist;
// This means we must check return values of load_font() etc.
p.set_option(L"errorpolicy=return");
// Set the search path for fonts and PDF files
optlist.str(L"");
optlist << L"searchpath={{" << searchpath << L"}}";
p.set_option(optlist.str());
if (p.begin_document(L"starter_basic.pdf", L"") == -1) {
wcerr << L"Error: " << p.get_errmsg() << endl;
return 2;
}
p.set_info(L"Creator", L"PDFlib starter sample");
p.set_info(L"Title", L"starter_basic");
image = p.load_image(L"auto", imagefile, L"");
if (image == -1) {
wcerr << L"Error: " << p.get_errmsg() << endl;
return 2;
}
p.begin_page_ext(595, 842, L"");
optlist.str(L"");
optlist.str(L"fontname={LinLibertine_R} encoding=unicode embedding fontsize=24");
p.fit_textline(L"en: Hello!", 50, 700, optlist.str());
p.fit_image(image, 0.0, 0.0, L"scale=0.25");
p.end_page_ext(L"");
/* Page 2 */
p.begin_page_ext(595, 842, L"");
/* red rectangle */
p.setcolor(L"fill", L"rgb", 1.0, 0.0, 0.0, 0.0);
p.rect(200, 200, 250, 150);
p.fill();
/* blue circle */
p.setcolor(L"fill", L"rgb", 0.0, 0.0, 1.0, 0.0);
p.arc(400, 600, 100, 0, 360);
p.fill();
/* thick gray line */
p.setcolor(L"stroke", L"gray", 0.5, 0.0, 0.0, 0.0);
p.setlinewidth(10);
p.moveto(100, 500);
p.lineto(300, 700);
p.stroke();
p.fit_image(image, 150.0, 25.0, L"scale=0.25");
p.end_page_ext(L"");
catch (PDFlib::Exception &ex) {
wcerr << L"PDFlib exception occurred:" << endl
<< L"[" << ex.get_errnum() << L"] " << ex.get_apiname()
<< L": " << ex.get_errmsg() << endl;
return 2;
}
return 0;
}