c - 在 libharu C 中动态添加页面

标签 c pdf-generation libharu

我正在生成一份 pdf 报告,问题是我不知道该报告有多少页,它会有很大差异。我需要根据需要动态创建页面,我尝试了此操作,但它不起作用。

//page counter
int page_num=1;

HPDF_Doc  pdf;
HPDF_Page *page;
char fname[256];
HPDF_Destination dst;
//This works for the first page 
page = malloc(sizeof(*page));
if (page==NULL) {
    printf("Error allocating memory!\n"); //print an error message
} else {
    printf("allocation successful\n");
}

我可以正常写入pdf文件,但是当我尝试创建另一个页面时 我遇到段错误。我尝试这样。

page_num ++;
HPDF_Page *temp;
*temp = realloc(page, (page_num+2) * sizeof(page));
if ( temp != NULL ) //realloc was successful
{
page = temp;
page[page_num] = HPDF_AddPage (pdf); //** This line makes it crash **//

printf("Success Reallocating into page\n");
}
else //there was an error
{  printf("Error reallocating into page\n"); }

我尝试这样做是因为我需要返回到特定页面并插入页脚,其中包含页码示例“第 1 页,共 50 页”,如果有其他方法可以完成此操作,请告诉我。他们的网站上也有一个包含多个页面的示例,但这是在开始时设置的页面数量,这对我来说不起作用。

最佳答案

*temp = realloc(page, (page_num+2) * sizeof(page)) 此语句错误。 page是一个地址点,sizeof(page)为8

关于c - 在 libharu C 中动态添加页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25558883/

相关文章:

java - 使用什么来生成将包含动态生成的条形码(Java)的pdf文档?

javascript - 使用 Java 服务器端在 iFrame 上显示生成的 PDF 文件

c++ - 显式设置图像压缩过滤器

c - 为什么这个十进制 32 值没有预期的位模式?

c++ - 在 C++ 代码中使用纯 C 库是否会导致性能下降/损失?

c - pthread执行时间?如何计算?

char ** array = malloc(sizeof(char*)*len) vs malloc(sizeof(char)*len)

jquery - 在 wicked_pdf 中渲染 jQuery

c++ - 使用 libharu 在 pdf 中打印日文字符