205bool QTextDocumentWriter::write(
const QTextDocument *document)
211 if (d->format.isEmpty()) {
214 if (QFile *file = qobject_cast<QFile *>(d->device))
215 suffix = QFileInfo(file->fileName()).suffix().toLower().toLatin1();
218 QByteArray format = !d->format.isEmpty() ? d->format.toLower() : suffix;
220#ifndef QT_NO_TEXTODFWRITER
221 if (format ==
"odf" || format ==
"opendocumentformat" || format ==
"odt") {
222 QTextOdfWriter writer(*document, d->device);
223 return writer.writeAll();
227#if QT_CONFIG(textmarkdownwriter)
228 if (format ==
"md" || format ==
"mkd" || format ==
"markdown") {
229 if (!d->device->isWritable() && !d->device->open(QIODevice::WriteOnly)) {
230 qWarning(
"QTextDocumentWriter::write: the device can not be opened for writing");
233 QTextStream s(d->device);
234 QTextMarkdownWriter writer(s, QTextDocument::MarkdownDialectGitHub);
235 return writer.writeAll(document);
239#ifndef QT_NO_TEXTHTMLPARSER
240 if (format ==
"html" || format ==
"htm") {
241 if (!d->device->isWritable() && ! d->device->open(QIODevice::WriteOnly)) {
242 qWarning(
"QTextDocumentWriter::write: the device cannot be opened for writing");
245 d->device->write(document->toHtml().toUtf8());
250 if (format ==
"txt" || format ==
"plaintext") {
251 if (!d->device->isWritable() && ! d->device->open(QIODevice::WriteOnly)) {
252 qWarning(
"QTextDocumentWriter::write: the device cannot be opened for writing");
255 d->device->write(document->toPlainText().toUtf8());