Неортодоксальный вопрос. :-) Во время тестирования разработки я предпочел бы создавать несжатые, не двоичные PDF файлы с iTextSharp, чтобы я мог легко проверить их внутренности. Я всегда могу преобразовать готовый PDF с различными утилитами, но это делает дополнительный шаг, который было бы удобно избежать. Есть несколько мест (например, PdfImage), где я могу определить уровень сжатия, но я не мог найти ничего о сжатии, используемом для вывода отдельных PDF-объектов в поток. Считаете ли вы, что это возможно с iTextSharp?
У вас есть два варианта:
[1.] Отключить сжатие для всех ваших документов сразу:
Взгляните на класс Document
. Ты найдешь:
public static bool Compress = true;
Если вы измените этот static bool
на false
, потоки синтаксиса PDF не будут сжаты.
Конечно: изображения будут де-факто сжаты. Например: если вы добавляете JPEG в свой документ, вы добавляете изображение, которое уже сжато, и iText не будет его распаковывать.
[2.] Отключение сжатия для одного документа за раз:
PdfWriter
класс PdfWriter
. Ты найдешь:
protected internal int compressionLevel = PdfStream.DEFAULT_COMPRESSION;
Если вы измените значение параметра compressionLevel
на PdfStream.NO_COMPRESSION
перед открытием документа, ваши потоки синтаксиса PDF не будут сжаты.
Deflater.NO_COMPRESSION
сейчас (изjava.util.zip.Deflater
).