{"id":460651,"date":"2025-05-22T22:33:01","date_gmt":"2025-05-22T22:33:01","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=460651"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=460651","title":{"rendered":"<span>\u041c\u043e\u0439 \u043b\u044e\u0431\u0438\u043c\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 PowerPoint \u0438\u043b\u0438 \u043a\u0430\u043a \u044f \u0441\u043e\u0437\u0434\u0430\u043b python \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0444\u0438\u0433\u0443\u0440 \u0432 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u0435\u043d\u044f \u0441\u043f\u0440\u043e\u0441\u0438\u043b\u0438, \u043a\u0430\u043a\u043e\u0439 \u043c\u043e\u0439 \u043b\u044e\u0431\u0438\u043c\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u044f \u0431\u044b, \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u044f\u0441\u044c, \u043e\u0442\u0432\u0435\u0442\u0438\u043b: <strong>PowerPoint<\/strong>.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/370\/ef9\/3e2\/370ef93e2593d7f57e9d2f6e1ded0653.png\" alt=\"\u0414\u0430, \u044d\u0442\u043e\u0442 \u043a\u043e\u0442\u0438\u043a \u0441\u043e\u0437\u0434\u0430\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\" title=\"\u0414\u0430, \u044d\u0442\u043e\u0442 \u043a\u043e\u0442\u0438\u043a \u0441\u043e\u0437\u0434\u0430\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\" width=\"1920\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/370\/ef9\/3e2\/370ef93e2593d7f57e9d2f6e1ded0653.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/370\/ef9\/3e2\/370ef93e2593d7f57e9d2f6e1ded0653.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0430, \u044d\u0442\u043e\u0442 \u043a\u043e\u0442\u0438\u043a \u0441\u043e\u0437\u0434\u0430\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0432\u0443\u0447\u0438\u0442 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e, \u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044c\u0442\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c.<\/p>\n<p>\u042f \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u044e\u0431\u0438\u043b \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0425\u043e\u0442\u044c \u044f \u0438 \u043d\u0435 \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440, \u043c\u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u0441\u043b\u0430\u0439\u0434\u044b \u0431\u044b\u043b\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438, \u043d\u043e \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u043c\u0438. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0432 \u0447\u0443\u0436\u0438\u0445 \u0434\u043e\u043a\u043b\u0430\u0434\u0430\u0445 \u044f \u0432\u0438\u0434\u0435\u043b \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435: \u0448\u0430\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u0434\u0430\u0436\u0435 \u0442\u0430\u043c, \u0433\u0434\u0435 \u0438\u0445 \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0447\u0438\u0441\u0442\u044b\u043c\u0438 \u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u043c\u0438 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f\u043c\u0438 (\u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c \u0432\u0435\u0440\u0441\u0438\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 svg, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043e\u0441\u0443\u0436\u0434\u0430\u044e).<\/p>\n<p>\u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0445 \u044f \u0431\u0443\u0434\u0443 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0451 \u0441\u0430\u043c \u2013 \u043f\u0440\u044f\u043c\u043e \u0432 PowerPoint, \u0444\u0438\u0433\u0443\u0440\u0430\u043c\u0438. \u041f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438, \u0441\u0442\u0440\u0435\u043b\u043a\u0438, \u043a\u0440\u0443\u0433\u0438, \u043d\u0430\u0434\u043f\u0438\u0441\u0438 \u2013 \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0441\u0445\u0435\u043c \u0438 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0439 \u0443\u0436\u0435 \u0437\u0430\u0431\u043e\u0442\u043b\u0438\u0432\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0438\u0437 Microsoft.<\/p>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u043b\u0441\u044f \u043c\u043d\u0435 \u0432 \u043c\u0438\u043d\u0438-\u0441\u0435\u043c\u0438\u043d\u0430\u0440\u0430\u0445 \u0434\u043b\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0433\u0434\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043f\u0440\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430 \u0441\u0432\u043e\u0438 \u0441\u043b\u0430\u0439\u0434\u044b \u0441\u0445\u0435\u043c\u044b \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u043e\u0432, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u043b\u043e\u043a\u043e\u0432 \u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0437 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0445 \u043a \u0441\u0435\u043c\u0438\u043d\u0430\u0440\u0443 \u0441\u0442\u0430\u0442\u0435\u0439. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u044d\u0442\u0438 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0431\u044b\u043b\u0438 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0435\u043b\u043a\u0438\u043c\u0438 \u0438 \u0440\u0430\u0441\u043f\u043b\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u043b \u0438\u0445 \u0440\u0443\u043a\u0430\u043c\u0438, \u0444\u0438\u0433\u0443\u0440\u0430 \u0437\u0430 \u0444\u0438\u0433\u0443\u0440\u043e\u0439, \u043f\u0440\u044f\u043c\u043e \u0432 PowerPoint.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0c3\/4d1\/821\/0c34d1821afdbd8a690dc33640ee8957.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0435\u0440\u0435\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0437 \u0441\u0442\u0430\u0442\u044c\u0438\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0435\u0440\u0435\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0437 \u0441\u0442\u0430\u0442\u044c\u0438\" width=\"1920\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/0c3\/4d1\/821\/0c34d1821afdbd8a690dc33640ee8957.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0c3\/4d1\/821\/0c34d1821afdbd8a690dc33640ee8957.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0435\u0440\u0435\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0437 <a href=\"https:\/\/arxiv.org\/pdf\/2110.02011\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0438<\/a><\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u043e \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043c\u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u043d\u0435\u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0435, \u0447\u0435\u043c \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u0444\u0438\u0433\u0443\u0440. \u041d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u0447\u043a\u0443 scatter-\u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0438\u0437 \u0442\u044b\u0441\u044f\u0447\u0438 \u0442\u043e\u0447\u0435\u043a \u0438 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u043b\u043d\u043e\u0441\u0432\u044f\u0437\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u0432\u043f\u0440\u0438\u0434\u0430\u0447\u0443, \u043f\u0440\u0438\u0447\u0451\u043c \u0432\u0435\u0441\u043e\u0432\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u043b\u0438\u043d\u0438\u044f\u043c\u0438, \u0430 \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u0441 \u0440\u0430\u0437\u043d\u043e\u0439 \u0442\u043e\u043b\u0449\u0438\u043d\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442\u043e\u043c \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0432\u0435\u0441\u043e\u0432. \u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c PNG \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c (\u0434\u0430\u0436\u0435 \u043e\u0442\u0440\u0435\u043d\u0434\u0435\u0440\u0435\u043d\u043d\u044b\u0439 \u0432 8\u041a), \u0430 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u044b\u0441\u044f\u0447\u0443 \u0442\u043e\u0447\u0435\u043a \u0441\u0442\u0430\u043b\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0443\u0436 \u043b\u0435\u043d\u0438\u0432\u043e (\u0447\u0435\u0441\u0442\u043d\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u044c\u0441\u044f, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0434\u0430\u0436\u0435 \u0431\u044b\u043b \u043f\u043e\u0447\u0442\u0438 \u0433\u043e\u0442\u043e\u0432 \u043f\u043e\u0439\u0442\u0438 \u043d\u0430 \u044d\u0442\u043e).<\/p>\n<p>\u0418 \u0442\u0443\u0442 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u0430 \u0438\u0434\u0435\u044f: \u0430 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c PowerPoint, \u043a\u0430\u043a \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u043c \u0434\u0432\u0438\u0436\u043a\u043e\u043c? \u042f \u0436\u0435 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442! \u0422\u0430\u043a \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c <a href=\"https:\/\/pypi.org\/project\/pptx-shapes\/\" rel=\"noopener noreferrer nofollow\">pptx-shapes<\/a> \u2013 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f Python-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b (\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e) \u043f\u0440\u044f\u043c\u043e \u0432 <code>.pptx<\/code>, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u043a\u0440\u043e\u043c\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 XML \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>lxml<\/code> \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438.<\/p>\n<h3>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 pptx-shapes?<\/h3>\n<p><code>pptx-shapes<\/code> \u2013 \u044d\u0442\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f Python-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b \u043f\u0440\u044f\u043c\u043e \u0432 PowerPoint-\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 XML. \u0415\u0439 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f Windows, PowerPoint \u0438\u043b\u0438 Office. \u0412\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u043d\u0438\u0435 XML-\u0444\u0430\u0439\u043b\u043e\u0432, \u043b\u0435\u0436\u0430\u0449\u0438\u0445 \u0432\u043d\u0443\u0442\u0440\u0438 <abbr class=\"habraabbr\" title=\"\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 .pptx \u2013 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 .zip \u0430\u0440\u0445\u0438\u0432 \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c xml \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438\" data-title=\"&lt;p&gt;\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 .pptx \u2013 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 .zip \u0430\u0440\u0445\u0438\u0432 \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c xml \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438&lt;\/p&gt;&lt;p&gt;&lt;\/p&gt;\" data-abbr=\".pptx-\u0430\u0440\u0445\u0438\u0432\u0430\">.pptx-\u0430\u0440\u0445\u0438\u0432\u0430<\/abbr>.<\/p>\n<p>\u0424\u0430\u0439\u043b \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b, \u2013 \u044d\u0442\u043e \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439.<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>\u041f\u0440\u043e\u0449\u0435 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u0447\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u0431\u0440\u043e\u0441\u0430\u0442\u044c\u0441\u044f \u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u043d\u0435 \u0442\u0430\u043a \u043b\u0438? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0444\u0438\u0433\u0443\u0440 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u043d\u0430 \u0441\u043b\u0430\u0439\u0434:<\/p>\n<pre><code class=\"python\">from pptx_shapes import Presentation from pptx_shapes.shapes import Ellipse, Rectangle, TextBox from pptx_shapes.style import FillStyle, FontFormat, FontStyle, StrokeStyle   with Presentation(presentation_path=\"empty.pptx\") as presentation:     presentation.add(shape=TextBox(         x=23, y=4,         width=12, height=2,         angle=45,         text=\"Hello from pptx-shapes!\",         style=FontStyle(size=32),         formatting=FontFormat(bold=True)     ))      presentation.add(shape=Ellipse(         x=18, y=7,         width=9, height=9,         fill=FillStyle(color=\"#7699d4\")     ), slide=\"slide1\")      presentation.add(shape=Rectangle(         x=4, y=2,         width=8, height=16,         radius=0.25,         angle=30,         fill=FillStyle(color=\"#dd7373\"),         stroke=StrokeStyle(color=\"magenta\", thickness=3)     ), slide=\"slide1\")      presentation.save(\"result.pptx\")<\/code><\/pre>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442:<\/p>\n<ul>\n<li>\n<p>\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f <code>empty.pptx<\/code> (\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0434\u0438\u043d \u0441\u043b\u0430\u0439\u0434);<\/p>\n<\/li>\n<li>\n<p>\u0432 \u043f\u0440\u0430\u0432\u044b\u0439 \u0432\u0435\u0440\u0445\u043d\u0438\u0439 \u0443\u0433\u043e\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0431\u043b\u043e\u043a \u0441 \u0436\u0438\u0440\u043d\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c &#171;Hello from pptx-shapes!&#187;, \u043f\u043e\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0439 \u043d\u0430 45 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0438\u043d\u0438\u0439 \u043a\u0440\u0443\u0433 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 9&#215;9 \u0441\u0430\u043d\u0442\u0438\u043c\u0435\u0442\u0440\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0439 \u043d\u0430 30 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430 \u0441 \u0437\u0430\u043a\u0440\u0443\u0433\u043b\u0451\u043d\u043d\u044b\u043c\u0438 \u0443\u0433\u043b\u0430\u043c\u0438 \u0438 \u0442\u043e\u043b\u0441\u0442\u043e\u0439 \u043f\u0443\u0440\u043f\u0443\u0440\u043d\u043e\u0439 \u043e\u0431\u0432\u043e\u0434\u043a\u043e\u0439;<\/p>\n<\/li>\n<li>\n<p>\u0438\u0437\u043c\u0435\u043d\u0451\u043d\u043d\u0430\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <code>result.pptx<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0410 \u0432\u043e\u0442, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 \u0441\u043b\u0430\u0439\u0434\u0435 (\u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0434\u0438\u0437\u0430\u0439\u043d, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u043a\u0430\u0436\u0435\u0448\u044c):<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1c5\/669\/a2f\/1c5669a2f1f7b8ccd4d705ba83cca5e0.png\" alt=\"\u0421\u043b\u0430\u0439\u0434, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430\" title=\"\u0421\u043b\u0430\u0439\u0434, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430\" width=\"1920\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/1c5\/669\/a2f\/1c5669a2f1f7b8ccd4d705ba83cca5e0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1c5\/669\/a2f\/1c5669a2f1f7b8ccd4d705ba83cca5e0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u043b\u0430\u0439\u0434, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0441\u0451, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u2013 \u044d\u0442\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <code>add<\/code>, \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u0444\u0438\u0433\u0443\u0440\u0443 \u0438 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u043d\u043e\u043c\u0435\u0440 \u0441\u043b\u0430\u0439\u0434\u0430 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0444\u0438\u0433\u0443\u0440\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u043b\u0430\u0439\u0434). \u0410 \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0435, \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <code>save<\/code>.<\/p>\n<h3>\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0437\u043d\u0443\u0442\u0440\u0438<\/h3>\n<ul>\n<li>\n<p><code>.pptx<\/code> \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a ZIP-\u0430\u0440\u0445\u0438\u0432 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0430\u043f\u043a\u0443 (\u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u0435\u0436\u0435\u0440\u0430).<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0444\u0438\u0433\u0443\u0440 \u043d\u0430 \u0441\u043b\u0430\u0439\u0434 \u0438\u0449\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 XML \u0444\u0430\u0439\u043b \u0432 \u043f\u0430\u043f\u043a\u0435 ppt\/slides (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043b\u0430\u0439\u0434\u0430 \u2013 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e ppt\/slides\/slide1.xml).<\/p>\n<\/li>\n<li>\n<p>\u0412 XML \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0430\u0439\u0434\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 <code>spTree<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u0442\u0435\u0433\u0430\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 <code>&lt;p:sp&gt;<\/code>, <code>&lt;p:cxnSp&gt;<\/code> \u0438 <code>&lt;a:prstGeom&gt;<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 XML \u0444\u0430\u0439\u043b\u044b \u0437\u0430\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f, \u0438 \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0438 \u0437\u0430\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 <code>.pptx<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0445\u043e\u0440\u043e\u0448, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0430\u0439\u0434\u044b, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0445\u0435\u043c\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u043e. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0438\u043b\u0438 \u0441\u043e\u0442\u043d\u0438 \u0444\u0438\u0433\u0443\u0440, \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0438\u0445 \u043f\u043e \u0441\u0435\u0442\u043a\u0435, \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0446\u0432\u0435\u0442, \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0438\u043b\u0438 \u0442\u043e\u043b\u0449\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439 \u2014 \u0432\u0441\u0451 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pptx-shapes.<\/p>\n<h3>\u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c?<\/h3>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0444\u0438\u0433\u0443\u0440, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 <code>shapes<\/code>:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u044f\u043c\u0443\u044e \u043b\u0438\u043d\u0438\u044e (<code>Line<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0441\u0442\u0440\u0435\u043b\u043a\u0443 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0442\u0438\u043f\u0430 \u043d\u0430\u043a\u043e\u043d\u0435\u0447\u043d\u0438\u043a\u0430 \u043a\u0430\u043a \u0432 \u043d\u0430\u0447\u0430\u043b\u0435, \u0442\u0430\u043a \u0438 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 (<code>Arrow<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0434\u0443\u0433\u0443 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 (<code>Arc<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0430\u0440\u043a\u0443 (\u0442\u0430 \u0436\u0435 \u0434\u0443\u0433\u0430, \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u0435\u044e\u0449\u0430\u044f \u0442\u043e\u043b\u0449\u0438\u043d\u0443, <code>Arch<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u044d\u043b\u043b\u0438\u043f\u0441 (<code>Elipse<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u0432 \u0442.\u0447. \u0441 \u0437\u0430\u043a\u0440\u0443\u0433\u043b\u0451\u043d\u043d\u044b\u043c\u0438 \u0443\u0433\u043b\u0430\u043c\u0438 (<code>Rectangle<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0441\u0435\u043a\u0442\u043e\u0440 \u043e\u043a\u0440\u0443\u043d\u043e\u0441\u0442\u0438 (<code>Pie<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043b\u0438\u0433\u043e\u043d (<code>Polygon<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 (<code>TextBox<\/code>).<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3ae\/deb\/f14\/3aedebf1432e8c2aa5faff98bd6e60ec.png\" alt=\"\u0421\u0445\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0444\u0438\u0433\u0443\u0440 \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\" title=\"\u0421\u0445\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0444\u0438\u0433\u0443\u0440 \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\" width=\"1920\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/3ae\/deb\/f14\/3aedebf1432e8c2aa5faff98bd6e60ec.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3ae\/deb\/f14\/3aedebf1432e8c2aa5faff98bd6e60ec.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u0445\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0444\u0438\u0433\u0443\u0440 \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<p>\u0410 \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0432\u0435 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0444\u0438\u0433\u0443\u0440\u044b \u0432 \u0435\u0434\u0438\u043d\u0443\u044e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c, \u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0444\u0438\u0433\u0443\u0440\u0430 <code>Group<\/code>.<\/p>\n<h4>\u0421\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h4>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438: \u0437\u0430\u043b\u0438\u0432\u043a\u0443 (<code>FillStyle<\/code>), \u043e\u0431\u0432\u043e\u0434\u043a\u0443 (<code>StrokeStyle<\/code>), \u0448\u0440\u0438\u0444\u0442 (<code>FontStyle<\/code>) \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 (<code>FontFormat<\/code>). \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u0438\u043f\u0430 \u0444\u0438\u0433\u0443\u0440\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043b\u0438\u043d\u0438\u0438 \u0438 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0437\u0430\u043b\u0438\u0432\u043a\u0438, \u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0448\u0440\u0438\u0444\u0442\u0430 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c \u043f\u043e\u043b\u044f\u043c.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e2f\/025\/6a6\/e2f0256a6ab9403a721dd9ed5d9c49b0.png\" alt=\"\u0421\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432\" title=\"\u0421\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432\" width=\"1920\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e2f\/025\/6a6\/e2f0256a6ab9403a721dd9ed5d9c49b0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e2f\/025\/6a6\/e2f0256a6ab9403a721dd9ed5d9c49b0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0421\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<h4>\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b \u0434\u043b\u044f \u0432\u0430\u0441 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043a\u0443\u0447\u043d\u043e \u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0447\u0435\u0433\u043e-\u0442\u043e \u043f\u043e\u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u043e <code>pptx-shapes<\/code> \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u0435\u043d. \u0412 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u0432\u0438\u0434\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0445 \u0444\u0438\u0433\u0443\u0440 \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f <code>charts<\/code>:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043d\u0447\u0438\u043a\u043e\u0432\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 (<code>DonutChart<\/code>) \u2013 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0438 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0439. \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0446\u0432\u0435\u0442\u0430 \u0438 \u0442\u043e\u043b\u0449\u0438\u043d\u0443 \u043a\u043e\u043b\u044c\u0446\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u043e\u043b\u0431\u0447\u0430\u0442\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 (<code>BarChart<\/code>) \u2013 \u0443\u0434\u043e\u0431\u043d\u0430 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043e\u0442\u0441\u0442\u0443\u043f\u043e\u0432, \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439 \u0438 \u0446\u0432\u0435\u0442\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>Scatter-\u0433\u0440\u0430\u0444\u0438\u043a (<code>ScatterPlot<\/code>) \u2013 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0441\u043b\u0430\u0439\u0434\u0435 \u043e\u0431\u043b\u0430\u043a\u043e \u0442\u043e\u0447\u0435\u043a, \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0438\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/01e\/419\/bd7\/01e419bd7bfc3e396df36b5ede0347bd.png\" alt=\"\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pptx-shapes\" title=\"\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pptx-shapes\" width=\"1920\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/01e\/419\/bd7\/01e419bd7bfc3e396df36b5ede0347bd.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/01e\/419\/bd7\/01e419bd7bfc3e396df36b5ede0347bd.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pptx-shapes<\/figcaption><\/div>\n<\/figure>\n<p>\u041c\u043e\u0436\u043d\u043e \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u044c: \u0437\u0430\u0447\u0435\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b, \u0435\u0441\u043b\u0438 \u0432 PowerPoint \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435?<\/p>\n<p>\u0414\u0435\u043b\u043e \u0432 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435. \u0418\u043d\u043e\u0433\u0434\u0430 \u0445\u043e\u0447\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u043e\u0447\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0441\u0442\u0438\u043b\u044e \u0441\u043b\u0430\u0439\u0434\u0430: \u043d\u0443\u0436\u043d\u0430\u044f \u0442\u043e\u043b\u0449\u0438\u043d\u0430 \u043a\u043e\u043b\u0435\u0446, \u0442\u043e\u0447\u043d\u043e\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439, \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0432 PowerPoint \u0432\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u0443\u0434\u043e\u0431\u043d\u044b, \u043d\u043e \u043f\u043e\u0440\u043e\u0439 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b \u2013 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0433\u0440\u0430\u0444\u0438\u043a \u0431\u044b\u043b \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u0432\u0441\u0442\u0430\u0432\u043a\u043e\u0439\u00bb, \u0430 \u0447\u0430\u0441\u0442\u044c\u044e \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0434\u043b\u044f <code>pptx-shapes<\/code> \u044d\u0442\u043e \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0438\u0434\u0435\u0438: \u0440\u0430\u0437 \u0443\u0436 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b, \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0445 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439, \u043f\u0440\u044f\u043c\u043e \u0432 \u043a\u043e\u0434\u0435?<\/p>\n<h3>\u0413\u0434\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435?<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c <code>pptx-shapes<\/code> \u0432 \u0434\u0435\u043b\u0435, \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 <a href=\"https:\/\/pptx-shapes.readthedocs.io\/en\/latest\/\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043d\u0430 Read the Docs<\/a> \u2013 \u0442\u0430\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0444\u0438\u0433\u0443\u0440\u044b, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0410 \u0435\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442, \u043a\u0430\u043a \u0432\u0441\u0451 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0432\u043d\u0443\u0442\u0440\u0438, \u0437\u0430\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u0432 <a href=\"https:\/\/github.com\/dronperminov\/pptx-shapes\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u043d\u0430 GitHub<\/a>. \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442 \u0438, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0438\u0442\u0430\u0435\u043c \u2013 \u0432\u0434\u0440\u0443\u0433 \u0432\u0430\u043c \u0437\u0430\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0432\u043d\u0435\u0441\u0442\u0438 \u0441\u0432\u043e\u0439 \u0432\u043a\u043b\u0430\u0434 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434 \u0441\u0435\u0431\u044f.<\/p>\n<h3>\u0415\u0441\u0442\u044c \u0435\u0449\u0451 \u043f\u0440\u0438\u043c\u0435\u0440\u044b?<\/h3>\n<p>\u0412\u0441\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 <a href=\"https:\/\/github.com\/dronperminov\/pptx-shapes\/tree\/master\/examples\" rel=\"noopener noreferrer nofollow\">examples<\/a> \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f, \u0430 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c <a href=\"https:\/\/pptx-shapes.readthedocs.io\/#examples\" rel=\"noopener noreferrer nofollow\">\u0440\u0430\u0437\u0434\u0435\u043b\u0435<\/a> \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. <\/p>\n<p>\u0412\u043e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0445:<\/p>\n<h4>\u0413\u0430\u043b\u0435\u0440\u0435\u044f \u0444\u0438\u0433\u0443\u0440<\/h4>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0441\u043b\u0430\u0439\u0434\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0444\u0438\u0433\u0443\u0440 \u2013 \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043b\u0438\u043d\u0438\u0439 \u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0434\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439, \u0441\u0442\u0440\u0435\u043b\u043e\u043a \u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432. \u041e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438.<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u043f\u0440\u0438\u043c\u0435\u0440\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">from pptx_shapes import Presentation from pptx_shapes.enums import Align, ArrowType, LineDash, VerticalAlign from pptx_shapes.shapes import Arc, Arrow, Ellipse, Group, Line, Polygon, Rectangle, TextBox from pptx_shapes.style import FillStyle, FontFormat, FontStyle, StrokeStyle   def main() -&gt; None:     with Presentation(presentation_path=\"empty.pptx\") as presentation:         presentation.add(shape=TextBox(             x=23, y=4, width=12, height=2, text=\"Hello from pptx-shapes!\", angle=45, style=FontStyle(size=32), formatting=FontFormat(bold=True)         ))          presentation.add(shape=TextBox(             x=7.5, y=17.2, width=18.5, height=1.5,             text=\"Python library for adding basic geometric shapes directly to PowerPoint (.pptx) slides by editing the XML structure.\",             style=FontStyle(size=16, align=Align.LEFT),             auto_fit=True         ))          # ellipses         presentation.add(shape=Ellipse(x=20, y=2, width=4, height=4, fill=FillStyle(color=\"#7699d4\")))          # arrows         presentation.add(shape=Arrow(x1=10, y1=9, x2=14, y2=11, start_type=ArrowType.OVAL, end_type=ArrowType.ARROW, stroke=StrokeStyle(thickness=2)))          # arcs         presentation.add(shape=Arc(             x=24, y=9, width=5, height=8, start_angle=90, end_angle=270, angle=45, stroke=StrokeStyle(color=\"#f00\", thickness=2.5, dash=LineDash.DASH_DOTTED)         ))         presentation.add(shape=Arc(             x=19.5, y=1.5, width=5, height=5, start_angle=5, end_angle=175, stroke=StrokeStyle(color=\"#7699d4\", thickness=2, dash=LineDash.DOTTED)         ))         presentation.add(shape=Arc(             x=19.5, y=1.5, width=5, height=5, start_angle=185, end_angle=355, stroke=StrokeStyle(color=\"#7699d4\", thickness=2, dash=LineDash.DASHED)         ))          # rectangles         presentation.add(shape=Rectangle(             x=18, y=8, width=4, height=8.5, radius=0.25, fill=FillStyle(color=\"#dd7373\"), stroke=StrokeStyle(color=\"#222\", thickness=3), angle=30         ))         presentation.add(shape=Rectangle(             x=27, y=14, width=3, height=3, radius=0, fill=FillStyle(color=\"#dd7373\"), stroke=StrokeStyle(color=\"#222\", thickness=1)         ))          # polygons         presentation.add(shape=Polygon(             points=[(11, 12), (13, 14), (11, 16), (9, 14), (11, 12)], fill=FillStyle(color=\"yellow\"), stroke=StrokeStyle(color=\"magenta\", thickness=2.5)         ))         presentation.add(shape=Polygon(             points=[(15, 5), (16, 6), (15, 7), (12, 7), (11, 6), (12, 5)], angle=45, fill=FillStyle(color=\"#88ff88\")         ))          # groups         presentation.add(shape=Group(shapes=[             Line(x1=1, y1=1, x2=13, y2=1, stroke=StrokeStyle(thickness=2, color=\"#7699d4\")),             Line(x1=1, y1=1, x2=1, y2=6, stroke=StrokeStyle(thickness=2, color=\"#dd7373\")),             Line(x1=13, y1=1, x2=1, y2=6, stroke=StrokeStyle(thickness=2, color=\"#89dd73\")),             TextBox(x=0.7, y=3.5, width=13, height=1, text=\"hypotenuse\", angle=-22.6, style=FontStyle(size=18, color=\"#89dd73\", vertical_align=VerticalAlign.TOP)),             TextBox(x=-2, y=3, width=5, height=1, text=\"kathete\", angle=90, style=FontStyle(size=18, color=\"#dd7373\", vertical_align=VerticalAlign.TOP)),             TextBox(x=1, y=0, width=12, height=1, text=\"kathete\", style=FontStyle(size=18, color=\"#7699d4\", vertical_align=VerticalAlign.BOTTOM))         ]))          presentation.add(shape=Group(shapes=[             Ellipse(x=4.5, y=6.0, width=2.0, height=3.5, fill=FillStyle(color=\"#dd7373\", opacity=0.5), stroke=StrokeStyle(color=\"black\", thickness=2, opacity=0.75)),             Ellipse(x=3.0, y=8.5, width=3.5, height=2.0, fill=FillStyle(color=\"#dd7373\", opacity=0.25), stroke=StrokeStyle(color=\"black\", opacity=0.25), angle=-45),             Ellipse(x=5.0, y=8.5, width=3.5, height=2.0, fill=FillStyle(color=\"#dd7373\", opacity=0.85), stroke=StrokeStyle(color=\"black\", opacity=0.85), angle=45)         ]))          presentation.add(shape=Group(shapes=[             TextBox(x=1, y=15, width=4.8, height=1, text=\"little histogram\", style=FontStyle(size=20, color=\"#7699d4\")),             Rectangle(x=1, y=16, width=1.2, height=2.7, radius=0.2, fill=FillStyle(color=\"#7699d4\"), stroke=StrokeStyle(color=\"#fff\")),             Rectangle(x=2.2, y=16.4, width=1.2, height=2.3, radius=0.2, fill=FillStyle(color=\"#7699d4\"), stroke=StrokeStyle(color=\"#fff\")),             Rectangle(x=3.4, y=17, width=1.2, height=1.7, radius=0.2, fill=FillStyle(color=\"#7699d4\"), stroke=StrokeStyle(color=\"#fff\")),             Rectangle(x=4.6, y=16.1, width=1.2, height=2.6, radius=0.2, fill=FillStyle(color=\"#7699d4\"), stroke=StrokeStyle(color=\"#fff\"))         ]))          presentation.save(\"basic.pptx\")   if __name__ == \"__main__\":     main()<\/code><\/pre>\n<\/div>\n<\/details>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/dbe\/d5b\/ca8\/dbed5bca83b75f227a413fd439e96654.png\" alt=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u0444\u0438\u0433\u0443\u0440\u0430\u043c\u0438\" title=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u0444\u0438\u0433\u0443\u0440\u0430\u043c\u0438\" width=\"1920\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/dbe\/d5b\/ca8\/dbed5bca83b75f227a413fd439e96654.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/dbe\/d5b\/ca8\/dbed5bca83b75f227a413fd439e96654.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u0444\u0438\u0433\u0443\u0440\u0430\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<h4>\u0424\u0440\u0430\u043a\u0442\u0430\u043b<\/h4>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430 \u0438\u0437 \u043b\u0438\u043d\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">import math from dataclasses import dataclass from typing import List  from pptx_shapes import Presentation from pptx_shapes.shapes import Group, Line, Rectangle, Shape from pptx_shapes.style import FillStyle, StrokeStyle   @dataclass class Config:     start_color: str     end_color: str     depth: int     start_branch_num: int     branch_num: int     branch_angle: float     length: float      def get_stroke(self, depth: int) -&gt; StrokeStyle:         ratio = depth \/ self.depth          r1, g1, b1 = int(self.start_color[1:3], 16), int(self.start_color[3:5], 16), int(self.start_color[5:7], 16)         r2, g2, b2 = int(self.end_color[1:3], 16), int(self.end_color[3:5], 16), int(self.end_color[5:7], 16)          r = math.floor(r1 * (1 - ratio) + r2 * ratio)         g = math.floor(g1 * (1 - ratio) + g2 * ratio)         b = math.floor(b1 * (1 - ratio) + b2 * ratio)          return StrokeStyle(color=f\"#{r:02X}{g:02X}{b:02X}\", opacity=1 - math.pow(depth \/ (self.depth + 1), 2))   def draw_fractal_line(config: Config, start_x: float, start_y: float, depth: int, degree: float, length: float, shapes: List[Shape]) -&gt; None:     if depth &gt; config.depth:         return      start_angle = -(config.branch_num - 1) * config.branch_angle \/ 2 + degree      for _ in range(config.branch_num):         angle = start_angle * math.pi \/ 180         x = start_x + math.cos(angle) * length         y = start_y + math.sin(angle) * length          shapes.append(Line(x1=start_x, y1=start_y, x2=x, y2=y, stroke=config.get_stroke(depth=depth)))         draw_fractal_line(config, x, y, depth + 1, start_angle, length * math.pow(config.length, depth), shapes)         start_angle += config.branch_angle   def draw_fractal(config: Config, x0: float, y0: float, length: float) -&gt; List[Shape]:     shapes = []     degree = 360 \/ config.start_branch_num      for i in range(config.start_branch_num):         angle = degree * i * math.pi \/ 180         x = x0 + math.cos(angle) * length         y = y0 + math.sin(angle) * length          shapes.append(Line(x1=x0, y1=y0, x2=x, y2=y, stroke=config.get_stroke(0)))         draw_fractal_line(config, x, y, 1, degree * i, length, shapes)      return shapes   def main() -&gt; None:     config = Config(         start_color=\"#ff0000\",         end_color=\"#ffff00\",         depth=5,         start_branch_num=7,         branch_num=4,         branch_angle=75,  # 20..90         length=0.93  # 0.6..1.3     )      width = 33.867     height = 19.05      with Presentation(presentation_path=\"empty.pptx\") as presentation:         shapes = draw_fractal(config=config, x0=width \/ 2, y0=height \/ 2, length=2)         presentation.add(shape=Rectangle(x=0, y=0, width=width, height=height, fill=FillStyle(color=\"#000\")))         presentation.add(shape=Group(shapes))         presentation.save(\"fractal.pptx\")   if __name__ == \"__main__\":     main() <\/code><\/pre>\n<\/div>\n<\/details>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c93\/f0d\/8c8\/c93f0d8c8221c92fc1428f875d5495d0.png\" alt=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435\u043c \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430 (9555 \u043b\u0438\u043d\u0438\u0439)\" title=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435\u043c \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430 (9555 \u043b\u0438\u043d\u0438\u0439)\" width=\"1920\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c93\/f0d\/8c8\/c93f0d8c8221c92fc1428f875d5495d0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c93\/f0d\/8c8\/c93f0d8c8221c92fc1428f875d5495d0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435\u043c \u0444\u0440\u0430\u043a\u0442\u0430\u043b\u0430 (9555 \u043b\u0438\u043d\u0438\u0439)<\/figcaption><\/div>\n<\/figure>\n<h4>\u0420\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432<\/h4>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0438\u0442\u044c \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u044b \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u2013 \u043f\u043e\u043b\u0435\u0437\u043d\u043e, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u043f\u0440\u0438\u043c\u0435\u0440\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">from typing import List, Tuple  from pptx_shapes import Presentation from pptx_shapes.shapes import Group, Polygon from pptx_shapes.style import FillStyle, StrokeStyle   def split_polygon(polygon: List[Tuple[float, float]], line: Tuple[float, float, float]) -&gt; Tuple[List[Tuple[float, float]], List[Tuple[float, float]]]:     polygon1, polygon2 = [], []     a, b, c = line      for i, (x1, y1) in enumerate(polygon):         x2, y2 = polygon[(i + 1) % len(polygon)]          sign1 = a * x1 + b * y1 + c         sign2 = a * x2 + b * y2 + c          if sign1 &lt;= 0:             polygon1.append((x1, y1))          if sign1 &gt;= 0:             polygon2.append((x1, y1))          if sign1 * sign2 &gt;= 0:             continue          t = sign1 \/ (sign1 - sign2)         x = x1 + t * (x2 - x1)         y = y1 + t * (y2 - y1)          polygon1.append((x, y))         polygon2.append((x, y))      return polygon1, polygon2   def mix_colors(color1: str, color2: str) -&gt; str:     r1, g1, b1 = color1[1:3], color1[3:5], color1[5:]     r2, g2, b2 = color2[1:3], color2[3:5], color2[5:]      r = (int(r1, 16) + int(r2, 16)) \/\/ 2     g = (int(g1, 16) + int(g2, 16)) \/\/ 2     b = (int(b1, 16) + int(b2, 16)) \/\/ 2      return f\"#{r:02X}{g:02X}{b:02X}\"   def split_polygons(polygons: List[dict], line: Tuple[float, float, float]) -&gt; List[dict]:     new_polygons = []      for polygon in polygons:         polygon1, polygon2 = split_polygon(polygon=polygon[\"points\"], line=line)          if len(polygon1) &gt; 2:             new_polygons.append({\"points\": polygon1, \"color\": mix_colors(polygon[\"color\"], \"#dd7373\")})          if len(polygon2) &gt; 2:             new_polygons.append({\"points\": polygon2, \"color\": mix_colors(polygon[\"color\"], \"#7699d4\")})      return new_polygons   def view_points(points: List[Tuple[float, float]], limits: dict, x0: float, y0: float, width: float, height: float) -&gt; List[Tuple[float, float]]:     mapped_points = []      for x, y in points:         x = x0 + (x - limits[\"x_min\"]) \/ (limits[\"x_max\"] - limits[\"x_min\"]) * width         y = y0 + (limits[\"y_max\"] - y) \/ (limits[\"y_max\"] - limits[\"y_min\"]) * height         mapped_points.append((x, y))      return mapped_points   def main() -&gt; None:     lines = [         (0.04, 0.3, -0.01),         (-0.75, 0.1, -0.97),         (-0.14, 0.9, 0.96),         (1.14, 0.18, -1.05),         (1.27, -0.07, 0.04),         (-0.2, 0.24, -0.15),         (0.35, 1.34, -0.96),         (0.26, -0.9, -0.54)     ]      limits = {\"x_min\": -1.7, \"y_min\": -1.7, \"x_max\": 1.7, \"y_max\": 1.7}     polygons = [         {\"points\": [(-1.7, -1.7), (-1.7, 1.7), (1.7, 1.7), (1.7, -1.7)], \"color\": \"#ffffff\"}     ]      x0, y0 = 1, 1.5     size = 7.5     gap = 0.5     columns = 4      with Presentation(presentation_path=\"empty.pptx\") as presentation:         for i, line in enumerate(lines):             polygons = split_polygons(polygons=polygons, line=line)             x = x0 + (size + gap) * (i % columns)             y = y0 + (size + gap) * (i \/\/ columns)              shapes = []             for polygon in polygons:                 points = view_points(points=polygon[\"points\"], limits=limits, x0=x, y0=y, width=size, height=size)                 shapes.append(Polygon(points=points, fill=FillStyle(color=polygon[\"color\"]), stroke=StrokeStyle(color=\"#222\", thickness=0.5)))              presentation.add(shape=Group(shapes=shapes))          presentation.save(\"polygons.pptx\")   if __name__ == \"__main__\":     main()<\/code><\/pre>\n<\/div>\n<\/details>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/198\/f67\/96e\/198f6796e81cf5566159d33a71764c70.png\" alt=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432 \u043b\u0438\u043d\u0438\u044f\u043c\u0438\" title=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432 \u043b\u0438\u043d\u0438\u044f\u043c\u0438\" width=\"1920\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/198\/f67\/96e\/198f6796e81cf5566159d33a71764c70.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/198\/f67\/96e\/198f6796e81cf5566159d33a71764c70.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0441 \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u0438\u0433\u043e\u043d\u043e\u0432 \u043b\u0438\u043d\u0438\u044f\u043c\u0438<\/figcaption><\/div>\n<\/figure>\n<details class=\"spoiler\">\n<summary>\u0421\u043b\u0430\u0439\u0434\u044b, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pptx-shapes<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0417\u0434\u0435\u0441\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043b\u0438\u0448\u044c \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438, \u0447\u0442\u043e \u0431\u044b\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u043d\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0430\u043c\u0438 \u0441\u043b\u0430\u0439\u0434\u044b \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u044f \u043f\u043e\u043a\u0430 \u043d\u0435 \u043c\u043e\u0433\u0443.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0c8\/395\/62f\/0c839562f02a885f4453b335bda52fce.png\" alt=\"\u0412\u0430\u0440\u0438\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u044d\u043d\u043a\u043e\u0434\u0435\u0440\" title=\"\u0412\u0430\u0440\u0438\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u044d\u043d\u043a\u043e\u0434\u0435\u0440\" width=\"1920\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/0c8\/395\/62f\/0c839562f02a885f4453b335bda52fce.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0c8\/395\/62f\/0c839562f02a885f4453b335bda52fce.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0412\u0430\u0440\u0438\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u044d\u043d\u043a\u043e\u0434\u0435\u0440<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a85\/59a\/dd8\/a8559add8f4320b59001b37ac4ff4aa5.png\" alt=\"\u041f\u043e\u043b\u0438\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u043f\u0438\u0440\u0430\u043b\u044c\" title=\"\u041f\u043e\u043b\u0438\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u043f\u0438\u0440\u0430\u043b\u044c\" width=\"1920\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a85\/59a\/dd8\/a8559add8f4320b59001b37ac4ff4aa5.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a85\/59a\/dd8\/a8559add8f4320b59001b37ac4ff4aa5.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u043e\u043b\u0438\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u043f\u0438\u0440\u0430\u043b\u044c<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d11\/49e\/ea8\/d1149eea869d62609e882628fd48d837.png\" alt=\"ScatterPlot \u0432\u043e \u0432\u0441\u0435\u0439 \u043a\u0440\u0430\u0441\u0435\" title=\"ScatterPlot \u0432\u043e \u0432\u0441\u0435\u0439 \u043a\u0440\u0430\u0441\u0435\" width=\"1920\" height=\"650\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d11\/49e\/ea8\/d1149eea869d62609e882628fd48d837.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d11\/49e\/ea8\/d1149eea869d62609e882628fd48d837.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>ScatterPlot \u0432\u043e \u0432\u0441\u0435\u0439 \u043a\u0440\u0430\u0441\u0435<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8bb\/931\/71d\/8bb93171dafca5366dedf2fef295ab7a.png\" alt=\"\u041d\u0438\u0437\u043a\u043e\u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0442\u0438\u043a \u0441 \u041a\u0414\u041f\u0412 \u0442\u043e\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\" title=\"\u041d\u0438\u0437\u043a\u043e\u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0442\u0438\u043a \u0441 \u041a\u0414\u041f\u0412 \u0442\u043e\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438\" width=\"1920\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/8bb\/931\/71d\/8bb93171dafca5366dedf2fef295ab7a.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8bb\/931\/71d\/8bb93171dafca5366dedf2fef295ab7a.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041d\u0438\u0437\u043a\u043e\u043f\u043e\u043b\u0438\u0433\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0442\u0438\u043a \u0441 \u041a\u0414\u041f\u0412 \u0442\u043e\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/figcaption><\/div>\n<\/figure>\n<\/div>\n<\/details>\n<h3>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435!<\/h3>\n<p>\u041d\u0430\u0434\u0435\u044e\u0441\u044c, <a href=\"https:\/\/pypi.org\/project\/pptx-shapes\/\" rel=\"noopener noreferrer nofollow\">pptx-shapes<\/a> \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0430\u0441 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u2013 \u0431\u0443\u0434\u044c \u0442\u043e \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0439 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0445 \u0441\u043b\u0430\u0439\u0434\u043e\u0432. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f \u0438\u0434\u0435\u0438, \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438\u043b\u0438 \u043c\u044b\u0441\u043b\u0438, \u0431\u0443\u0434\u0443 \u0440\u0430\u0434, \u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u043b\u044f\u043d\u0435\u0442\u0435 \u0432 <a href=\"https:\/\/github.com\/dronperminov\/pptx-shapes\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439<\/a>. \u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043a\u043e\u043c\u0443-\u0442\u043e \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u043b\u0430\u0441\u044c!<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/910340\/\"> https:\/\/habr.com\/ru\/articles\/910340\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u0435\u043d\u044f \u0441\u043f\u0440\u043e\u0441\u0438\u043b\u0438, \u043a\u0430\u043a\u043e\u0439 \u043c\u043e\u0439 \u043b\u044e\u0431\u0438\u043c\u044b\u0439 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440, \u044f \u0431\u044b, \u043d\u0435 \u0437\u0430\u0434\u0443\u043c\u044b\u0432\u0430\u044f\u0441\u044c, \u043e\u0442\u0432\u0435\u0442\u0438\u043b: <strong>PowerPoint<\/strong>.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0414\u0430, \u044d\u0442\u043e\u0442 \u043a\u043e\u0442\u0438\u043a \u0441\u043e\u0437\u0434\u0430\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u0442\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438<\/figcaption><\/div>\n<\/figure>\n<p>\u0417\u0432\u0443\u0447\u0438\u0442 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e, \u043d\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044c\u0442\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c.<\/p>\n<p>\u042f \u0432\u0441\u0435\u0433\u0434\u0430 \u043b\u044e\u0431\u0438\u043b \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0425\u043e\u0442\u044c \u044f \u0438 \u043d\u0435 \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440, \u043c\u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u0441\u043b\u0430\u0439\u0434\u044b \u0431\u044b\u043b\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438, \u043d\u043e \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u043c\u0438. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0432 \u0447\u0443\u0436\u0438\u0445 \u0434\u043e\u043a\u043b\u0430\u0434\u0430\u0445 \u044f \u0432\u0438\u0434\u0435\u043b \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435: \u0448\u0430\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u0434\u0430\u0436\u0435 \u0442\u0430\u043c, \u0433\u0434\u0435 \u0438\u0445 \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0447\u0438\u0441\u0442\u044b\u043c\u0438 \u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u043c\u0438 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044f\u043c\u0438 (\u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c \u0432\u0435\u0440\u0441\u0438\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 svg, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043e\u0441\u0443\u0436\u0434\u0430\u044e).<\/p>\n<p>\u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u0432 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u0445 \u044f \u0431\u0443\u0434\u0443 \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0451 \u0441\u0430\u043c \u2013 \u043f\u0440\u044f\u043c\u043e \u0432 PowerPoint, \u0444\u0438\u0433\u0443\u0440\u0430\u043c\u0438. \u041f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u0438, \u0441\u0442\u0440\u0435\u043b\u043a\u0438, \u043a\u0440\u0443\u0433\u0438, \u043d\u0430\u0434\u043f\u0438\u0441\u0438 \u2013 \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0441\u0445\u0435\u043c \u0438 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0439 \u0443\u0436\u0435 \u0437\u0430\u0431\u043e\u0442\u043b\u0438\u0432\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0438\u0437 Microsoft.<\/p>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u043b\u0441\u044f \u043c\u043d\u0435 \u0432 \u043c\u0438\u043d\u0438-\u0441\u0435\u043c\u0438\u043d\u0430\u0440\u0430\u0445 \u0434\u043b\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0433\u0434\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043f\u0440\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430 \u0441\u0432\u043e\u0438 \u0441\u043b\u0430\u0439\u0434\u044b \u0441\u0445\u0435\u043c\u044b \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u043e\u0432, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u043b\u043e\u043a\u043e\u0432 \u0438 \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0437 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0445 \u043a \u0441\u0435\u043c\u0438\u043d\u0430\u0440\u0443 \u0441\u0442\u0430\u0442\u0435\u0439. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u044d\u0442\u0438 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0431\u044b\u043b\u0438 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u0435\u043b\u043a\u0438\u043c\u0438 \u0438 \u0440\u0430\u0441\u043f\u043b\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u043b \u0438\u0445 \u0440\u0443\u043a\u0430\u043c\u0438, \u0444\u0438\u0433\u0443\u0440\u0430 \u0437\u0430 \u0444\u0438\u0433\u0443\u0440\u043e\u0439, \u043f\u0440\u044f\u043c\u043e \u0432 PowerPoint.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0435\u0440\u0435\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0437 <a href=\"https:\/\/arxiv.org\/pdf\/2110.02011\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u0442\u044c\u0438<\/a><\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u043e \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043c\u043d\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u043d\u0435\u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0435, \u0447\u0435\u043c \u0434\u0435\u0441\u044f\u0442\u043e\u043a \u0444\u0438\u0433\u0443\u0440. \u041d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u0447\u043a\u0443 scatter-\u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0438\u0437 \u0442\u044b\u0441\u044f\u0447\u0438 \u0442\u043e\u0447\u0435\u043a \u0438 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u043e\u043b\u043d\u043e\u0441\u0432\u044f\u0437\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u0432\u043f\u0440\u0438\u0434\u0430\u0447\u0443, \u043f\u0440\u0438\u0447\u0451\u043c \u0432\u0435\u0441\u043e\u0432\u044b\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u044b \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u043c\u0438 \u043b\u0438\u043d\u0438\u044f\u043c\u0438, \u0430 \u043b\u0438\u043d\u0438\u044f\u043c\u0438 \u0441 \u0440\u0430\u0437\u043d\u043e\u0439 \u0442\u043e\u043b\u0449\u0438\u043d\u043e\u0439 \u0438 \u0446\u0432\u0435\u0442\u043e\u043c \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0432\u0435\u0441\u043e\u0432. \u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c PNG \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c (\u0434\u0430\u0436\u0435 \u043e\u0442\u0440\u0435\u043d\u0434\u0435\u0440\u0435\u043d\u043d\u044b\u0439 \u0432 8\u041a), \u0430 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u044b\u0441\u044f\u0447\u0443 \u0442\u043e\u0447\u0435\u043a \u0441\u0442\u0430\u043b\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0443\u0436 \u043b\u0435\u043d\u0438\u0432\u043e (\u0447\u0435\u0441\u0442\u043d\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u0442\u044c\u0441\u044f, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u044f \u0434\u0430\u0436\u0435 \u0431\u044b\u043b \u043f\u043e\u0447\u0442\u0438 \u0433\u043e\u0442\u043e\u0432 \u043f\u043e\u0439\u0442\u0438 \u043d\u0430 \u044d\u0442\u043e).<\/p>\n<p>\u0418 \u0442\u0443\u0442 \u043c\u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u0430 \u0438\u0434\u0435\u044f: \u0430 \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c PowerPoint, \u043a\u0430\u043a \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u043c \u0434\u0432\u0438\u0436\u043a\u043e\u043c? \u042f \u0436\u0435 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442! \u0422\u0430\u043a \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c <a href=\"https:\/\/pypi.org\/project\/pptx-shapes\/\" rel=\"noopener noreferrer nofollow\">pptx-shapes<\/a> \u2013 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f Python-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b (\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e) \u043f\u0440\u044f\u043c\u043e \u0432 <code>.pptx<\/code>, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0438\u0447\u0435\u0433\u043e \u043a\u0440\u043e\u043c\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 XML \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>lxml<\/code> \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438.<\/p>\n<h3>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 pptx-shapes?<\/h3>\n<p><code>pptx-shapes<\/code> \u2013 \u044d\u0442\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f Python-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b \u043f\u0440\u044f\u043c\u043e \u0432 PowerPoint-\u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 XML. \u0415\u0439 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f Windows, PowerPoint \u0438\u043b\u0438 Office. \u0412\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u043d\u0438\u0435 XML-\u0444\u0430\u0439\u043b\u043e\u0432, \u043b\u0435\u0436\u0430\u0449\u0438\u0445 \u0432\u043d\u0443\u0442\u0440\u0438 <abbr class=\"habraabbr\" title=\"\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 .pptx \u2013 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 .zip \u0430\u0440\u0445\u0438\u0432 \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c xml \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438\" data-title=\"&lt;p&gt;\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 .pptx \u2013 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 .zip \u0430\u0440\u0445\u0438\u0432 \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c xml \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438&lt;\/p&gt;&lt;p&gt;&lt;\/p&gt;\" data-abbr=\".pptx-\u0430\u0440\u0445\u0438\u0432\u0430\">\u0431\u043e\u0440\u043e\u043c xml \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438&lt;\/p&gt;&lt;p&gt;&lt;\/p&gt;&#187; data-abbr=&#187;.pptx-\u0430\u0440\u0445\u0438\u0432\u0430&#187;>.pptx-\u0430\u0440\u0445\u0438\u0432\u0430<\/abbr>.<\/p>\n<p>\u0424\u0430\u0439\u043b \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0438, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b, \u2013 \u044d\u0442\u043e \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439.<\/p>\n<h3>\u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>\u041f\u0440\u043e\u0449\u0435 \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u0447\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u0431\u0440\u043e\u0441\u0430\u0442\u044c\u0441\u044f \u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u043d\u0435 \u0442\u0430\u043a \u043b\u0438? \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0444\u0438\u0433\u0443\u0440 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u043d\u0430 \u0441\u043b\u0430\u0439\u0434:<\/p>\n<pre><code class=\"python\">from pptx_shapes import Presentation from pptx_shapes.shapes import Ellipse, Rectangle, TextBox from pptx_shapes.style import FillStyle, FontFormat, FontStyle, StrokeStyle   with Presentation(presentation_path=\"empty.pptx\") as presentation:     presentation.add(shape=TextBox(         x=23, y=4,         width=12, height=2,         angle=45,         text=\"Hello from pptx-shapes!\",         style=FontStyle(size=32),         formatting=FontFormat(bold=True)     ))      presentation.add(shape=Ellipse(         x=18, y=7,         width=9, height=9,         fill=FillStyle(color=\"#7699d4\")     ), slide=\"slide1\")      presentation.add(shape=Rectangle(         x=4, y=2,         width=8, height=16,         radius=0.25,         angle=30,         fill=FillStyle(color=\"#dd7373\"),         stroke=StrokeStyle(color=\"magenta\", thickness=3)     ), slide=\"slide1\")      presentation.save(\"result.pptx\")<\/code><\/pre>\n<p>\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c\u0441\u044f, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442:<\/p>\n<ul>\n<li>\n<p>\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f <code>empty.pptx<\/code> (\u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0430\u044f \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0434\u0438\u043d \u0441\u043b\u0430\u0439\u0434);<\/p>\n<\/li>\n<li>\n<p>\u0432 \u043f\u0440\u0430\u0432\u044b\u0439 \u0432\u0435\u0440\u0445\u043d\u0438\u0439 \u0443\u0433\u043e\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 \u0431\u043b\u043e\u043a \u0441 \u0436\u0438\u0440\u043d\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c &#171;Hello from pptx-shapes!&#187;, \u043f\u043e\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0439 \u043d\u0430 45 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0438\u043d\u0438\u0439 \u043a\u0440\u0443\u0433 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 9&#215;9 \u0441\u0430\u043d\u0442\u0438\u043c\u0435\u0442\u0440\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0439 \u043d\u0430 30 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a \u043a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430 \u0441 \u0437\u0430\u043a\u0440\u0443\u0433\u043b\u0451\u043d\u043d\u044b\u043c\u0438 \u0443\u0433\u043b\u0430\u043c\u0438 \u0438 \u0442\u043e\u043b\u0441\u0442\u043e\u0439 \u043f\u0443\u0440\u043f\u0443\u0440\u043d\u043e\u0439 \u043e\u0431\u0432\u043e\u0434\u043a\u043e\u0439;<\/p>\n<\/li>\n<li>\n<p>\u0438\u0437\u043c\u0435\u043d\u0451\u043d\u043d\u0430\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <code>result.pptx<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0410 \u0432\u043e\u0442, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0430 \u0441\u043b\u0430\u0439\u0434\u0435 (\u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0434\u0438\u0437\u0430\u0439\u043d, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u043a\u0430\u0436\u0435\u0448\u044c):<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0421\u043b\u0430\u0439\u0434, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0441\u0451, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u2013 \u044d\u0442\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u0438\u0433\u0443\u0440\u044b \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <code>add<\/code>, \u043f\u0435\u0440\u0435\u0434\u0430\u0432 \u0444\u0438\u0433\u0443\u0440\u0443 \u0438 \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u043d\u043e\u043c\u0435\u0440 \u0441\u043b\u0430\u0439\u0434\u0430 (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0444\u0438\u0433\u0443\u0440\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0441\u043b\u0430\u0439\u0434). \u0410 \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0435, \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <code>save<\/code>.<\/p>\n<h3>\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0437\u043d\u0443\u0442\u0440\u0438<\/h3>\n<ul>\n<li>\n<p><code>.pptx<\/code> \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a ZIP-\u0430\u0440\u0445\u0438\u0432 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0430\u043f\u043a\u0443 (\u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u0435\u0436\u0435\u0440\u0430).<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0444\u0438\u0433\u0443\u0440 \u043d\u0430 \u0441\u043b\u0430\u0439\u0434 \u0438\u0449\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 XML \u0444\u0430\u0439\u043b \u0432 \u043f\u0430\u043f\u043a\u0435 ppt\/slides (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0441\u043b\u0430\u0439\u0434\u0430 \u2013 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e ppt\/slides\/slide1.xml).<\/p>\n<\/li>\n<li>\n<p>\u0412 XML \u044d\u0442\u043e\u0433\u043e \u0441\u043b\u0430\u0439\u0434\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 <code>spTree<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441 \u0442\u0435\u0433\u0430\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 <code>&lt;p:sp&gt;<\/code>, <code>&lt;p:cxnSp&gt;<\/code> \u0438 <code>&lt;a:prstGeom&gt;<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 XML \u0444\u0430\u0439\u043b\u044b \u0437\u0430\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f, \u0438 \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0438 \u0437\u0430\u043f\u0430\u043a\u043e\u0432\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 <code>.pptx<\/code>.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u043e\u0439 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0445\u043e\u0440\u043e\u0448, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0430\u0439\u0434\u044b, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u043b\u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0433\u0435\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0445\u0435\u043c\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0434\u043e\u043b\u0433\u043e. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0438\u043b\u0438 \u0441\u043e\u0442\u043d\u0438 \u0444\u0438\u0433\u0443\u0440, \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0438\u0445 \u043f\u043e \u0441\u0435\u0442\u043a\u0435, \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0446\u0432\u0435\u0442, \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u0438\u043b\u0438 \u0442\u043e\u043b\u0449\u0438\u043d\u0443 \u043b\u0438\u043d\u0438\u0439 \u2014 \u0432\u0441\u0451 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pptx-shapes.<\/p>\n<h3>\u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c?<\/h3>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0434\u043d\u0443 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0444\u0438\u0433\u0443\u0440, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 <code>shapes<\/code>:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u044f\u043c\u0443\u044e \u043b\u0438\u043d\u0438\u044e (<code>Line<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0441\u0442\u0440\u0435\u043b\u043a\u0443 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0442\u0438\u043f\u0430 \u043d\u0430\u043a\u043e\u043d\u0435\u0447\u043d\u0438\u043a\u0430 \u043a\u0430\u043a \u0432 \u043d\u0430\u0447\u0430\u043b\u0435, \u0442\u0430\u043a \u0438 \u043a\u043e\u043d\u0446\u0435 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 (<code>Arrow<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0434\u0443\u0433\u0443 \u043e\u043a\u0440\u0443\u0436\u043d\u043e\u0441\u0442\u0438 (<code>Arc<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0430\u0440\u043a\u0443 (\u0442\u0430 \u0436\u0435 \u0434\u0443\u0433\u0430, \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u0435\u044e\u0449\u0430\u044f \u0442\u043e\u043b\u0449\u0438\u043d\u0443, <code>Arch<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u044d\u043b\u043b\u0438\u043f\u0441 (<code>Elipse<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a, \u0432 \u0442.\u0447. \u0441 \u0437\u0430\u043a\u0440\u0443\u0433\u043b\u0451\u043d\u043d\u044b\u043c\u0438 \u0443\u0433\u043b\u0430\u043c\u0438 (<code>Rectangle<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0441\u0435\u043a\u0442\u043e\u0440 \u043e\u043a\u0440\u0443\u043d\u043e\u0441\u0442\u0438 (<code>Pie<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043b\u0438\u0433\u043e\u043d (<code>Polygon<\/code>);<\/p>\n<\/li>\n<li>\n<p>\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 (<code>TextBox<\/code>).<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\">\n<div><figcaption>\u0421\u0445\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0444\u0438\u0433\u0443\u0440 \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<p>\u0410 \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0432\u0435 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0444\u0438\u0433\u0443\u0440\u044b \u0432 \u0435\u0434\u0438\u043d\u0443\u044e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c, \u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0444\u0438\u0433\u0443\u0440\u0430 <code>Group<\/code>.<\/p>\n<h4>\u0421\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h4>\n<p>\u041a\u0430\u0436\u0434\u0430\u044f \u0444\u0438\u0433\u0443\u0440\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438: \u0437\u0430\u043b\u0438\u0432\u043a\u0443 (<code>FillStyle<\/code>), \u043e\u0431\u0432\u043e\u0434\u043a\u0443 (<code>StrokeStyle<\/code>), \u0448\u0440\u0438\u0444\u0442 (<code>FontStyle<\/code>) \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 (<code>FontFormat<\/code>). \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u044d\u0442\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0442\u0438\u043f\u0430 \u0444\u0438\u0433\u0443\u0440\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043b\u0438\u043d\u0438\u0438 \u0438 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0437\u0430\u043b\u0438\u0432\u043a\u0438, \u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0448\u0440\u0438\u0444\u0442\u0430 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043a \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c \u043f\u043e\u043b\u044f\u043c.<\/p>\n<figure class=\"full-width\">\n<div><figcaption>\u0421\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0431\u043b\u043e\u043a\u043e\u0432<\/figcaption><\/div>\n<\/figure>\n<h4>\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b<\/h4>\n<p>\u0415\u0441\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b \u0434\u043b\u044f \u0432\u0430\u0441 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043a\u0443\u0447\u043d\u043e \u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0447\u0435\u0433\u043e-\u0442\u043e \u043f\u043e\u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u043e <code>pptx-shapes<\/code> \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u0435\u043d. \u0412 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c, \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432 \u0432\u0438\u0434\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u044b\u0445 \u0444\u0438\u0433\u0443\u0440 \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0434\u0443\u043b\u044f <code>charts<\/code>:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043d\u0447\u0438\u043a\u043e\u0432\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 (<code>DonutChart<\/code>) \u2013 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0438 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0439. \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0446\u0432\u0435\u0442\u0430 \u0438 \u0442\u043e\u043b\u0449\u0438\u043d\u0443 \u043a\u043e\u043b\u044c\u0446\u0430.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u043e\u043b\u0431\u0447\u0430\u0442\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 (<code>BarChart<\/code>) \u2013 \u0443\u0434\u043e\u0431\u043d\u0430 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u043b\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043e\u0442\u0441\u0442\u0443\u043f\u043e\u0432, \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439 \u0438 \u0446\u0432\u0435\u0442\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>Scatter-\u0433\u0440\u0430\u0444\u0438\u043a (<code>ScatterPlot<\/code>) \u2013 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043d\u0430 \u0441\u043b\u0430\u0439\u0434\u0435 \u043e\u0431\u043b\u0430\u043a\u043e \u0442\u043e\u0447\u0435\u043a, \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0439 \u0438\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\">\n<div><figcaption>\u0414\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pptx-shapes<\/figcaption><\/div>\n<\/figure>\n<p>\u041c\u043e\u0436\u043d\u043e \u0441\u043f\u0440\u043e\u0441\u0438\u0442\u044c: \u0437\u0430\u0447\u0435\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b, \u0435\u0441\u043b\u0438 \u0432 PowerPoint \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435?<\/p>\n<p>\u0414\u0435\u043b\u043e \u0432 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435. \u0418\u043d\u043e\u0433\u0434\u0430 \u0445\u043e\u0447\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u043e\u0447\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0441\u0442\u0438\u043b\u044e \u0441\u043b\u0430\u0439\u0434\u0430: \u043d\u0443\u0436\u043d\u0430\u044f \u0442\u043e\u043b\u0449\u0438\u043d\u0430 \u043a\u043e\u043b\u0435\u0446, \u0442\u043e\u0447\u043d\u043e\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0435\u0439, \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0446\u0432\u0435\u0442\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b \u0432 PowerPoint \u0432\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u0443\u0434\u043e\u0431\u043d\u044b, \u043d\u043e \u043f\u043e\u0440\u043e\u0439 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b \u2013 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0433\u0440\u0430\u0444\u0438\u043a \u0431\u044b\u043b \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u00ab\u0432\u0441\u0442\u0430\u0432\u043a\u043e\u0439\u00bb, \u0430 \u0447\u0430\u0441\u0442\u044c\u044e \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0434\u043b\u044f <code>pptx-shapes<\/code> \u044d\u0442\u043e \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 \u0438\u0434\u0435\u0438: \u0440\u0430\u0437 \u0443\u0436 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u044b, \u043f\u043e\u0447\u0435\u043c\u0443 \u0431\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0445 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439, \u043f\u0440\u044f\u043c\u043e \u0432 \u043a\u043e\u0434\u0435?<\/p>\n<h3>\u0413\u0434\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435?<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c <code>pptx-shapes<\/code> \u0432 \u0434\u0435\u043b\u0435, \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 <a href=\"https:\/\/pptx-shapes.readthedocs.io\/en\/latest\/\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043d\u0430 Read the Docs<\/a> \u2013 \u0442\u0430\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0444\u0438\u0433\u0443\u0440\u044b, \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u0410 \u0435\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442, \u043a\u0430\u043a \u0432\u0441\u0451 \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0432\u043d\u0443\u0442\u0440\u0438, \u0437\u0430\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u0432 <a href=\"https:\/\/github.com\/dronperminov\/pptx-shapes\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u043d\u0430 GitHub<\/a>. \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0442\u043a\u0440\u044b\u0442 \u0438, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0438\u0442\u0430\u0435\u043c \u2013 \u0432\u0434\u0440\u0443\u0433 \u0432\u0430\u043c \u0437\u0430\u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0432\u043d\u0435\u0441\u0442\u0438 \u0441\u0432\u043e\u0439 \u0432\u043a\u043b\u0430\u0434 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434 \u0441\u0435\u0431\u044f.<\/p>\n<h3>\u0415\u0441\u0442\u044c \u0435\u0449\u0451 \u043f\u0440\u0438\u043c\u0435\u0440\u044b?<\/h3>\n<p>\u0412\u0441\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 <a href=\"https:\/\/github.com\/dronperminov\/pptx-shapes\/tree\/master\/examples\" rel=\"noopener noreferrer nofollow\">examples<\/a> \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f, \u0430 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c <a href=\"https:\/\/pptx-shapes.readthedocs.io\/#examples\" rel=\"noopener noreferrer nofollow\">\u0440\u0430\u0437\u0434\u0435\u043b\u0435<\/a> \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. <\/p>\n<p>\u0412\u043e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0445:<\/p>\n<h4>\u0413\u0430\u043b\u0435\u0440\u0435\u044f \u0444\u0438\u0433\u0443\u0440<\/h4>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0441\u043b\u0430\u0439\u0434\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u044b \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0444\u0438\u0433\u0443\u0440 \u2013 \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u043b\u0438\u043d\u0438\u0439 \u0438 \u043f\u0440\u044f\u043c\u043e\u0443\u0433\u043e\u043b\u044c\u043d\u0438\u043a\u043e\u0432 \u0434\u043e \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0435\u0439, \u0441\u0442\u0440\u0435\u043b\u043e\u043a \u0438 \u0441\u0435\u043a\u0442\u043e\u0440\u043e\u0432. \u041e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438.<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u0434 \u043f\u0440\u0438\u043c\u0435\u0440\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"python\">from pptx_shapes import Presentation from pptx_shapes.enums import Align, ArrowType, LineDash, VerticalAlign from pptx_shapes.shapes import Arc, Arrow, Ellipse, Group, Line, Polygon, Rectangle, TextBox from pptx_shapes.style import FillStyle, FontFormat, FontStyle, StrokeStyle   def main() -&gt; None:     with Presentation(presentation_path=\"empty.pptx\") as presentation:         presentation.add(shape=TextBox(             x=23, y=4, width=12, height=2, text=\"Hello from pptx-shapes!\", angle=45, style=FontStyle(size=32), formatting=FontFormat(bold=True)         ))          presentation.add(shape=TextBox(             x=7.5, y=17.2, width=18.5, height=1.5,             text=\"Python library for adding basic geometric shapes directly to PowerPoint (.pptx) slides by editing the XML structure.\",             style=FontStyle(size=16, align=Align.LEFT),             auto_fit=True         ))          # ellipses         presentation.add(shape=Ellipse(x=20, y=2, width=4, height=4, fill=FillStyle(color=\"#7699d4\")))          # arrows         presentation.add(shape=Arrow(x1=10, y1=9, x2=14, y2=11, start_type=ArrowType.OVAL, end_type=ArrowType.ARROW, stroke=StrokeStyle(thickness=2)))          # arcs         presentation.add(shape=Arc(             x=24, y=9, width=5, height=8, start_angle=90,<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-460651","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/460651","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=460651"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/460651\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=460651"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=460651"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=460651"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}