Шаг 49.
Библиотека Qt.
Класс QTextDocumentWriter

    На этом шаге рассмотрим класс QTextDocumentWriter.

    Класс QTextDocumentWriter предоставляет три формата для записи содержимого объекта класса QTextDocument в PlainText (Простой текст), HTML и ODF (OpenDocument Format, открытый формат документов для офисных приложений). Последний формат используется многими приложениями, включая и OpenOffice.org. Для того чтобы записать файл в нужном формате, необходимо передать строку с форматом в метод setFormat(). Например, для записи в ODF-формат программный код может быть следующим:

//создали виджет редактора текста (указатель ptxt)
QTextEdit* ptxt = new QTextEdit("Это <b>ПРИМЕР</b>");
//создали объект поддержки записи (writer)
QTextDocumentWriter writer;
//установили вызовом метода setFormat()
//нужный нам формат ODF
writer.setFormat("odf");
//задали имя файла вызовом метода setFileName()
writer.setFileName("output.odf");
//вызов метода write() выполняет запись в файл,
//этот метод принимает в качестве параметра указатель
//на объект класса QTextDocument
writer.write(ptxt->document());

    Запись в формат PDF классом QTextDocumentWriter не поддерживается, но его легко осуществить путем рисования в контексте QPrinter.

//создаем виджет тектового редактора (указатель ptxt)
QTextEdit* ptxt = new QTextEdit("Это <b>ПРИМЕР</b>");
//создаем объект принтера (printer) и устанавливаем его
//при создании в режим высокого разрешения HighResolution
QPrinter printer(QPrinter::HighResolution);
//устанавливаем формат для вывода, вызовом метода
//setOutputFormat(), в который передаем значение PdfFormat,
//возможны также варианты NativeFormat и PostScriptFormat
//для печати в системный принтер или в запись в формате
//PostScript соответственно
printer.setOutputFormat(QPrinter::PdfFormat);
//при помощи метода setOutputFileName() задаем имя файла для записи
printer.setOutputFileName("output.pdf");
//вызываем из объекта класса QTextDocument метод, в который
//передаем адрес на наш объект принтера
//эта операция осуществляет запись в назначенный нами файл
ptxt->document()->print(&printer);

    На следующем шаге рассмотрим добавление расцветки синтаксиса в QTextEdit.




Предыдущий шаг Содержание Следующий шаг