У меня есть несколько прямоугольников, и все они имеют один и тот же цвет пятна. Есть ли способ объединить/сгруппировать их в один векторный объект, чтобы сгенерированный PDF имел меньший размер?Группировка прямоугольников в iTextSharp
ответ
Если вы создаете документ с нуля, тогда ответ тривиален: да!
Достаточно нарисовать все пути прямоугольников, которые имеют один и тот же цвет пятна, а затем использовать оператор, который заполняет, обводят или заполняет &.
Если вы говорите об оптимизации существующего документа PDF, у вас есть какое-то тяжелое программирование. Вам нужно будет анализировать каждый поток контента, ищущий операторов прямоугольника (при условии, что прямоугольники не будут рисоваться с использованием операторов move-to и line-to), проверьте, где эти формы заполнены и/или поглажены, а затем перегруппируйте все эти операторы. Это потребует много размышлений. Я бы знал, с чего начать, но я не могу предсказать, где это закончится. Возможно, окажется, что имеет смысл определить один прямоугольник как объект формы XObject и повторно использовать один внешний объект, возможно, нет. Трудно предсказать.
Кроме того: вы говорите об операторах в потоке. Эти потоки все равно сжаты, поэтому вы можете много работать, чтобы получить лишь небольшое уменьшение размера.
Я бы сказал: то, что вы просите, возможно, но неясно, почему вы это сделаете, потому что это приведет к ограниченному уменьшению размера файла.
Если размер проблемы, могут быть и другие места, где вы «теряете байты», что может привести к более желательному результату. Мне очень любопытно узнать, почему вы считаете, что прямоугольники, использующие спотовые цвета, являются виновниками. Вы являетесь повторного использования экземпляром цвета пятна, не так ли? Если вы создаете новый экземпляр цвета пятна для каждого рисованного прямоугольника, вы нашли настоящего виновника, и вы можете избежать группировки прямоугольников.
- 1. ITextsharp аннулирует подписи при использовании строк или прямоугольников
- 2. Группировка перекрывающих прямоугольников из массива как можно быстрее
- 3. Группировка элементов при экспорте данныхGridView в PDF с помощью iTextSharp
- 4. Объединение многих прямоугольников в меньшее количество прямоугольников
- 5. Создайте непрерывную матрицу прямоугольников из множества прямоугольников
- 6. Плитка прямоугольников в WPF
- 7. Перетаскивание прямоугольников в списке
- 8. Сравнение прямоугольников
- 9. Пересечения прямоугольников
- 10. Группировка/группировка чисел в Python
- 11. Рисование угловых прямоугольников в OpenCV
- 12. Пересечение в массиве прямоугольников OpenCv
- 13. Возможное количество прямоугольников в матрице
- 14. Объединение нескольких прямоугольников в Java
- 15. Сортировка ограниченных прямоугольников в opencv
- 16. Общая точка в массиве прямоугольников
- 17. Размещение прямоугольников в другом прямоугольнике
- 18. Рисование прямоугольников в 360 градусов
- 19. d3 круги в центре прямоугольников
- 20. Добавление прямоугольников в CCScene - cocos2d
- 21. Создание нескольких прямоугольников в JAVA
- 22. Случайное размещение прямоугольников в SFML
- 23. Общие точки в массиве прямоугольников
- 24. Перемещение связанных прямоугольников в d3js
- 25. Границы прямоугольников/графиков в matplotlib
- 26. нарисовать круг прямоугольников в Xcode
- 27. Покраска нескольких прямоугольников в JPanel
- 28. Рисуем много прямоугольников в GDI +
- 29. Общее количество прямоугольников в сетке?
- 30. Подключение двух прямоугольников в d3js