See Release Notes
Long Term Support Release
Differences Between: [Versions 310 and 401] [Versions 311 and 401] [Versions 39 and 401] [Versions 400 and 401] [Versions 401 and 402] [Versions 401 and 403]
Library code for manipulating PDFs
Copyright: | 2012 Davo Smith |
License: | http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later |
File Size: | 904 lines (34 kb) |
Included or required: | 0 times |
Referenced: | 0 times |
Includes or requires: | 0 files |
pdf:: (27 methods):
get_export_font_name()
combine_pdfs()
current_page()
page_count()
load_pdf()
set_pdf()
copy_page()
create_page_from_source()
copy_remaining_pages()
append_comments()
add_comment_marker()
add_comment()
add_annotation()
save_pdf()
set_image_folder()
get_images()
get_image()
precheck_generate_image()
get_command_for_image()
get_pdftoppm_command_for_image()
get_gs_command_for_image()
ensure_pdf_compatible()
ensure_pdf_file_compatible()
get_error_image()
test_gs_path()
send_test_image()
add_image_page()
get_export_font_name() X-Ref |
Get the name of the font to use in generated PDF files. If $CFG->pdfexportfont is set - use it, otherwise use "freesans" as this open licensed font has wide support for different language charsets. return: string |
combine_pdfs($pdflist, $outfilename) X-Ref |
Combine the given PDF files into a single PDF. Optionally add a coversheet and coversheet fields. param: string[] $pdflist the filenames of the files to combine param: string $outfilename the filename to write to return: int the number of pages in the combined PDF |
current_page() X-Ref |
The number of the current page in the PDF being processed return: int |
page_count() X-Ref |
The total number of pages in the PDF being processed return: int |
load_pdf($filename) X-Ref |
Load the specified PDF and set the initial output configuration Used when processing comments and outputting a new PDF param: string $filename the path to the PDF to load return: int the number of pages in the PDF |
set_pdf($filename, $pagecount = 0) X-Ref |
Sets the name of the PDF to process, but only loads the file if the pagecount is zero (in order to count the number of pages) Used when generating page images (but not a new PDF) param: string $filename the path to the PDF to process param: int $pagecount optional the number of pages in the PDF, if known return: int the number of pages in the PDF |
copy_page() X-Ref |
Copy the next page from the source file and set it as the current page return: bool true if successful |
create_page_from_source($pageno) X-Ref |
Create a page from a source PDF. param: int $pageno |
copy_remaining_pages() X-Ref |
Copy all the remaining pages in the file |
append_comments($allcomments) X-Ref |
Append all comments to the end of the document. param: array $allcomments All comments, indexed by page number (starting at 0). return: array|bool An array of links to comments, or false. |
add_comment_marker($pageno, $index, $x, $y, $link, $colour = 'yellow') X-Ref |
Add a comment marker to the specified page. param: int $pageno The page number to add markers to (starting at 0). param: int $index The comment index. param: int $x The x-coordinate of the marker (in pixels). param: int $y The y-coordinate of the marker (in pixels). param: int $link The link identifier pointing to the full comment text. param: string $colour The fill colour of the marker (red, yellow, green, blue, white, clear). return: bool Success status. |
add_comment($text, $x, $y, $width, $colour = 'yellow') X-Ref |
Add a comment to the current page param: string $text the text of the comment param: int $x the x-coordinate of the comment (in pixels) param: int $y the y-coordinate of the comment (in pixels) param: int $width the width of the comment (in pixels) param: string $colour optional the background colour of the comment (red, yellow, green, blue, white, clear) return: bool true if successful (always) |
add_annotation($sx, $sy, $ex, $ey, $colour, $type, $path, $imagefolder) X-Ref |
Add an annotation to the current page param: int $sx starting x-coordinate (in pixels) param: int $sy starting y-coordinate (in pixels) param: int $ex ending x-coordinate (in pixels) param: int $ey ending y-coordinate (in pixels) param: string $colour optional the colour of the annotation (red, yellow, green, blue, white, black) param: string $type optional the type of annotation (line, oval, rectangle, highlight, pen, stamp) param: int[]|string $path optional for 'pen' annotations this is an array of x and y coordinates for param: string $imagefolder - Folder containing stamp images. return: bool true if successful (always) |
save_pdf($filename) X-Ref |
Save the completed PDF to the given file param: string $filename the filename for the PDF (including the full path) |
set_image_folder($folder) X-Ref |
Set the path to the folder in which to generate page image files param: string $folder |
get_images() X-Ref |
Generate images from the PDF return: array Array of filename of the generated images |
get_image($pageno) X-Ref |
Generate an image of the specified page in the PDF param: int $pageno the page to generate the image of return: string the filename of the generated image |
precheck_generate_image() X-Ref |
Make sure the file name and image folder are ready before generate image. return: bool |
get_command_for_image(int $pageno, string $imagefile) X-Ref |
Gets the command to use to extract as image the given $pageno page number from a PDF document into the $imagefile file. param: int $pageno Page number to extract from document. -1 means for all pages. param: string $imagefile Target filename for the PNG image as absolute path. return: string The command to use to extract a page as PNG image. |
get_pdftoppm_command_for_image(int $pageno, string $imagefile) X-Ref |
Gets the pdftoppm command to use to extract as image the given $pageno page number from a PDF document into the $imagefile file. param: int $pageno Page number to extract from document. -1 means for all pages. param: string $imagefile Target filename for the PNG image as absolute path. return: string The pdftoppm command to use to extract a page as PNG image. |
get_gs_command_for_image(int $pageno, string $imagefile) X-Ref |
Gets the ghostscript (gs) command to use to extract as image the given $pageno page number from a PDF document into the $imagefile file. param: int $pageno Page number to extract from document. -1 means for all pages. param: string $imagefile Target filename for the PNG image as absolute path. return: string The ghostscript (gs) command to use to extract a page as PNG image. |
ensure_pdf_compatible(\stored_file $file) X-Ref |
Check to see if PDF is version 1.4 (or below); if not: use ghostscript to convert it param: stored_file $file return: string path to copy or converted pdf (false == fail) |
ensure_pdf_file_compatible($tempsrc) X-Ref |
Flatten and convert file using ghostscript then load pdf. param: string $tempsrc The path to the file on disk. return: string path to copy or converted pdf (false == fail) |
get_error_image($errorimagefolder, $pageno) X-Ref |
Generate an localised error image for the given pagenumber. param: string $errorimagefolder path of the folder where error image needs to be created. param: int $pageno page number for which error image needs to be created. return: string File name |
test_gs_path($generateimage = true) X-Ref |
Test that the configured path to ghostscript is correct and working. param: bool $generateimage - If true - a test image will be generated to verify the install. return: \stdClass |
send_test_image() X-Ref |
If the test image has been generated correctly - send it direct to the browser. |
add_image_page($imagestoredfile) X-Ref |
This function add an image file to PDF page. param: \stored_file $imagestoredfile Image file to be added |