У меня есть PDF отсканированной книги, изображения в формате JBIG2 (ч / б). Я хотел бы преобразовать это в векторный PDF, что я могу легко сделать, извлекая изображения и преобразовывая их в инструкции векторной графики PDF с помощью potrace.
Причина этого в том, что я хочу, чтобы PDF-файл отображался плавно и быстро на устройстве для чтения электронных книг, таком как Kindle. С JBIG2 это не очень хорошо. В зависимости от настроек, Kindle не может отображать PDF, и даже с этим фиксированным, рендеринг каждой страницы занимает много времени. С векторным PDF производительность намного лучше, а рендеринг очень четким.
Проблема в том, что полученный PDF имеет гигантский размер. Даже при максимальном сжатии потоков gz он составляет 300 КБ на страницу (исходные изображения JBIG2 составляли 30 КБ на страницу).
Можно ли как-нибудь оптимизировать векторную графику, чтобы размер файлов был намного меньше?
Вот сегмент инструкций векторного рисования:
0.100000 0.000000 0.000000 0.100000 0.000000 0.000000 cm
0 g
8277 29404 m
8263 29390 8270 29370 8289 29370 c
8335 29370 8340 29361 8340 29284 c
8340 29220 8338 29210 8323 29210 c
8194 29207 8141 29208 8132 29214 c
8125 29218 8120 29248 8120 29289 c
8120 29356 8121 29358 8150 29370 c
8201 29391 8184 29400 8095 29400 c
8004 29400 7986 29388 8033 29357 c
8056 29342 8057 29338 8057 29180 c
8058 29018 l
8029 29008 l
8012 29002 8001 28993 8003 28986 c
h
f
Я бы подумал, что числа можно сжать очень легко, но, очевидно, нет. Одна страница содержит 800 КБ несжатого (как указано выше) и 300 КБ сжатого gz. Я бы подумал, что степень сжатия могла бы быть намного лучше, учитывая, что в инструкциях все числа находятся в одинаковых диапазонах.