我有一些C代码试图使用libharu。虽然我可以使用这个库的每个功能(甚至是UTF8)但我很难画出图像。这是一些非常基本的代码:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <setjmp.h>
#include "hpdf.h"
jmp_buf env;
#ifdef HPDF_DLL
void __stdcall
#else
void
#endif
error_handler (HPDF_STATUS error_no,
HPDF_STATUS detail_no,
void *user_data)
{
printf ("ERROR: error_no=%04X, detail_no=%u\n", (HPDF_UINT)error_no,
(HPDF_UINT)detail_no);
longjmp(env, 1);
}
int main (int argc, char **argv)
{
HPDF_Doc pdf;
HPDF_Font font;
HPDF_Page page;
char fname[256];
HPDF_Image image;
strcpy (fname, argv[0]);
strcat (fname, ".pdf");
pdf = HPDF_New (error_handler, NULL);
if (!pdf) {
printf ("error: cannot create PdfDoc object\n");
return 1;
}
/* error-handler */
if (setjmp(env)) {
HPDF_Free (pdf);
return 1;
}
font = HPDF_GetFont (pdf, "Helvetica", NULL);
page = HPDF_AddPage (pdf);
HPDF_Page_SetWidth (page, 550);
HPDF_Page_SetHeight (page, 500);
image = HPDF_LoadPngImageFromFile (pdf, "img.png");
HPDF_SaveToFile (pdf, fname);
HPDF_Free (pdf);
return 0;
}
当我编译它时,我有ERROR: error_no=1015, detail_no=0
。我在stackoverflow中找到了类似的帖子:this。然而,尽管原始海报说问题已经解决但很难帮助我。我将img.png移动到一个文件夹并重新编译该文件。更改了/home/name/path/to/img.png
代码,该代码是图片的直接路径。什么都行不通。我“总是”有相同的错误,但是当我更改文件名时我有ERROR: error_no=1017, detail_no=2
这基本上意味着程序无法找到图像(根据libharu的参考)所以我推断该程序找到了img.png;但是,它很奇怪但是,无法分配必要的内存。这很奇怪,因为我看不出这个程序没有分配内存的任何理由。我有各种许可。
我在Ubuntu Quantal Quetzal和libharu 2.3.0 RC2下使用GCC 4.7.2。谢谢您的帮助。