Previous | Next | (P-PDF) Acrobat 6.0
Topic: Saving files with PDFlib-PDI corrupting Digital Signature Fields
Conf: (P-PDF) Acrobat 6.0, Msg: 114124
From: Ruskicowboy
Date: 6/25/2004 06:53 AM
I am using PDFlib-PDI to import a PDF and add digital signature fields. I then take the buffer and write it to a file. The file loads fine in Acrobat, but when I try to add a digital signature, it gives me this error message:
Creation of the signature could not be completed. Unexpected internal program error.
I've also noticed that the file I import is 37k but the file I save is 287k. Does anyone have any ideas why this is occuring? The code looks like this:
---------------------------------------
$p = PDF_new();
/* open new PDF file; insert a file name to create the PDF on disk */
if (PDF_begin_document($p, "", "") == 0) {
die("Error: " . PDF_get_errmsg($p));
}
/* Set the search path for fonts and PDF files */
PDF_set_parameter($p, "SearchPath", $searchpath);
/* This line is required to avoid problems on Japanese systems */
PDF_set_parameter($p, "hypertextencoding", "winansi");
PDF_set_info($p, "Creator", "Agenda_Request_form.php");
PDF_set_info($p, "Author", "Justin Davis");
PDF_set_info($p, "Title", "PDFlib block processing sample (PHP)");
$blockcontainer = PDF_open_pdi($p, $infile, "", 0);
if ($blockcontainer == 0){
die ("Error: " . PDF_get_errmsg($p));
}
$page = PDF_open_pdi_page($p, $blockcontainer, 1, "");
if ($page == 0){
die ("Error: " . PDF_get_errmsg($p));
}
PDF_begin_page_ext($p, 20, 20, ""); /* dummy page size */
/* This will adjust the page size to the block container's size. */
PDF_fit_pdi_page($p, $page, 0, 0, "adjustpage");
$font = PDF_load_font($p, "Arial", "winansi", "embedding true autocidfont false subsetting false");
$optlist = sprintf("font %d ", $font);
PDF_create_field($p, 148,590,321,608,"Signature1","signature",$optlist);
PDF_create_field($p, 148,567,321,584,"Signature2","signature",$optlist);
PDF_create_field($p, 148,544,321,562,"Signature3","signature",$optlist);
PDF_end_page_ext($p, "");
PDF_close_pdi_page($p, $page);
PDF_end_document($p, "");
PDF_close_pdi($p, $blockcontainer);
$buf = PDF_get_buffer($p);
$len = strlen($buf);
$file = fopen("Agenda_Request_form_1.pdf",'w');
fwrite ($file, $buf, $len);
fclose ($file);
PDF_delete($p);
------------------------------------------