libharu - free PDF library

Overview
#
#  URL http://libharu.org/
#
#  Copyright 2000-2006 (c) Takeshi Kanno
#  Copyright 2007-2009 (c) Antony Dovgal et al.
#

See INSTALL for instructions on how to install libHaru.

*
* What is Haru Free PDF Library?
*
Haru is a free, cross platform, open-sourced software library for generating 
PDF. It supports the following features.

   1. Generating PDF files with lines, text, images.
   2. Outline, text annotation, link annotation.
   3. Compressing document with deflate-decode.
   4. Embedding PNG, Jpeg images.
   5. Embedding Type1 font and TrueType font.
   6. Creating encrypted PDF files.
   7. Using various character set (ISO8859-1~16, MSCP1250~8, KOI8-R).
   8. Supporting CJK fonts and encodings.

You can add the feature of PDF creation by using Haru without understanding 
complicated internal structure of PDF.

*
* The differences from the previous version 
*

The biggest differences are that all code is written in C. 
To our regret, because internal structures changed greatly, The API is not 
compatible with previous version.

However, the new-version has the following advantages compared with the 
previous version.

 1. Supported shared-library build.
    A new-version library is able to be built as shared-library.
 2. The performance has been greatly improved.
    A new-version library is about 4-15 times faster than a previous version. 
 3. Supported more features.
    TrueType font, 128 bit encryption, arc function, and so on.

*
* Supporting platforms
*
Haru is written in ANSI-C and should compile easily with any compliant C 
compiler.
I inspected Haru in the following environment and make files for these 
environments are included in a package.

   1. Cygwin + GCC (Microsoft Windows)
   2. Cygwin + MinGW (Microsoft Windows)
   3. MSYS + MinGW (Microsoft Windows)
   3. Microsoft VC++ (Microsoft Windows)
   4. Borland C++ (Microsoft Windows)
   5. GCC (Linux, FreeBSD, NetBSD, Solaris...)

Also on platforms except the above, it is easy to build HARU. If you success to build HARU on other platforms, please send makefile to me.
In addition, ZLIB and PNGLIB are required when you want to use the features of 
compression and embedding PNG images. (In the case of Windows, static library 
files for several compilers are included in the package for WIndows.  In the 
case of  most of UNIX, these libraries are usually installed.)

*
* Available development environment
*
Haru can work as both a static-library (.a, .lib) and a shared-library (.so, .dll).
When you use it as a static-library, It can be used by C and C++.
But when you use it as a shared-library, it can be used by many development 
languages which support shared libraries.
So far, Haru provides bindings for Ruby, Delphi/Free Pascal, and C#.

If you write bindings for other programing languages, please inform me!

*
* Runtime environment of programs using Haru
*
1. static-library
   No runtime files are required.

2. shared-library
   In Windows, you have to distribute libhpdf.dll with a program. In UNIX you 
   have to distribute libhpdf.so* with a program.



NOTE:
In the UNIX environment, there are the cases that libz.so, libpng.so.x are 
necessary. About this, please refer to the documentation of PNGLIB and ZLIB.

*
* License
*
Haru is distributed under the ZLIB/LIBPNG License. Because ZLIB/LIBPNG License 
is one of the freest licenses, You can use Haru for various purposes.

The license of Haru is as follows.

Copyright (C) 1999-2006 Takeshi Kanno
Copyright (C) 2007-2009 Antony Dovgal

This software is provided 'as-is', without any express or implied warranty.

In no event will the authors be held liable for any damages arising from the 
use of this software.

Permission is granted to anyone to use this software for any purpose,including 
commercial applications, and to alter it and redistribute it freely, subject 
to the following restrictions:

 1. The origin of this software must not be misrepresented; you must not claim 
    that you wrote the original software. If you use this software in a 
    product, an acknowledgment in the product documentation would be 
    appreciated but is not required.
 2. Altered source versions must be plainly marked as such, and must not be 
    misrepresented as being the original software.
 3. This notice may not be removed or altered from any source distribution.


*
* Acknowledgment
*
1. Information-technology Promotion Agency(IPA)
   The development of Haru has been supported by Exploratory Software Project 
   of Information-technology Promotion Agency(IPA), Japan. 

2. All users of libHaru.
   We wish to thank all users of Haru.
   In particular, we thank Thomas Nimstad, LeslieM, Par Hogberg, adenelson, 
   Riccardo Cohen, sea_sbs, Andrew. 
   They gave me very useful advices.

