Подскажите, как переносится форматирование и rich текст при копировании между совершенно разными редакторами, например Google Docs в браузере и Word на ПК. Что за технология? Более конкретно: есть html в буфере обмена, надо его преобразовать так, чтобы при вставке в редактор был уже текст.
В буфере обмена данные могут храниться в нескольких представлениях (mime-type) одновременно. Приложение-источник (copy) помещает в буфер отдельную копию данных для каждого из поддерживаемых представлений, а потребитель (paste) выбирает наиболее удобный для себя формат, из тех которые понимает. В некоторых приложениях доступен выбор представления, которое будет использовано (см. Paste Special в ворде). Пример на Qt:
QByteArray svg=BOOST_PP_STRINGIZE(
<svg height="100" width="100">
<circle cx="50" cy="50" r="45" stroke="black" stroke-width="3" fill="red" />
<text style="font-size:50px" x="20" y="75">Foo</text>
</svg>
);
QImage image;
image.loadFromData( svg );
auto*mime=new QMimeData();
mime->setText("Foo"); // Как текст (будет понимать notepad).
mime->setData( "text/html" , "<i>F</i><b>o</b><u>o</u>" ); // Поймет ворд
mime->setData( "image/svg+xml" ,svg );
mime->setImageData( image ); // заполняет сразу несколько графических форматов
auto*clip=QApplication::clipboard();
clip->clear();
clip->setMimeData(mime);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости