Ghostscript многостраничный PDF к PNG

1110 Этот вопрос довольно старый. Но все еще актуально, поэтому я собираюсь дать свой ответ. Сегодня многие процессоры поставляются со встроенным аппаратным генератором случайных чисел (RNG). Кроме того, многие системы поставляются с модулем доверенной платформы (TPM), который также обеспечивает ГСЧ. Есть и другие варианты, которые можно приобрести, но есть вероятность, что на вашем компьютере уже есть что-то.

Вы можете использовать rngd из пакета rng-utils на большинстве дистрибутивов Linux, чтобы получить больше случайных данных. Например, на fedora 18 все, что мне нужно было сделать, чтобы разрешить заполнение из TPM и CPU RNG (инструкция RDRAND), было:

# systemctl enable rngd
# systemctl start rngd

Вы можете сравнить скорость с и без rngd. Это хорошая идея запустить rngd -v -f из командной строки. Это покажет вам обнаруженные источники энтропии. Убедитесь, что все необходимые модули для поддержки ваших источников загружены. Чтобы использовать TPM, его нужно активировать через tpm-tools. Обновление : вот хорошая инструкция .

Кстати, я читал в Интернете некоторые опасения по поводу того, что TPM RNG часто ломается по-разному, но не читал ничего конкретного против RNG, обнаруженного в чипах Intel, AMD и VIA. Использование более одного источника было бы лучше, если вы действительно заботитесь о качестве случайности.

urandom подходит для большинства случаев использования (за исключением случаев, когда во время начальной загрузки). В настоящее время большинство программ используют случайный, а не случайный. Даже openssl делает это . См. мифы об урандоме и , сравнение случайных интерфейсов .

В недавних Fedora и RHEL / CentOS rng-tools также поддерживают энтропию джиттера . Вы можете сделать это из-за отсутствия аппаратных опций или если вы просто доверяете этому больше, чем своему аппаратному обеспечению.

ОБНОВЛЕНИЕ: другой вариант для большей энтропии - HAVEGED (сомнительное качество). На виртуальных машинах есть kvm / qemu VirtIORNG (рекомендуется).

15
задан Josh Bush 19 May 2009 в 19:25
поделиться

2 ответа

В итоге я добавил "% d" к параметру "OutputFile", чтобы он генерировал по одному файлу на страницу. Затем я просто прочитал все файлы и сшил их вместе в своем коде на C # следующим образом:

var images =pdf.GetPreview(1,8); //All of the individual images read in one per file

using (Bitmap b = new Bitmap(images[0].Width, images.Sum(img=>img.Height))) {
    using (var g = Graphics.FromImage(b)) {
        for (int i = 0; i < images.Count; i++) {
            g.DrawImageUnscaled(images[i], 0, images.Take(i).Sum(img=>img.Height));
        }
    }
    //Do Stuff
}
11
ответ дан 1 December 2019 в 03:43
поделиться

First check the output device options; but I don't think there's an option for that.

Most probably you'll need to do some imposition yourself, either make GhostScript do it (you'll have to write a PostScript program), or stitch the resulting rendered pages with ImageMagick or something similar.

If you want to try the PostScript route (likely to be the most efficient), check the N-up examples included in the GhostScript package.

1
ответ дан 1 December 2019 в 03:43
поделиться
Другие вопросы по тегам:

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