Расжать PDF-файл

107
17 декабря 2021, 17:50

Требуется расжать ПДФ, а именно: ПДФ хранится обычно в сжатом виде, типа:

%PDF-1.4
1 0 obj
<< 
/Length 5910
/Filter /FlateDecode
>>
stream
X…Ѕ]ЛЋл<rЮчSш~

Требутся расжать файл до вида:

     %PDF-1.4
    %вгПУ
    1 0 obj 
    <<
    /Length 39229
    >>
    stream
    q
    1 1 1 rg
    0 0 595.44 841.68 re
    W
    n
    0 0 595.44 841.68 re
    f
    Q
    q
    412.86 617.22 146.58 11.31 re
    W
    n
    BT
    0 0 0.545 rg
    0 0 0.545 RG
    /F1 8  Tf
    0 621.288 Td
    414.3 0 Td
    <001900130018001300180013001C0014001C0013001A001600170013001800190014001B0019> Tj
    -414.3 -9.199 Td
    ET
    Q
...

Пробовал так:

Сжатие:

using (FileStream sourceStream = new FileStream("путь", FileMode.Open))
          {
              using (FileStream targetStream = File.Create("compressed.pdf"))
              {
                  using (GZipStream compressionStream = new GZipStream(targetStream, CompressionMode.Compress))
                  {
                      sourceStream.CopyTo(compressionStream); 
                  }
              }
          }

Разжатие:

      using (FileStream sourceStream = new FileStream("compressed.pdf", FileMode.Open))
      {
          using (FileStream targetStream = File.Create("uncompressed.pdf"))
          {
              using (GZipStream decompressionStream = new GZipStream(sourceStream, CompressionMode.Decompress))
              {
                  decompressionStream.CopyTo(targetStream);
              }
          }
      }

Т.е. сначала сжимаю (иначе кидает Exception о неверной кодировке), потом разжимаю. Очевидно что при таком раскладе я получаю исходный сжатый вариант. Пробовал DeflateStream - результат аналогичный. Подскажите пожалуйста! Нужно именно просто разжать и все, более не требуются, поэтому сторонние библиотеки не подходят.

READ ALSO
проблема с IntelliSence VisualStudio 2019

проблема с IntelliSence VisualStudio 2019

В vs 2017 и до него Intellisense работал просто отличноЯ набирал текст, не важно с большой буквы, с ошибкой - visual studio сам выбирал вариант, подсвечивал...

94
Регулярное выражение для Regex

Регулярное выражение для Regex

Как прописать регулярное выражения для Regex , чтобы в строке найти два одинаковых слова(не более)?

92
как прокручивать картинку?

как прокручивать картинку?

у меня картинка отображается в picturebox мне нужно её в низ и вверх прокручиватькак это сделать?

212
Ошибка миграции в проекте WinForms .NET 4.6

Ошибка миграции в проекте WinForms .NET 4.6

Не могу найти связь, с какого момента стал получать описанную ниже ошибкуИспользую 17 студию, начал получать ошибку миграции :

71