gui: Introduce PreviewGeneratorOdt for basic previews of .odt files

This commit is contained in:
2022-07-24 11:42:29 +02:00
parent 20d42a66a6
commit 1aa5ae0ccc
4 ha cambiato i file con 52 aggiunte e 1 eliminazioni

Vedi File

@@ -0,0 +1,32 @@
#include <quazip.h>
#include <quazipfile.h>
#include "previewgeneratorplaintext.h"
#include "previewgeneratorodt.h"
#include "previewresultodt.h"
#include "../shared/tagstripperprocessor.h"
QSharedPointer<PreviewResult> PreviewGeneratorOdt::generate(RenderConfig config, QString documentPath,
unsigned int page)
{
PreviewResultOdt *result = new PreviewResultOdt(documentPath, page);
QFileInfo info{documentPath};
QuaZipFile zipFile(documentPath);
zipFile.setFileName("content.xml");
if(!zipFile.open(QIODevice::ReadOnly))
{
return QSharedPointer<PreviewResult>(result);
}
QByteArray entireContent = zipFile.readAll();
if(entireContent.isEmpty())
{
throw LooqsGeneralException("Error while reading content.xml of " + documentPath);
}
TagStripperProcessor tsp;
QString content = tsp.process(entireContent).first().content;
PreviewGeneratorPlainText plainTextGenerator;
result->setText(plainTextGenerator.generatePreviewText(content, config, info.fileName()));
return QSharedPointer<PreviewResult>(result);
}