Zip und Unzip Openoffice file.... & tabellen
Verfasst: 12. Dezember 2006 10:37
Um openoffice file & tabellen zum html bringen .... mit bilder text css ecc...
Musste ich zuerst die file unzippen....
und dann mit xslt ins html mit qtextedit respektiv browser zu editieren...
mit der library http://quazip.sourceforge.net/ geht es einfach und schnell
und xslt mit http://sourceforge.net/projects/visual-xsltproc/ kann man in alles convertieren html, pdf , rtf, latex, ecc...
zip & unzip code ....
Musste ich zuerst die file unzippen....
und dann mit xslt ins html mit qtextedit respektiv browser zu editieren...
mit der library http://quazip.sourceforge.net/ geht es einfach und schnell
und xslt mit http://sourceforge.net/projects/visual-xsltproc/ kann man in alles convertieren html, pdf , rtf, latex, ecc...
zip & unzip code ....
Code: Alles auswählen
bool Base_Function::MakezipDir( QString dirtozip )
{
const QString cartella = QDir::currentPath();
char c;
QString zipfile;
QString ultimacartellaaperta = dirtozip.left(dirtozip.lastIndexOf("/"))+"/";
QDir dir(ultimacartellaaperta);
QString dirname = dir.dirName();
zipfile = dirname.append(".zip");
if (dir.exists())
{
QuaZip zip(zipfile);
if(!zip.open(QuaZip::mdCreate)) {
qWarning("testCreate(): zip.open(): %d", zip.getZipError());
return false;
}
QFile inFile;
QuaZipFile outFile(&zip);
const QFileInfoList list = dir.entryInfoList();
QFileInfo fi;
for (int l = 0; l < list.size(); l++)
{
fi = list.at(l);
if (fi.isDir() && fi.fileName() != "." && fi.fileName() != "..") {
/* dir */
} else if (fi.isFile() and fi.fileName() != zipfile ) {
CoPrint(QString("File on dirzip : %1").arg( fi.fileName() ),1);
QDir::setCurrent(dir.absolutePath());
inFile.setFileName(fi.fileName());
if(!inFile.open(QIODevice::ReadOnly)) {
qWarning("testCreate(): inFile.open(): %s", inFile.errorString().toLocal8Bit().constData());
return false;
}
if(!outFile.open(QIODevice::WriteOnly, QuaZipNewInfo(inFile.fileName(), inFile.fileName()))) {
qWarning("testCreate(): outFile.open(): %d", outFile.getZipError());
return false;
}
while(inFile.getChar(&c)&&outFile.putChar(c));
if(outFile.getZipError()!=UNZ_OK) {
qWarning("testCreate(): outFile.putChar(): %d", outFile.getZipError());
return false;
}
outFile.close();
if(outFile.getZipError()!=UNZ_OK) {
qWarning("testCreate(): outFile.close(): %d", outFile.getZipError());
return false;
}
inFile.close();
}
}
zip.close();
if(zip.getZipError()!=0) {
qWarning("testCreate(): zip.close(): %d", zip.getZipError());
QDir::setCurrent(cartella);
return false;
}
CoPrint(QString("Successful created zip file on:"),1);
CoPrint(QString("%2/%1").arg( zipfile ).arg(cartella),1);
QDir::setCurrent(cartella);
return true;
}
}
bool Base_Function::UnzipTo( QString zipfile, QString outputdir )
{
QuaZip zip(zipfile);
bool extractsuccess = false;
zip.open(QuaZip::mdUnzip);
QuaZipFile file(&zip);
for(bool more=zip.goToFirstFile(); more; more=zip.goToNextFile()) {
file.open(QIODevice::ReadOnly);
QString name = zip.getCurrentFileName();
name.prepend(outputdir); /* extract to path ....... */
QFile meminfo(name);
QFileInfo infofile(meminfo);
QDir dira(infofile.absolutePath());
if ( dira.mkpath(infofile.absolutePath()) ) {
/* dir is exist*/
//////qDebug() << "### name " << name;
/////qDebug() << "### namedir yes " << infofile.absolutePath();
if ( meminfo.open(QIODevice::ReadWrite) ) {
meminfo.write(file.readAll()); /* write */
meminfo.close();
extractsuccess = true;
//////////RegisterImage(name);
}
} else {
file.close();
return false;
}
file.close(); // do not forget to close!
}
zip.close();
return extractsuccess;
}