pdfpdf-generationzliblibharu

HPDF_SetCompressionMode() not working in Libharu


I am generating Pdf files using LibHaru libraries. My code is following

#include <iostream>
#include "hpdf.h"


using namespace std;

void error_handler(HPDF_STATUS   error_no,  HPDF_STATUS   detail_no, void *user_data)
{
}

int main()
{
    cout<<"Compression"<<endl;

    HPDF_Doc pdf = HPDF_New(error_handler, NULL);

    if (!pdf) 
        return 0;
    HPDF_STATUS Status = HPDF_SetCompressionMode(pdf, HPDF_COMP_ALL);


    return 0;
}

PROBLEM: I debugged the code and found that HPDF_SetCompressionMode() returns 4129, which is the error code for Invalid value set when invoking HPDF_SetCommpressionMode(). .


Solution

  • If you step into the code, you will see you are getting the error because the ZLIB compression library was not compiled into your copy of HaruPDF.

    First: comment out this line in ..\win32\include\hpdf_config.h:

    /* zlib is not available */
    //#define LIBHPDF_HAVE_NOZLIB
    

    Second: find, download and unzip the ZLIB code. You can obtain the source from the following Website:

    http://www.zlib.net/

    Third: tell HaruPDF where it can find the ZLIB code, and recompile HaruPDF.

    You should now be able to use compression.

    Ain't Open Source grand?