3. Sourceforge.net
   We would like to thank sourceForge.net for project hosting.

4. Adobe Systems Inc.
   We thank Adobe Systems Inc. for publishing PDF specification.

Comments
  • Add support for free-form triangle shading objects.

    Add support for free-form triangle shading objects.

    We needed the ability to draw polygons with smoothly interpolated vertex colors in VTK, and this patch is sufficient for our needs. Sharing as a MR if anyone else is interested.

    Refs #102

    opened by allisonvacanti 18
  • LIBHPDF_EXAMPLES

    LIBHPDF_EXAMPLES

    While trying to test libHaru with Visual Studio, I came across this error when I activate LIBHPDF_EXAMPLES in cmake.

    include\hpdf.h(464): error C2146: syntax error : missing ')' before identifier 'zoom' include\hpdf.h(464): error C2081: 'HPDF_Boolean' : name in formal parameter list illegal repeated often, probably for each example. Intellisense tells me: Error: Identifier "HPDF_Boolean" is undefined

    I tested with CMake 2.8 and 3.2, and with Visual Studio 2012 and 2013.

    I tried adding #include "hpdf_objects.h" in hpdf.h because HPDF_Boolean seems to be defined here, but now I have redefinition errors. I'm not actually a C programmer so I don't know how to fix that.

    problem 
    opened by nilgoyette 11
  • HPDF_Page_TextRect  Special character (German Umlaut) not display properly

    HPDF_Page_TextRect Special character (German Umlaut) not display properly

    I am using libharu for iPad pdf functionality and i want to display german text (specially Umlaut characters) on pdf using HPDF_Page_TextRect. i have tried various combinations in code but not get success to display umlaut characters (üöäÄÜÖß).

    If you have any solution for my issue please provide me.

    problem 
    opened by patelmaurya 10
  • What is the meaning of Font measurements

    What is the meaning of Font measurements

    He there,

    I'm trying to calculate height of my text before actually rendering it on a page, and I'm using methods: HPDF_Font_GetAscent() and HPDF_Font_GetDescent(). And I'm a bit confused bu result values for Helvetica typeface: Ascent: 718 Descent: -207 I assume that 0 is the Baseline

    But what this values mean? How could I re-calculate them into standard document units, which are points with 72dpi?

    I would appreciate it if someone could help me with this..

    opened by TheMidgardWatcher 9
  • Issue with building Libharu VS2015 C++ windows form

    Issue with building Libharu VS2015 C++ windows form

    Hello all,

    I have a VS2015 C++ CLR project (made acc. the top answer, option 2 HERE). I tried to implement the LibHaru library in different ways, but all without success:

    1. Pre-build DLL (from HERE):
      • Copy 'libhpdf.dll' to the project folder
      • In VS: Add -> Reference -> libhpdf.dll
      • I get the error: Could not add a reference to '... libhpdf.dll' as it is not of a type or version current project can use
    2. Build libharu myself:

    From the Libharu wiki (HERE) I do the following:

    Start 'VS2015 x86 Native Tools Command Prompt' -> cd to libharu folder. Enter command; "nmake -f script/Makefile.msvc_dll" (as I want to distribute my simple program with the dll) I get the error cannot open include file 'zlib.h'

    So I tried to zlib myself, which failed:

    • zlib:
      • from 'zlib-1.2.8/win32/VisualC.txt': To build zlib using the Microsoft Visual C++ environment, use the appropriate project from the projects/ directory.
      • I cannot find the projects/ directory in zlib-1.2.8. Therefore, I do not build zlib myself here.

    So I move on to libpng (which I read needs to be also built together with zlib to work for libharu):

    • libpng:
      • I open 'lpng1624/projects/vstudio/vstudio.sln', and build all with Release -> Win32
      • Rebuild All: 7 succeeded (after commenting out the //#ifdef PNG_FREESTANDING_TESTS lines in pngvalid.c, pngtest.c and pngunknown.c)
    • libharu:
      • I go to libharu-master\script\Makefile.msvc_dll and change the following text (to point to the correct folder finding zlib.h, zlib.dll, libpng13.lib and zlib.lib:
    PNG_PREFIX   = ../../libpng
    *to*   PNG_PREFIX   = ../lpng1624
    ZLIB_PREFIX   = ../../zlib
    *to*   ZLIB_PREFIX   = ../zlib-1.2.8
    CFLAGS=/MD -nologo -O2 -Iinclude -Iwin32\include   -I"$(PNG_PREFIX)"\include -I"$(ZLIB_PREFIX)"\include -DHPDF_DLL_MAKE
    *to*   CFLAGS=/MD -nologo -O2 -Iinclude -Iwin32\include   -I"$(PNG_PREFIX)" -I"$(ZLIB_PREFIX)" -DHPDF_DLL_MAKE
    LDFLAGS= /LIBPATH:$(PNG_PREFIX)\lib /LIBPATH:$(ZLIB_PREFIX)\lib /LIBPATH:win32\msvc libpng13.lib zlib.lib
    *to*   LDFLAGS= /LIBPATH:$(PNG_PREFIX)\projects\vstudio\Release /LIBPATH:$(ZLIB_PREFIX) /LIBPATH:win32\msvc libpng16.lib zlib.lib
    
    
    • Again, Start 'VS2015 x86 Native Tools Command Prompt' -> cd to libharu folder.
    • Enter command; "nmake -f script/Makefile.msvc_dll"
    • I get the following error, after which I am lost:
    libhpdf.def : error lnk2001: unresolved external symbol HPDF_3DAnnot_Set3DView
    libhpdf.lib : fatal error lnk1120: 1 unresolved externals
    NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\link.exe"' : return code '0x460'
    

    Am I doing something wrong or missing something? I have been trying 2 days now to get this working, but I am lost. I want to achieve the same as displayed in this youtube video, so when a Button is pushed on the WindowsForm, a PDF will be generated with some output text and a picture.

    opened by Tieske909090 9
  • Issue with implementing Libharu in Visual Studio 2017

    Issue with implementing Libharu in Visual Studio 2017

    @Tieske909090 Hello sir, so I followed your instructions but for Visual Studio 2017. When I run your code to test, I get "Unresolved External Symbol" erros.

    This is my project propery page image image image image etc.. image etc.. image image image image

    When I run the code image

    I perceived that I am missing lib file(s) but I can not figure out. Can you please kindly help me?

    Originally posted by @dinhanhx in https://github.com/libharu/libharu/issues/135#issuecomment-591348457

    opened by dinhanhx 8
  • Changes to reduce output file size

    Changes to reduce output file size

    Hi. I made some changes to reduce output file size when using embedded font files. Plus there's the zero padding on long boundary for the font tables that is recommended in the TrueType specification.

    Regards.

    enhancement 
    opened by domfe 7
  • HPDF_Page_CreateXObjectFromImage last argument has wrong type

    HPDF_Page_CreateXObjectFromImage last argument has wrong type

    The last argument of HPDF_Page_CreateXObjectFromImage is HPDF_Boolean zoom. But it is used only once in if (zoom) so the proper type for it seems to be HPDF_BOOL.

    opened by mvidiassov 6
  • Installation problems

    Installation problems

    Hi, I downloaded the tar.gz file from http://libharu.org/. When looking for a "configure" file, there's none. I tried buildconf.sh and think I got a good one, however, I now can't find a Makefile...

    I was following the "configure && make && make install" instructions.

    Thank you. By the way, I'm on linux/gcc

    opened by ajaimesv 6
  • Encoder: Fixes on 3 basic tables

    Encoder: Fixes on 3 basic tables

    Bug Fixes on hpdf_encoder.c file ref : Adobe Standard Encoding at http://unicode.org/Public/MAPPINGS/VENDORS/ADOBE/stdenc.txt Windows Ansi (CP1252) at http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT Mac OS Roman at http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/ROMAN.TXT

    HPDF_UNICODE_MAP_STANDARD table: 0x84 0x00D1 -> 0x0000

    HPDF_UNICODE_MAP_WIN_ANSI table: 0xA0 0x0000 -> 0x00A0 0xAD 0x0000 -> 0x00AD 0xB0 0x02DA -> 0x00B0

    HPDF_UNICODE_MAP_MAC_ROMAN table: 0x84 0x0000 -> 0x00D1 0xAD 0x0000 -> 0x2260 0xB0 0x0000 -> 0x221E 0xB2 0x0000 -> 0x2264 0xB3 0x0000 -> 0x2265 0xB6 0x0000 -> 0x2202 0xB7 0x0000 -> 0x2211 0xB8 0x0000 -> 0x220F 0xB9 0x0000 -> 0x03C0 0xBA 0x0000 -> 0x222B 0xBD 0x0000 -> 0x03A9 0xC3 0x0000 -> 0x221A 0xC5 0x0000 -> 0x2248 0xC6 0x0000 -> 0x2206 0xCA 0x0020 -> 0x00A0 0xD7 0x0000 -> 0x25CA 0xDB 0x00A4 -> 0x20AC 0xF0 0x0000 -> 0xF8FF

    Best regards

    opened by orouge 6
  • Add vcpkg installation instructions

    Add vcpkg installation instructions

    libharu is available as a port in vcpkg, a C++ library manager that simplifies installation for libharu and other project dependencies. Documenting the install process here will help users get started by providing a single set of commands to build libharu, ready to be included in their projects.

    We also test whether our library ports build in various configurations (dynamic, static) on various platforms (OSX, Linux, Windows: x86, x64) to keep a wide coverage for users.

    I'm a maintainer for vcpkg, and here is what the port script looks like. We try to keep the library maintained as close as possible to the original library. :)

    opened by FrankXie05 5
  • Why `hpdf_conf.h`  is misspelled

    Why `hpdf_conf.h` is misspelled

    I see this often, configuration files misspelled, so that the compiler will drop an error.

    In folder \libharu-2.4.2\include , the hpdf_conf.h file should be renamed to hpdf_config.h , otherwise compilation is failed, since hpdf.h asks for a hpdf_config.h file.

    Why is this named like that? So that users notice this file and edit its contents to match their application?

    opened by Basilisvirus 0
  • version: add static hpdf_version.h header

    version: add static hpdf_version.h header

    Store the libharu version number values (major/minor/bugfix and suffix) in the C header include/hpdf_version.h. Generate HPDF_VERSION_TEXT and HPDF_VERSION_ID from these values using the C preprocessor.

    To make the version number available to CMake, add CMake logic that automatically pulls these values from the C header.

    After this patch, the libharu version number is available to dependents without running CMake first, or without running CMake at all, making the source tree build-system agnostic. All the while retaining the advantage of having to maintain/update the version number at a single place.

    While here, make sure to include hpdf_version.h from hpdf.h again, so existing apps do not need to be modified to access the version numbers.

    This restores compatibility with pre-2.4.1 releases, where version number was accessible from C without custom build steps, and always available to users when including hpdf.h.

    Ref: https://github.com/libharu/libharu/pull/237

    opened by vszakats 0
  • Problem compiling with Cygwin and MSYS2

    Problem compiling with Cygwin and MSYS2

    Hello together, To create an executable file under Windows, I create this library with Cygwin. With MSYS2 i failed. To compile the whole project I use MINGW with MSYS2, because the other libraries like GTK and ImageMagick need this environment. The compiler tells me that in connection with libharu there are undefined referneces to some functions. Maybe it could be useful to mention that i use the 2_3 branche for my project. I think this was the most recent branche untill a few momths ago.

    when i compile the project i get this error message:

    gcc  src/GUI.c src/GUI_Call.c src/GUI_Status.c src/GUI_Update.c src/PDF.c src/PNG.c src/Worksheet_Baseboard.c src/Worksheet_Creat_Fraction.c src/Worksheet_Creat_Task.c src/main.c -LC:/msys64/mingw64/lib -lgtk-3 -lgdk-3 -lz -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid -lwinmm -ldwmapi -lsetupapi -lcfgmgr32 -lhid -lwinspool -lcomctl32 -lcomdlg32 -lpangowin32-1.0 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl C:/cygwin64/usr/local/lib/libhpdf.a -lz -lm -lpthread -IC:/cygwin64/usr/local/include -LC:/msys64/mingw64/lib -lMagickWand-7.Q16HDRI -lMagickCore-7.Q16HDRI -llzma -ljbig -ljpeg -lpng -ltiff -IC:\msys64\home\maximilian\Git\WCO\headers -mms-bitfields -IC:/msys64/mingw64/include/gtk-3.0 -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/pango-1.0 -IC:/msys64/mingw64/include/harfbuzz -IC:/msys64/mingw64/include/pango-1.0 -IC:/msys64/mingw64/include/fribidi -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/atk-1.0 -IC:/msys64/mingw64/include/cairo -IC:/msys64/mingw64/include/lzo -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/freetype2 -IC:/msys64/mingw64/include/harfbuzz -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/pixman-1 -IC:/msys64/mingw64/include/gdk-pixbuf-2.0 -IC:/msys64/mingw64/include/libpng16 -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/glib-2.0 -IC:/msys64/mingw64/lib/glib-2.0/include -IC:/msys64/mingw64/include -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -D_DLL -D_MT -fopenmp -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16 -D_DLL -D_MT -IC:/msys64/mingw64/include/ImageMagick-7  -o bin/prog
    src/PNG.c: In function 'WCO_PNG_Set_ConvertToPNG':
    src/PNG.c:72:14: warning: 'MagickWandTerminus' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
       72 |         void MagickWandTerminus(void);
          |              ^~~~~~~~~~~~~~~~~~
    C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/cygwin64/usr/local/lib/libhpdf.a(hpdf_image_ccitt.o):(.text+0x5aa): undefined reference to `__assert_func'
    C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/cygwin64/usr/local/lib/libhpdf.a(hpdf_streams.o):(.text+0x1201): undefined reference to `__errno'
    C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/cygwin64/usr/local/lib/libhpdf.a(hpdf_streams.o):(.text+0x12b1): undefined reference to `__errno'
    collect2.exe: error: ld returned 1 exit status
    make: *** [makefile:31: bin/prog] Error 1
    

    This is my makefile:

    CC = gcc
    CCF = -Wall -g
    SRCS = $(wildcard src/*.c)
    OBJS = $(patsubst src/*.c, obj/*.o, $(SRCS))
    BIN = bin/prog
    
    LibGTK_Lin = $(shell pkg-config --libs gtk+-3.0)
    FlagGTK_Lin = $(shell pkg-config --cflags gtk+-3.0)
    
    DynGTK = -export-dynamic
    
    LibLibHaru_Lin = /usr/local/lib/libhpdf.a -L/usr/local/lib -lz -lm -lpthread
    LibLibHaru_Win = C:/cygwin64/usr/local/lib/libhpdf.a -lz -lm -lpthread -IC:/cygwin64/usr/local/include
    
    LibIM_Lin = $(shell pkg-config --libs MagickWand) -llzma -ljbig -ljpeg -lpng -ltiff
    FlagIM_Lin = $(shell pkg-config --cflags MagickWand)
    
    FlagWCO_Lin = -I/home/maximilian/Git/WCO/headers
    FlagWCO_Win = -IC:\msys64\home\maximilian\Git\WCO\headers
    
    
    #KP = $(LibGTK_Lin) $(LibLibHaru_Lin) $(LibIM_Lin) $(FlagWCO_Lin) $(FlagGTK_Lin) $(FlagIM_Lin) $(DynGTK)
    KP = $(LibGTK_Lin) $(LibLibHaru_Win) $(LibIM_Lin) $(FlagWCO_Win) $(FlagGTK_Lin) $(FlagIM_Lin) 
    
    $(BIN): $(OBJS)
    	$(CC) $(OBJS) $(KP) -o [email protected]
    
    obj/%.o: src/%.c
    	$(CC) $(CCF) $(KP) -c $< -o [email protected]
    
    clean:
    	rm  $(BIN)
    

    Can any one give me some suggestion.

    opened by Oszimilian 1
  • Is libharu repo back online? - merge in VTK fork too

    Is libharu repo back online? - merge in VTK fork too

    @bramton have you picked up the maintainer's hat? Great :) Would just like to point out that VTK maintains a fork with a few merges from various places too. https://gitlab.kitware.com/third-party/libharu

    opened by paulharris 1
  • HPDF_LoadPngImageFromFile() ERROR: error_no=1017, detail_no=2

    HPDF_LoadPngImageFromFile() ERROR: error_no=1017, detail_no=2

    I compiled 64 bit libharu library, other functions are normal but when I tried to load png image from my computer using HPDF_LoadPngImageFromFile(), I faced the error, ERROR: error_no=1017, detail_no=2. Others deduced that that was because the system failed to allocate memory. One more thing I tried 32 bit libhpdf.lib, I succeeded to load png image. What's the problem, Can any one give me some suggestion.

    opened by Leslie20200401 3
Releases(v2.4.2)
  • v2.4.2(Sep 11, 2022)

  • v2.4.1(Sep 5, 2022)

    • Fixed library name #236 from @jschueller
    • Set correct version number #237 pointed out by @xantares Full Changelog: https://github.com/libharu/libharu/compare/v2.4.0...v2.4.1
    Source code(tar.gz)
    Source code(zip)
  • v2.4.0(Aug 6, 2022)

    What's Changed

    • Add support for free-form triangle shading objects. by @allisonvacanti in https://github.com/libharu/libharu/pull/157
    • Fix config constant to match use in hpdf_mmgr.c by @bvirlet in https://github.com/libharu/libharu/pull/167
    • Improve small number writing in HPDF_FToA. by @allisonvacanti in https://github.com/libharu/libharu/pull/187
    • Fix missing /CapHeight key in font definition by @yabaud in https://github.com/libharu/libharu/pull/138
    • Change HPDF_Page_CreateXObjectFromImage zoom parameter type to HPDF… by @extensia in https://github.com/libharu/libharu/pull/114
    • Fix another case of png files with background mask save uncompressed by @igor-niv in https://github.com/libharu/libharu/pull/221
    • Avoid issue with libtiff duplicate symbols by @bvirlet in https://github.com/libharu/libharu/pull/168
    • Reajust bit_depth of png image after striping depth from 16 to 8. by @joelhecht in https://github.com/libharu/libharu/pull/125
    • Fixed typo in Japanese font name: Mincyo -> Mincho by @qtamaki in https://github.com/libharu/libharu/pull/80
    • Fix various typos by @luzpaz in https://github.com/libharu/libharu/pull/226
    • hpdf.h: add missing HPDF_Boolean typedef by @mathstuf in https://github.com/libharu/libharu/pull/189
    • Moved to a CMake only build environment.
    • Fix bad unicode in comment by @gix in https://github.com/libharu/libharu/pull/229
    • Fix various typos by @luzpaz in https://github.com/libharu/libharu/pull/230

    Full Changelog: https://github.com/libharu/libharu/compare/RELEASE_2_3_0...v2.4.0

    Source code(tar.gz)
    Source code(zip)
  • v2.4.0-rc1(Jun 23, 2022)

    This is a pre-release, please test and examine it carefully as a large number of things have been changed since last release.

    What's Changed

    • Add support for free-form triangle shading objects. by @allisonvacanti in https://github.com/libharu/libharu/pull/157
    • Fix config constant to match use in hpdf_mmgr.c by @bvirlet in https://github.com/libharu/libharu/pull/167
    • Improve small number writing in HPDF_FToA. by @allisonvacanti in https://github.com/libharu/libharu/pull/187
    • Fix missing /CapHeight key in font definition by @yabaud in https://github.com/libharu/libharu/pull/138
    • Change HPDF_Page_CreateXObjectFromImage zoom parameter type to HPDF… by @extensia in https://github.com/libharu/libharu/pull/114
    • Fix another case of png files with background mask save uncompressed by @igor-niv in https://github.com/libharu/libharu/pull/221
    • Avoid issue with libtiff duplicate symbols by @bvirlet in https://github.com/libharu/libharu/pull/168
    • Reajust bit_depth of png image after striping depth from 16 to 8. by @joelhecht in https://github.com/libharu/libharu/pull/125
    • Fixed typo in Japanese font name: Mincyo -> Mincho by @qtamaki in https://github.com/libharu/libharu/pull/80
    • Fix various typos by @luzpaz in https://github.com/libharu/libharu/pull/226
    • hpdf.h: add missing HPDF_Boolean typedef by @mathstuf in https://github.com/libharu/libharu/pull/189
    • Moved to a CMake only build environment.
    Source code(tar.gz)
    Source code(zip)
  • RELEASE_2_3_0(Jun 26, 2015)

  • RELEASE_2_3_0RC3(Oct 24, 2013)

  • RELEASE_2_3_0RC2(Jun 26, 2015)

  • RELEASE_2_3_0RC1(Jun 26, 2015)

    • Added support for 3dMeasures of subtype PD3 and 3DC, projection annotations, ExData and javascript attached to a U3D model. (Robert Würfel)
    • Added support for 1- and 2-byte UTF8 codes. (Clayman)
    • Added full PDF/A1-b support. (Petr Pytelka)
    • Added support for CCITT compression for B/W images. (Petr Pytelka)
    • Add support for TwoPageLeft and TwoPageRight layouts. (Vincent Dupont)
    • Const-ified arrays used in the sources. (Ilkka Lehtoranta)
    • Fixed build with libpng 1.5.0
    • Fixed bug in HPDF_GetContents() - isize variable was not initialized. (Vincent Dupont)
    • Fixed possible endless loop in PNG handling code. (reported by Mathew Waters)
    • Fixed several issues based on the warnings generated by clang-analyzer. (Daniel Höpfl)
    • Fixed quite a number of warnings. (Davide Achilli)
    • Added 'd' postfix to debug build, fixed wrong filename. (Wim Dumon)
    • Fixed HPDF_Text_Rect() not to split words in some obscure cases.
    Source code(tar.gz)
    Source code(zip)
  • RELEASE_2_2_0(Jun 26, 2015)

    • Greatly improved U3D support (Nikhil Soman)
      • Markup Annotations
      • Free Text Annotations
      • Line Annotations
      • Circle and Squre Annotations
      • Text Markup Annotations
      • Rubber Stamp Annotations
      • Popup Annotations
    • Added VB.Net bindings. (Matt Underwood)
    • Added CMake build system (experimental). (Werner Smekal)
    • Added preliminary ICC support. (vbrasseur at gmail dot com)
    • Added HPDF_Image_AddSMask(). (patch by Adam Blokus)
    • Added HPDF_LoadPngImageFromMem() and HPDF_LoadJpegImageFromMem(). (patch by Adam Blokus)
    • Added HPDF_GetContents().
    • Added HPDF_Page_SetZoom().
    • Added support for CMYK in HPDF_Image_LoadRawImageFromMem().
    • Applied a bunch of fixes and improvements from bug report #13.
    • HPDF_Page_TextRect() corrections and improvements. (Ralf Junker)
    • Fixed build failure when zlib was not found. (Werner Smekal)
    • Fixed build with newer libtool versions.
    • Fixed external build. (thanks to Jeremiah Willcock)
    • Fixed memleak in HPDF_EmbeddedFile_New(). (Ralf Junker)
    • Fixed uninitialized fields in HPDF_Type1FontDef_New(). (Ralf Junker)
    • Fixed issue with grayscale PNG images. (Ralf Junker)
    • Fixed missing parentheses from empty string object. (Ralf Junker)
    • Fixed bug #21 (Build fails on Win CE because of errno and errno.h usage).
    • Fixed bug #18 (Missing compiler flag -fexceptions)
    • Fixed bug #11 (sqrtf() is missing on Winblows).
    • Fixed bug #10 (missing HPDF_LoadPngImageFromMem from win32/msvc/libhpdf.def).
    • Fixed bug #7 (HPDF_String_SetValue() is declared twice).
    • Fixed bug #6 (possible NULL dereference in HPDF_LoadPngImageFromFile2()).
    • Fixed bug #5 (possible NULL derefernce in HPDF_LoadRawImageFromFile()).
    • Fixed bug #4 (possible NULL dereference in HPDF_AToI()).
    • Fixed bug #2 (Ruby binding: hpdf_insert_page has stray printf).
    Source code(tar.gz)
    Source code(zip)
  • RELEASE_2_1_0(Jun 26, 2015)

    • Added initial support for Alpha channel in RGB and palette-based PNG images.
    • Added HPDF_GetTTFontDefFromFile() function. This closes [FR #1604475](HPDF_FONT_EXISTS not error)
    • Added FreeBasic bindings. (Klaus Siebke)
    • Added Python bindings. (Li Jun)
    • Added U3D support. (Michail Vidiassov)
    • Changed the build system to use autotools.
    • Fixed bug #1682456 (NULL dereference in LoadType1FontFromStream()).
    • Fixed bug #1628096 (NULL pointer may be dereferenced).
    Source code(tar.gz)
    Source code(zip)
All-in-one library and application for processing and rendering PDF documents.

All-in-one library and application for processing and rendering PDF documents. Contains document viewer/editor application, application for splitting/merging PDF documents and page manipulation, application for comparison of similar PDF documents.

Jakub Melka 22 Sep 24, 2022
Sioyek is a PDF viewer designed for reading research papers and technical books.

Sioyek is a PDF viewer designed for reading research papers and technical books.

null 3.9k Sep 17, 2022
Convert HTML to PDF using Webkit (QtWebKit)

wkhtmltopdf and wkhtmltoimage wkhtmltopdf and wkhtmltoimage are command line tools to render HTML into PDF and various image formats using the QT Webk

wkhtmltopdf 12.6k Sep 20, 2022
PDFio is a simple C library for reading and writing PDF files

pdfio - PDF Read/Write Library PDFio is a simple C library for reading and writing PDF files. The primary goals of PDFio are: Read and write any versi

Michael R Sweet 53 Sep 14, 2022
All-in-one library and application for processing and rendering PDF documents.

All-in-one library and application for processing and rendering PDF documents. Contains document viewer/editor application, application for splitting/merging PDF documents and page manipulation, application for comparison of similar PDF documents.

Jakub Melka 22 Sep 24, 2022
Pdfmm - A C++ PDF manipulation library forked from PoDoFo

pdfmm What is pdfmm? Requirements String encoding API Stability TODO Licensing No warranty Contributions Authors What is pdfmm? pdfmm is a s a free po

null 32 Sep 21, 2022
High performance library for creating, modiyfing and parsing PDF files in C++

Welcome to PDF-Writer. A Fast and Free C++ Library for Creating, Parsing an Manipulating PDF Files and Streams. Documentation is available here. Proje

gal kahana 658 Sep 20, 2022
Fix ToUnicode CMap in PDF

A tool to fix ToUnicod CMap in PDF to prevent extracted text from being garbled [ English / 日本語 (Japanese) ] When copying and pasting text from a PDF

Masamichi Hosoda 22 Aug 16, 2022
FCracker is a command line tool designed to brute force encrypted files like zip, 7z, rar, pdf etc.

FCrack is a command-line tool designed to brute force encrypted files like zip, 7z, rar, pdf, gpg etc.

null 18 Sep 19, 2022
Generate a PDF Planner for the Remarkable Platform

Planner PDF This will generate a PDF File that can be used as a planner on the remarkable platform. It uses the libharu library to generate the PDF an

null 46 Aug 20, 2022
Xournal++ is a handwriting notetaking software with PDF annotation support. Written in C++ with GTK3, supporting Linux (e.g. Ubuntu, Debian, Arch, SUSE), macOS and Windows 10. Supports pen input from devices such as Wacom Tablets.

Xournal++ is a hand note taking software written in C++ with the target of flexibility, functionality and speed. Stroke recognizer and other parts are based on Xournal Code

Xournalpp 7.2k Sep 24, 2022
Xournal++ is a handwriting notetaking software with PDF annotation support

Xournal++ is a handwriting notetaking software with PDF annotation support. Written in C++ with GTK3, supporting Linux (e.g. Ubuntu, Debian, Arch, SUSE), macOS and Windows 10. Supports pen input from devices such as Wacom Tablets.

Xournalpp 7.2k Sep 20, 2022
Sioyek is a PDF viewer designed for reading research papers and technical books.

Sioyek is a PDF viewer designed for reading research papers and technical books.

null 3.9k Sep 17, 2022
Contribute your handwritten PDF notes and help other students ✌ #DecodersCommunity 🖤

Contribute your handwritten PDF notes and help other students ✌ #DecodersCommunity ??

Decoders Community 30 Sep 9, 2022
Convert HTML to PDF using Webkit (QtWebKit)

wkhtmltopdf and wkhtmltoimage wkhtmltopdf and wkhtmltoimage are command line tools to render HTML into PDF and various image formats using the QT Webk

wkhtmltopdf 12.6k Sep 20, 2022
OpenScan is an open-source document scanner app that enables users to scan hard copies of documents or notes and convert it into a PDF file. No ads. No data collection. We respect your privacy.

OpenScan An open source app that enables users to scan hardcopies of documents or notes and convert it to a PDF file. No ads. No data collection. We r

Ethereal Developers Inc 1.1k Sep 24, 2022
A bounded single-producer single-consumer wait-free and lock-free queue written in C++11

SPSCQueue.h A single producer single consumer wait-free and lock-free fixed size queue written in C++11. Example SPSCQueue<int> q(2); auto t = std::th

Erik Rigtorp 529 Sep 20, 2022
Forkpool - A bleeding-edge, lock-free, wait-free, continuation-stealing scheduler for C++20

riften::Forkpool A bleeding-edge, lock-free, wait-free, continuation-stealing scheduler for C++20. This project uses C++20's coroutines to implement c

Conor Williams 123 Jul 6, 2022
Awesome-lockfree - A collection of resources on wait-free and lock-free programming

Awesome Lock-Free A collection of resources on wait-free and lock-free programming. ?? ?? ?? Even better resource from MattPD: C++ links: atomics, loc

Erik Rigtorp 1.3k Sep 24, 2022
A collection of hash tables for parallel programming, including lock-free, wait-free tables.

Hatrack Hash tables for parallel programming This project consisists of fast hash tables suitable for parallel programming, including multiple lock-fr

null 57 Jul 26, 2022