zlib будет раздувать поток, но текст, закодированный в <>, останется в шестнадцатеричной форме - PullRequest
0 голосов
/ 16 апреля 2019

Я использую embarcadero 10.3.1 c ++, использую zlib inflate.этот код работает, однако текст в шестнадцатеричной форме кодируется.после кода ниже вы найдете проблему pdf ver.1.7

        size_t outsize = (streamend - streamstart) * 10;
        char *zoutput = new char[outsize];
        memset(zoutput,0,outsize);

        z_stream zstrm;
        zstrm.zalloc = Z_NULL;
        zstrm.zfree = Z_NULL;
        zstrm.opaque = Z_NULL;
        zstrm.avail_in = (unsigned int)(streamend - streamstart + 1);
        zstrm.avail_out = (unsigned int)outsize;
        zstrm.next_in = (Byte *)(streamstart);
        zstrm.next_out = (Byte *)zoutput;

        int rsti = inflateInit(zstrm);

        if (rsti == Z_OK) {
            int rst2 = inflate(zstrm, Z_FINISH);
            inflateEnd(zstrm);

            if (rst2 >= 0) {
                size_t totout = zstrm.total_out;
                   }
             }




==inflated version using zlib===========================================

Эта информация в формате pdf содержит конфиденциальные личные данные, приведенные ниже выходные данные были получены из закодированного потока, нижеприведенные выходные данные представляют собой читаемый поток декодирования в формате pdf.Проблема в том, что библиотека zlib не декодировала текстовые или плавающие значения, такие как Tm \ n Tj \ n.внутри <> E689A388849981A68193A261D489A283 не будет декодироваться.Tm и Tj являются инструкциями, что механизм pdf переместит точку (Tm), и Tj начнет процесс отображения текста, закодированного в.

Является ли pdf многоуровневым закодированным файлом?или что заставит zlib декодировать или распаковать шестнадцатеричные строки.Я попробовал ASCII85 и HEXtoASCII.Я продолжу читать спецификацию Adobe.

этому коду я предшествовал коду в верхней части, чтобы изолировать char bac [] = "";

        streamstart = bac;
        streamend = bac+(strlen(bac)*sizeof(char));

В строке есть данные транзакции, подобные найденным в операторе back, илиимя и адрес.Я не могу найти стратегию кодирования для <>, например <~~> => ASCII85.

Поток блоков имеет фильтр типа данных flatecode.
23 0 obj <> stream

============ вывод ниже из zlib inflate. =========================

> Blockquote

        =========right above===============================
        <C1C3C3D6E4D5E3> this I can not get converted to text.
...