WinMain »13 июн 2020, 15:44
Довольно легко это сделать с помощью Qt.
Примерно так это будет выглядеть...
Код: Выделить всё
#include <QGuiApplication>
#include <QStaticText>
#include <QPdfWriter>
#include <QPainter>
class MyPdfWriter: public QPdfWriter
{
public:
explicit MyPdfWriter(const QString &filename) : QPdfWriter(filename), _painter(this)
{
int resol = resolution();
QBrush brush(Qt::black);
QPen pen(brush, resol/100);
QFont font("Arial", 24);
_painter.setFont(font);
_painter.setPen(pen);
}
void test()
{
int res = resolution();
_painter.drawRect(res/2, res/2, 3*res, 4*res);
_painter.drawStaticText(res, res, QStaticText("Hello world"));
//
_painter.end();
}
private:
QPainter _painter;
};
int main(int argc, char *argv[])
{
QGuiApplication a(argc, argv);
MyPdfWriter pdf("Hello.pdf");
pdf.test();
return 0; //a.exec();
}
В результате выполнения программы должен появиться файл Hello.pdf
В этом документе должна быть прямоугольная рамка и внутри неё текстовая строка.
Довольно легко это сделать с помощью Qt.
Примерно так это будет выглядеть...
[code=CPP]
#include <QGuiApplication>
#include <QStaticText>
#include <QPdfWriter>
#include <QPainter>
class MyPdfWriter: public QPdfWriter
{
public:
explicit MyPdfWriter(const QString &filename) : QPdfWriter(filename), _painter(this)
{
int resol = resolution();
QBrush brush(Qt::black);
QPen pen(brush, resol/100);
QFont font("Arial", 24);
_painter.setFont(font);
_painter.setPen(pen);
}
void test()
{
int res = resolution();
_painter.drawRect(res/2, res/2, 3*res, 4*res);
_painter.drawStaticText(res, res, QStaticText("Hello world"));
//
_painter.end();
}
private:
QPainter _painter;
};
int main(int argc, char *argv[])
{
QGuiApplication a(argc, argv);
MyPdfWriter pdf("Hello.pdf");
pdf.test();
return 0; //a.exec();
}
[/code]
В результате выполнения программы должен появиться файл Hello.pdf
В этом документе должна быть прямоугольная рамка и внутри неё текстовая строка.