Быстрая библиотека сжатия PDF для.NET

Учебное руководство Python имеет приложение, названное Арифметика С плавающей точкой: Проблемы и Ограничения . Считайте его. Это объясняет, что происходит и почему Python прилагает все усилия. Это имеет даже пример, который соответствует Вашему. Позвольте мне заключить немного в кавычки:

>>> 0.1
0.10000000000000001

можно испытать желание использовать эти round() функция для прерывания его назад к единственной цифре, которую Вы ожидаете. Но это не имеет никакого значения:

>>> round(0.1, 1)
0.10000000000000001

проблема состоит в том, что двоичное значение с плавающей точкой, сохраненное для “0.1” уже, было самым лучшим двоичным приближением к 1/10, таким образом пробуя к раунду, это снова can’t делает его лучше: это было уже столь хорошо, как это добирается.

Другое последствие - то, что с тех пор 0.1 не точно 1/10, суммирование десяти значений 0.1 не может уступить точно 1.0, также:

>>> sum = 0.0
>>> for i in range(10):
...     sum += 0.1
...
>>> sum
0.99999999999999989

Одна альтернатива и решение Ваших проблем использовали бы decimal модуль.

9
задан 4 August 2009 в 14:54
поделиться

1 ответ

На сайте компании представлены три примера: один сжимает pdf-файл с 9,1 МБ до 133 КБ. Открытие их с помощью Блокнота показывает одно изображение размером 2500x3000, в основном черное, сжатое с помощью FlateDecode, преобразованное в изображение того же размера, сжатое с помощью JPEG2000. Такая степень сжатия, вероятно, лучший сценарий. Два других примера более разумны; 741–349 КБ и 940–804 КБ. Они также включают снимок экрана с настройками; один проверенный во всех трех примерах содержит предупреждение: "ОЧЕНЬ МЕДЛЕННО !!!" Хотя, похоже, хороший продукт. Он делает все правильные вещи, включая веб-оптимизацию.

10% оригинала маловероятны, если только ваши файлы pdf ' содержимое известно заранее, много изображений, и вы вручную кодируете решение с помощью iTextSharp, чтобы воспользоваться преимуществами способа объединения PDF-файлов.

Если вам нравится, как работает ваш компонент, и он не является потокобезопасным, почему бы просто не создать с ним 10 отдельных процессов? Если у вас много больших изображений, будьте осторожны с ошибками нехватки памяти.

2
ответ дан 5 December 2019 в 02:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: