bool ExportHtml::convertEmf(QByteArray &input, QByteArray &output, QSize size) { QBuffer *outBuf = new QBuffer(&output); QSvgGenerator generator; generator.setOutputDevice(outBuf); generator.setSize(QSize(200, 200)); generator.setTitle("Svg image"); generator.setDescription("This is an svg image that is converted from EMF by Calligra"); Libemf::Parser emfParser; QPainter painter; if (!painter.begin(&generator)) { kDebug(30503) << "Can not open the painter"; return false; } painter.scale(50,50); Libemf::OutputPainterStrategy emfPaintOutput(painter, size, true ); emfParser.setOutput( &emfPaintOutput ); if (!emfParser.load(input)) { kDebug(30503) << "Can not Parse the EMF file"; return false; } painter.end(); return true; }
void RenderThread::drawEmf(QPainter &painter) const { // FIXME: Make emfOutput use QSizeF QSize shapeSizeInt( m_size.width(), m_size.height() ); //kDebug(31000) << "-------------------------------------------"; //kDebug(31000) << "size: " << shapeSizeInt << m_size; //kDebug(31000) << "position: " << position(); //kDebug(31000) << "-------------------------------------------"; Libemf::Parser emfParser; #if 1 // Set to 0 to get debug output // Create a new painter output strategy. Last param = true means keep aspect ratio. Libemf::OutputPainterStrategy emfPaintOutput( painter, shapeSizeInt, true ); emfParser.setOutput( &emfPaintOutput ); #else Libemf::OutputDebugStrategy emfDebugOutput; emfParser.setOutput( &emfDebugOutput ); #endif emfParser.load(m_contents); }