Replace catalog object if found.
Signed-off-by: yzrh <yzrh@noema.org>
This commit is contained in:
parent
8276423eb8
commit
8cd8a8fbba
1 changed files with 26 additions and 18 deletions
|
@ -244,10 +244,6 @@ cnki_pdf(cnki_t **param)
|
|||
printf("Loaded %d object(s)\n",
|
||||
pdf_get_count(&pdf));
|
||||
|
||||
pdf_obj_sort(&pdf);
|
||||
|
||||
_pdf_obj_dedup(param, &pdf);
|
||||
|
||||
int dictionary_size;
|
||||
char *dictionary;
|
||||
|
||||
|
@ -262,6 +258,10 @@ cnki_pdf(cnki_t **param)
|
|||
if ((*param)->stat > 0)
|
||||
printf("Discovered %d parent object(s)\n", parent[0]);
|
||||
|
||||
pdf_obj_sort(&pdf);
|
||||
|
||||
_pdf_obj_dedup(param, &pdf);
|
||||
|
||||
int8_t *parent_missing;
|
||||
int *kid;
|
||||
|
||||
|
@ -419,6 +419,20 @@ cnki_pdf(cnki_t **param)
|
|||
|
||||
int outline = _pdf_cnki_outline(param, &pdf);
|
||||
|
||||
snprintf(buf, 64,
|
||||
"<<\n/Type /Catalog\n/Pages %d 0 R\n",
|
||||
root);
|
||||
strcat(dictionary, buf);
|
||||
|
||||
if (outline != -1) {
|
||||
snprintf(buf, 64,
|
||||
"/Outlines %d 0 R\n/PageMode /UseOutlines\n",
|
||||
outline);
|
||||
strcat(dictionary, buf);
|
||||
}
|
||||
|
||||
strcat(dictionary, ">>");
|
||||
|
||||
if ((*param)->stat > 1)
|
||||
printf("Searching for catalog object\n");
|
||||
|
||||
|
@ -427,6 +441,14 @@ cnki_pdf(cnki_t **param)
|
|||
if (catalog != 0) {
|
||||
if ((*param)->stat > 0)
|
||||
printf("Catalog object is %d.\n", catalog);
|
||||
|
||||
if ((*param)->stat > 1)
|
||||
printf("Replacing catalog object\n");
|
||||
|
||||
pdf_obj_replace(&pdf, catalog, NULL, dictionary, NULL, 0);
|
||||
|
||||
if ((*param)->stat > 0)
|
||||
printf("Replaced catalog object\n");
|
||||
} else {
|
||||
if ((*param)->stat > 0)
|
||||
printf("Catalog object is missing\n");
|
||||
|
@ -434,20 +456,6 @@ cnki_pdf(cnki_t **param)
|
|||
if ((*param)->stat > 1)
|
||||
printf("Generating catalog object\n");
|
||||
|
||||
snprintf(buf, 64,
|
||||
"<<\n/Type /Catalog\n/Pages %d 0 R\n",
|
||||
root);
|
||||
strcat(dictionary, buf);
|
||||
|
||||
if (outline != -1) {
|
||||
snprintf(buf, 64,
|
||||
"/Outlines %d 0 R\n/PageMode /UseOutlines\n",
|
||||
outline);
|
||||
strcat(dictionary, buf);
|
||||
}
|
||||
|
||||
strcat(dictionary, ">>");
|
||||
|
||||
pdf_obj_append(&pdf, 0, NULL, dictionary, NULL, 0);
|
||||
|
||||
if ((*param)->stat > 0)
|
||||
|
|
Loading…
Reference in a new issue