Я разработал проект на Laravel и Vue Js. На одной из частей этого сайта я создал приложение в Vue, которое позволяет пользователю перетаскивать тег <img>
на другой тег <img>
, оба из которых содержатся в DIV.
Существует множество (и наиболее неподдерживаемых) CSS, применяемых к обоим изображениям, в качестве фильтров, 3dtransforation, mask, background-source ... Он работает плавно как в Chrome, так и в Firefox.
Теперь я должен сохранить в jpg / png «результат» всех преобразований, примененных к этим двум изображениям, или, лучше сказать, HTML-код контейнера div должен быть преобразован в файл изображения и сохранен на сервере / отображается на странице после клика.
Я не понимал, что это будет самая трудная часть ... Что бы я ни пытался до сих пор, это не сработало Я пытался использовать
- Domtoimage -> Проблема с этой библиотекой javascript заключается в том, что я загружаю 1 изображение с сервера (локальное в настоящее время) и 1 изображение с диска S3 на AWS, и есть перекрестные проблемы совместимости.
- Browsershot -> Проблема, с которой я столкнулся здесь, снова связана с наличием файлов на разных хранилищах, но здесь проблема на локальном хосте. Hww, пробуя оба изображения на S3, некоторые свойства CSS не отображаются (маска, прозрачность, преобразование)
- HTML2CANVAS -> Снова обе проблемы: перекрестное происхождение и отсутствие рендеринга большинства необходимых CSS.
На данный момент я действительно больше не знаю, где искать решение. Кажется, что так просто установить css для двух элементов, которые работают, невозможно попросить java или сервер просто «распечатать» то, что вы видите, именно так, как вы это видите.
Насчет "печати": я заметил (пытаясь найти обходной путь), что даже если при нажатии на печать страницы в предварительном просмотре некоторые CSS отсутствуют, хотя они хорошо видны на странице.
Буду окончательно благодарен, если у кого-нибудь есть предложения