68 std::unique_ptr<RVNGInputStream> input;
74 auto converted_uri = g_win32_locale_filename_from_utf8(uri);
75 input = std::make_unique<RVNGFileStream>(converted_uri);
76 g_free(converted_uri);
78 input = std::make_unique<RVNGFileStream>(uri);
81 if (input->isStructured()) {
82 if (
auto olestream = input->getSubStreamByName(
"PerfectOffice_MAIN")) {
83 input.reset(olestream);
87 if (!WPGraphics::isSupported(input.get())) {
94 librevenge::RVNGStringVector vec;
95 librevenge::RVNGSVGDrawingGenerator generator(vec,
"");
97 if (!libwpg::WPGraphics::parse(input.get(), &generator) || vec.empty() || vec[0].empty()) {
101 RVNGString output(
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n");
102 output.append(vec[0]);
107 if (doc && !doc->getRoot()->viewBox_set) {
111 doc->setViewBox(
Geom::Rect::from_xywh(0, 0, doc->getWidth().value(
"pt"), doc->getHeight().value(
"pt")));