summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/pdfclean.c37
-rw-r--r--test/pdfdebug.c61
-rw-r--r--test/pdfmerge.c44
-rw-r--r--test/pdfrip.c39
4 files changed, 69 insertions, 112 deletions
diff --git a/test/pdfclean.c b/test/pdfclean.c
index 58e8b828..7dd15427 100644
--- a/test/pdfclean.c
+++ b/test/pdfclean.c
@@ -24,11 +24,11 @@ void preloadobjstms(pdf_xref *xref)
fz_obj *obj;
int i;
- for (i = 0; i < xref->size; i++)
+ for (i = 0; i < xref->len; i++)
{
if (xref->table[i].type == 'o')
{
- error = pdf_loadobject0(&obj, xref, i, 0, nil);
+ error = pdf_loadobject(&obj, xref, i, 0);
if (error) fz_abort(error);
fz_dropobj(obj);
}
@@ -39,23 +39,22 @@ void expandstreams(pdf_xref *xref)
{
fz_error *error;
fz_obj *stmobj;
- int stmofs;
fz_buffer *buf;
fz_obj *stmlen;
int i, gen;
- for (i = 0; i < xref->size; i++)
+ for (i = 0; i < xref->len; i++)
{
if (xref->table[i].type == 'n')
{
gen = xref->table[i].gen;
- error = pdf_loadobject0(&stmobj, xref, i, gen, &stmofs);
- if (error) fz_abort(error);
-
- if (stmofs != -1)
+ if (pdf_isstream(xref, i, gen))
{
- error = pdf_readstream0(&buf, xref, stmobj, i, gen, stmofs);
+ error = pdf_loadobject(&stmobj, xref, i, gen);
+ if (error) fz_abort(error);
+
+ error = pdf_loadstream(&buf, xref, i, gen);
if (error) fz_abort(error);
fz_dictdels(stmobj, "Filter");
@@ -67,10 +66,10 @@ void expandstreams(pdf_xref *xref)
if (error) fz_abort(error);
fz_dropobj(stmlen);
- error = pdf_saveobject(xref, i, gen, stmobj);
- if (error) fz_abort(error);
- error = pdf_savestream(xref, i, gen, buf);
- if (error) fz_abort(error);
+ pdf_updateobject(xref, i, gen, stmobj);
+ pdf_updatestream(xref, i, gen, buf);
+
+ fz_dropobj(stmobj);
}
}
}
@@ -119,18 +118,14 @@ int main(int argc, char **argv)
infile = argv[optind++];
outfile = argv[optind++];
- error = pdf_newxref(&xref);
- if (error)
- fz_abort(error);
-
if (dorepair)
- error = pdf_repairxref(xref, infile);
+ error = pdf_repairpdf(&xref, infile);
else
- error = pdf_openxref(xref, infile);
+ error = pdf_openpdf(&xref, infile);
if (error)
fz_abort(error);
- error = pdf_decryptxref(xref);
+ error = pdf_decryptpdf(xref);
if (error)
fz_abort(error);
@@ -167,7 +162,7 @@ int main(int argc, char **argv)
if (error)
fz_abort(error);
- pdf_closexref(xref);
+ pdf_closepdf(xref);
return 0;
}
diff --git a/test/pdfdebug.c b/test/pdfdebug.c
index 7536e7e0..eefa0a74 100644
--- a/test/pdfdebug.c
+++ b/test/pdfdebug.c
@@ -41,86 +41,73 @@ void printsafe(unsigned char *buf, int n)
}
}
-void decodestream(pdf_xref *xref, fz_obj *stream, int oid, int gid, int ofs)
+void decodestream(pdf_xref *xref, int oid, int gid)
{
fz_error *error;
unsigned char buf[512];
safecol = 0;
- error = pdf_openstream0(xref, stream, oid, gid, ofs);
+ error = pdf_openstream(xref, oid, gid);
if (error) fz_abort(error);
while (1)
{
- int n = fz_read(xref->file, buf, sizeof buf);
+ int n = fz_read(xref->stream, buf, sizeof buf);
if (n == 0)
break;
if (n < 0)
- fz_abort(fz_ferror(xref->file));
+ fz_abort(fz_ferror(xref->stream));
printsafe(buf, n);
}
pdf_closestream(xref);
}
-void copystream(pdf_xref *xref, fz_obj *stream, int ofs)
+void copystream(pdf_xref *xref, int oid, int gid)
{
fz_error *error;
unsigned char buf[512];
- fz_filter *filter;
- fz_obj *obj;
- int len;
safecol = 0;
- obj = fz_dictgets(stream, "Length");
- error = pdf_resolve(&obj, xref);
- if (error) fz_abort(error);
- len = fz_toint(obj);
- fz_dropobj(obj);
-
- error = fz_newnullfilter(&filter, len);
- if (error) fz_abort(error);
-
- fz_seek(xref->file, ofs, 0);
-
- error = fz_pushfilter(xref->file, filter);
+ error = pdf_openrawstream(xref, oid, gid);
if (error) fz_abort(error);
while (1)
{
- int n = fz_read(xref->file, buf, sizeof buf);
+ int n = fz_read(xref->stream, buf, sizeof buf);
if (n == 0)
break;
if (n < 0)
- fz_abort(fz_ferror(xref->file));
+ fz_abort(fz_ferror(xref->stream));
printsafe(buf, n);
}
- fz_popfilter(xref->file);
+ pdf_closestream(xref);
}
void printobject(pdf_xref *xref, int oid, int gid)
{
fz_error *error;
- int stmofs;
fz_obj *obj;
- error = pdf_loadobject0(&obj, xref, oid, gid, &stmofs);
+ error = pdf_loadobject(&obj, xref, oid, gid);
if (error) fz_abort(error);
printf("%d %d obj\n", oid, gid);
fz_debugobj(obj);
printf("\n");
- if (stmofs != -1) {
+
+ if (xref->table[oid].stmofs) {
printf("stream\n");
if (dodecode)
- decodestream(xref, obj, oid, gid, stmofs);
+ decodestream(xref, oid, gid);
else
- copystream(xref, obj, stmofs);
+ copystream(xref, oid, gid);
printf("endstream\n");
}
+
printf("endobj\n");
fz_dropobj(obj);
@@ -159,18 +146,14 @@ int main(int argc, char **argv)
filename = argv[optind++];
- error = pdf_newxref(&xref);
- if (error)
- fz_abort(error);
-
if (dorepair)
- error = pdf_repairxref(xref, filename);
+ error = pdf_repairpdf(&xref, filename);
else
- error = pdf_openxref(xref, filename);
+ error = pdf_openpdf(&xref, filename);
if (error)
fz_abort(error);
- error = pdf_decryptxref(xref);
+ error = pdf_decryptpdf(xref);
if (error)
fz_abort(error);
@@ -180,9 +163,6 @@ int main(int argc, char **argv)
if (error) fz_abort(error);
}
- if (doprintxref)
- pdf_debugxref(xref);
-
if (optind == argc)
{
printf("trailer\n");
@@ -196,7 +176,10 @@ int main(int argc, char **argv)
printf("\n");
}
- pdf_closexref(xref);
+ if (doprintxref)
+ pdf_debugpdf(xref);
+
+ pdf_closepdf(xref);
return 0;
}
diff --git a/test/pdfmerge.c b/test/pdfmerge.c
index a3041188..0ccaeaa4 100644
--- a/test/pdfmerge.c
+++ b/test/pdfmerge.c
@@ -65,11 +65,7 @@ int main(int argc, char **argv)
* Create new blank xref table
*/
- error = pdf_newxref(&dst);
- if (error)
- fz_abort(error);
-
- error = pdf_emptyxref(dst, 1.3);
+ error = pdf_newpdf(&dst);
if (error)
fz_abort(error);
@@ -83,15 +79,11 @@ int main(int argc, char **argv)
for (i = optind; i < argc; i++)
{
- error = pdf_newxref(&src);
- if (error)
- fz_abort(error);
-
- error = pdf_openxref(src, argv[i]);
+ error = pdf_openpdf(&src, argv[i]);
if (error)
fz_abort(error);
- error = pdf_decryptxref(src);
+ error = pdf_decryptpdf(src);
if (error)
fz_abort(error);
@@ -119,9 +111,9 @@ int main(int argc, char **argv)
fz_dictdels(srcpages->pobj[k], "Annots");
fz_dictdels(srcpages->pobj[k], "Tabs");
- pdf_saveobject(src,
- fz_toobjid(srcpages->pref[k]),
- fz_togenid(srcpages->pref[k]),
+ pdf_updateobject(src,
+ fz_tonum(srcpages->pref[k]),
+ fz_togen(srcpages->pref[k]),
srcpages->pobj[k]);
error = fz_arraypush(srcrefs, srcpages->pref[k]);
if (error)
@@ -141,14 +133,14 @@ int main(int argc, char **argv)
pdf_freepagetree(srcpages);
- pdf_closexref(src);
+ pdf_closepdf(src);
}
/*
* Create and relink Pages object
*/
- error = pdf_createobject(dst, &pagesoid, &pagesgid);
+ error = pdf_allocobject(dst, &pagesoid, &pagesgid);
if (error)
fz_abort(error);
@@ -159,9 +151,7 @@ int main(int argc, char **argv)
if (error)
fz_abort(error);
- error = pdf_saveobject(dst, pagesoid, pagesgid, obj);
- if (error)
- fz_abort(error);
+ pdf_updateobject(dst, pagesoid, pagesgid, obj);
fz_dropobj(obj);
@@ -171,17 +161,15 @@ int main(int argc, char **argv)
for (i = 0; i < fz_arraylen(dstrefs); i++)
{
- int oid = fz_toobjid(fz_arrayget(dstrefs, i));
- int gid = fz_togenid(fz_arrayget(dstrefs, i));
- error = pdf_loadobject0(&obj, dst, oid, gid, nil);
+ int oid = fz_tonum(fz_arrayget(dstrefs, i));
+ int gid = fz_togen(fz_arrayget(dstrefs, i));
+ error = pdf_loadobject(&obj, dst, oid, gid);
if (error)
fz_abort(error);
error = fz_dictputs(obj, "Parent", pagesref);
if (error)
fz_abort(error);
- error = pdf_saveobject(dst, oid, gid, obj);
- if (error)
- fz_abort(error);
+ pdf_updateobject(dst, oid, gid, obj);
fz_dropobj(obj);
}
@@ -191,7 +179,7 @@ int main(int argc, char **argv)
* Create Catalog and trailer
*/
- error = pdf_createobject(dst, &rootoid, &rootgid);
+ error = pdf_allocobject(dst, &rootoid, &rootgid);
if (error)
fz_abort(error);
@@ -201,9 +189,7 @@ int main(int argc, char **argv)
if (error)
fz_abort(error);
- error = pdf_saveobject(dst, rootoid, rootgid, obj);
- if (error)
- fz_abort(error);
+ pdf_updateobject(dst, rootoid, rootgid, obj);
fz_dropobj(obj);
diff --git a/test/pdfrip.c b/test/pdfrip.c
index 2bcceada..34d6a141 100644
--- a/test/pdfrip.c
+++ b/test/pdfrip.c
@@ -15,10 +15,10 @@ void runcsi(pdf_xref *xref, pdf_csi *csi, pdf_resources *rdb, fz_obj *stmref)
{
fz_error *error;
- error = pdf_openstream(xref, stmref);
+ error = pdf_openstream(xref, fz_tonum(stmref), fz_togen(stmref));
if (error) fz_abort(error);
- error = pdf_runcsi(csi, rdb, xref->file);
+ error = pdf_runcsi(csi, rdb, xref->stream);
if (error) fz_abort(error);
pdf_closestream(xref);
@@ -84,25 +84,27 @@ printf("\nfitz tree:\n");
fz_pixmap *pix;
fz_renderer *gc;
fz_matrix ctm;
+ fz_rect bbox;
#define W 612
#define H 792
-#define xW 1106
-#define xH 1548
-
fz_newrenderer(&gc);
- fz_newpixmap(&pix, 0, 0, W, H, 1, 0);
- ctm = fz_concat(fz_translate(0, -H), fz_scale(1,-1));
- memset(pix->samples, 0x00, pix->stride * pix->h * 2);
+ bbox.min.x = 0;
+ bbox.min.y = 0;
+ bbox.max.x = W;
+ bbox.max.y = H;
+
+ ctm = fz_concat(fz_translate(0, -H), fz_scale(1,-1));
printf("rendering!\n");
- fz_rendernode(gc, csi->tree->root, ctm, pix);
+ fz_rendertree(&pix, gc, csi->tree, ctm, bbox);
printf("done!\n");
+
fz_debugpixmap(pix);
+ fz_droppixmap(pix);
- fz_freepixmap(pix);
fz_freerenderer(gc);
}
@@ -118,13 +120,11 @@ int main(int argc, char **argv)
int c;
char *password = "";
- int dorepair = 0;
- while ((c = getopt(argc, argv, "rp:")) != -1)
+ while ((c = getopt(argc, argv, "p:")) != -1)
{
switch (c)
{
- case 'r': dorepair ++; break;
case 'p': password = optarg; break;
default: usage();
}
@@ -135,18 +135,11 @@ int main(int argc, char **argv)
filename = argv[optind++];
- error = pdf_newxref(&xref);
- if (error)
- fz_abort(error);
-
- if (dorepair)
- error = pdf_repairxref(xref, filename);
- else
- error = pdf_openxref(xref, filename);
+ error = pdf_openpdf(&xref, filename);
if (error)
fz_abort(error);
- error = pdf_decryptxref(xref);
+ error = pdf_decryptpdf(xref);
if (error)
fz_abort(error);
@@ -175,7 +168,7 @@ int main(int argc, char **argv)
showpage(xref, pages->pobj[page - 1]);
}
- pdf_closexref(xref);
+ pdf_closepdf(xref);
return 0;
}