AVKor, отнюдь, на этот раз вполне адекватный ответ.
Человек работает в пакетах и хочет продолжать работать в пакетах, но, видите ли, гибко настраивать под себя ОС, и тестировать ему винды чем-то помешали.
То есть вообще не представляет, чего хочет, и витает в фантазиях.
Линукс противопоказан.
Viktor091, в этой-то строчке все правильно.
Но вот класс VK_GROUP перед ней явно не объявлен.
А вы приводите простыни кода, не имеющие отношения к ошибке.
kidar2, вы задали вопрос с тегом "алгоритмы", хотя ищете готовое решение. Вам дали ответы, которые вам, очевидно, не нравятся, потому что вы спрашиваете не то, что ищете, и сказали, как найти первой же ссылкой в гугле то, что вам действительно надо.
Экие грубияны и бездельники!
Если вы подозреваете скрипт в неверной работе - логируйте и смотрите, что происходит, а не кидайте все в /dev/null. Собственно, логи могут быть полезны даже в том случае, если вы пока ничего не подозреваете.
Safronov_Alexei, поскольку вы решили, что нашли ответ, уточню: есть много программ, которые выдают PDF. Сам по себе формат позволяет создать хаос, как уже сказал Алексей. Но, конечно, какой-нибудь офисный пакет никакого особенного хаоса не создает - гонит текст подряд, и этот текст можно вычленить и даже определить размер шрифта, цвет и прочее.
Однако стоит понимать, что решение заведомо ущербно и у вас нет никакой гарантии, что следующий PDF (особенно если в нем окажутся таблицы и графики) не превратится на выходе в тыкву. Используя эту библиотеку и полагаясь на ее работу, вы сами закладываете в программу слабое звено, исправить которое никак не сможете.
Safronov_Alexei, нужная информация в PDF хранится в виде:
задать цвет 100% черный
выбрать шрифт Pragmatica 12pt высотой 10pt шириной
перейти по координатам 100 500
вывести строку "Хрен тебе, а не преобразование"
перейти по координатам 100 600
вывести строку "PDF-файла в сколько-нибудь"
задать цвет 0% голубой 100% малиновый 100% желтый 0% черный
выбрать шрифт PragmaticaBold 12pt высотой 10pt шириной
перейти по координатам 100 700
вывести строку "осмысленный"
задать цвет 100% черный
задать шрифт Pragmatica 12pt высотой 10pt шириной
перейти по координатам 300 700
вывести строку "HTML-код"
Это всего одно предложение с одним словом, выделенным полужирным красным, разбитое в абзац на три строки.
Nicky23, ну да, при переборе списка он не критичен, так как касается только отрисовки, а если вы будете выполнять ее внутри класса - так он-то знает, чей он наследник.
Nicky23, окей, множественное наследование - обязательно. Нюанс в том, что обращение к функциям класса Color понадобится только внутри метода draw класса Circle, унаследованного им от Figure. Поэтому внутри списка он по-прежнему может быть преставлен просто как Figure.