ONO::Lib::PDF::ToolBox

Functions

canvas();

Decode the canvas data.

ONO::Lib::PDF::ToolBox->canvas( $canvas, $x1, $y1, $x2, $y2 );

canvas_auto();

Automatic canvas size / paper format detection, will return 0 in Europe/UK (A4), or 1 elsewhere (Letter/US).

ONO::Lib::PDF::ToolBox->canvas_auto( $lang, $country );

canvas_init();

Encode the canvas (0 = format (a4/us/...), 1 = top_x, 2 = top_y, 3 = bottom_x, 4 = bottom_y)

ONO::Lib::PDF::ToolBox->canvas_init( );
returns: "$dims[1]:$dims[2]:$dims[3]:$dims[4]:$dims[5]:"

canvas_init_max();

Encode the canvas

-L landscape

ONO::Lib::PDF::ToolBox->canvas_init_max( $format, $switches );

canvas_split();

Split the canvas string, return data as array.

ONO::Lib::PDF::ToolBox->canvas_split( );
returns: split(/:/,$_[1])

canvas_test();

Canvas test print, this will only work on a Devstation.

ONO::Lib::PDF::ToolBox->canvas_test( );

compress();

PDF file compression, using Ghostscript. This may reduce the size of files generated by ONO by a factor of up to 10.

-a always execute, even if sysload higher than 33%
-A always execute, even if sysload higher than 66%
-d delete source after successful compression
-E do not check if source exists, this may be required in faster generation situations
-o allow overwriting source if target = source
-O allow overwrite if target exists
-p quality = printer (default)
-s quality = screen (lower quality, higher compression)

ONO::Lib::PDF::ToolBox->compress( $source, $target, $switches );

design_coords();

PDF page design coordinates.

ONO::Lib::PDF::ToolBox->design_coords( );
returns: ($top1,$top2,$top3,$width)

design_print();

PDF page design, will add graphics to the top and the bottom of a page.

ONO::Lib::PDF::ToolBox->design_print( $community, $design, $format );

detect_gs();

External library detection, returns path to binary.

ONO::Lib::PDF::ToolBox->detect_gs( );
returns: $gs

detect_pdftk();

External library detection, returns path to binary.

ONO::Lib::PDF::ToolBox->detect_pdftk( );
returns: $pdftk

detect_wkhtmltopdf();

External library detection, returns path to binary.

ONO::Lib::PDF::ToolBox->detect_wkhtmltopdf( );
returns: $wkhtmltopdf

detect_xvfb_run();

External library detection, returns path to binary.

ONO::Lib::PDF::ToolBox->detect_xvfb_run( );
returns: $xvfb_run

format();

Paper format selection (US/A4, and maybe others).

-Q offer q200 format selection

ONO::Lib::PDF::ToolBox->format( $ID, $BLK_ref, $vars_ref, $button_switches, $switches );

html_to_pdf();

Convert HTML to PDF, works with both input data and external files.

NOTE THAT THIS REQUIRES WKHTMLTOPDF (WEBKIT-HTML-TO-PDF) TO BE INSTALLED!

format should support A4, A3, Letter and Legal, and maybe even more, or "W:H" in mm

margin can be a number (will be interpreted in 'mm', or in 'T:R:B:L' format

HTML to JPG -> see ONO_Lib_Image_Magick_convert

ONO::Lib::PDF::ToolBox->html_to_pdf( $source, $target, $allow_overwrite, $format, $margin, $style, $PRE, $POST );
returns: $REPORT

icon();

PDF file type icon, will kick off thumbnail generation if thumb doesn't exist.

ONO::Lib::PDF::ToolBox->icon( );
returns: "$_[2]$ICON"

merge_pages();

Merge PDF documents (list must be provided).

ONO::Lib::PDF::ToolBox->merge_pages( $files_ref, $target );
returns: $REPORT

mm2pdf();

Convert mm to PDF size.      1. transform millimeters to PDF units      2. recalc values so that we'll start top left

ONO::Lib::PDF::ToolBox->mm2pdf( $canvas, $x, $y );
returns: ($x*$ratio,$size[1]-($y*$ratio))

mm_pdf_ratio();

Returns default papersize data.

ONO::Lib::PDF::ToolBox->mm_pdf_ratio( );
returns: 2.8334

multi_page_logic_one();

The multi_page_logic code allows to generate multi-page PDF files with floating text, based on the ONO_Lib_PDF:Draw->text code and its options.

The code has been split in two, in otder to allow creating custom page designs.

Note that this is FLAWED, as it relies on text flags that do NOT allow to have paragraphs bigger than 1 page.

Also see multi_page_logic_two().

ONO::Lib::PDF::ToolBox->multi_page_logic_one( $canvas, $line, $pdf_x, $pdf_y, $font_size, $line_report, $line_height, $line_font_offset, $para_offset );
returns: ($pdf_y,$line_report,$lines_limit,"$DEBUG<br>")

multi_page_logic_two();

The multi_page_logic code, part II. Also see multi_page_logic_one().

ONO::Lib::PDF::ToolBox->multi_page_logic_two( $canvas, $line, $pdf_x, $pdf_y, $font_size, $line_report, $line_height, $line_font_offset, $para_offset );
returns: ($pdf_y,$line_report,"$DEBUG<br>")

multi_page_logic_zero();

The multi_page_logic code, part ZERO. Also see multi_page_logic_one().

ONO::Lib::PDF::ToolBox->multi_page_logic_zero( $canvas, $line_height, $pdf_y );
returns: ($max_y,$lines_limit)

overlay_pages();

Overlay pages, which will actually put the content of one page over the other page's content. NOTE THAT THIS REQUIRES PDFTK (PDF-TOOLKIT) TO BE INSTALLED!

ONO::Lib::PDF::ToolBox->overlay_pages( $source1, $source2, $target, $allow_overwrite );
returns: $REPORT

pages();

Count the number of pages in a PDF document, default = 1, even if the document doesn't exist.

ONO::Lib::PDF::ToolBox->pages( );
returns: $pages

papersize();

Get default papersize.

ONO::Lib::PDF::ToolBox->papersize( );
returns: @size

papersize_a4();

Returns default papersize data.

ONO::Lib::PDF::ToolBox->papersize_a4( );
returns: (595,842)

papersize_get();

Get the size of an existing PDF document.

ONO::Lib::PDF::ToolBox->papersize_get( $file );
returns: @dims

papersize_get_mm();

Get default papersize in mm format.

ONO::Lib::PDF::ToolBox->papersize_get_mm( $file );
returns: @mm

papersize_mm();

Get default papersize in mm format.

-D use default values instead of calculating (-R not supported)
-L landscape
-R round up/down to mm

ONO::Lib::PDF::ToolBox->papersize_mm( );

papersize_mm_a4();

Returns default papersize data in mm.

ONO::Lib::PDF::ToolBox->papersize_mm_a4( );
returns: (210,297)

papersize_mm_q170();

Returns default papersize data in mm.

ONO::Lib::PDF::ToolBox->papersize_mm_q170( );
returns: (170,170)

papersize_mm_q170_190();

Returns default papersize data in mm.

ONO::Lib::PDF::ToolBox->papersize_mm_q170_190( );
returns: (170,190)

papersize_mm_q170_48();

Returns default papersize data in mm.

ONO::Lib::PDF::ToolBox->papersize_mm_q170_48( );
returns: (170,48)

papersize_mm_q200();

Returns default papersize data in mm.

ONO::Lib::PDF::ToolBox->papersize_mm_q200( );
returns: (200,200)

papersize_mm_us();

Returns default papersize data in mm.

ONO::Lib::PDF::ToolBox->papersize_mm_us( );
returns: (215.9,279.4)

papersize_q170();

Returns default papersize data.

ONO::Lib::PDF::ToolBox->papersize_q170( );
returns: (482,482)

papersize_q170_190();

Returns default papersize data.

ONO::Lib::PDF::ToolBox->papersize_q170_190( );
returns: (482,539)

papersize_q170_48();

Returns default papersize data.

ONO::Lib::PDF::ToolBox->papersize_q170_48( );
returns: (482,135)

papersize_q200();

Returns default papersize data.

ONO::Lib::PDF::ToolBox->papersize_q200( );
returns: (567,567)

papersize_us();

Returns default papersize data.

ONO::Lib::PDF::ToolBox->papersize_us( );
returns: (612,792)

pdf2mm();

Convert PDF size to mm.      1. transform PDF units to millimeters      2. recalc values so that we'll start top left

ONO::Lib::PDF::ToolBox->pdf2mm( $canvas, $x, $y );

print_please_wait();

PDF please wait message.

ONO::Lib::PDF::ToolBox->print_please_wait( );
returns: qq~<div class="p20 center"> <h3 class="m0"><span class="bold green">$txt[0],</span></h3> <h3 class="m0"><span class="bold lightgreen">$txt[1] $DOTS</span></h3> <div class="inline auto"> <div class="p20 rel"> <img class="block256" src="$BASE/ono/osr/images/icons/crystal/256x256/devices/printer1.png" alt="printing"> <div class="abs trans50" style="top:30px;left:90px;width:120px;height:70px;overflow:hidden">$RAND[0]</div> <div class="abs trans50" style="top:200px;left:80px;width:140px;height:40px;overflow:hidden">$RAND[1]</div> </div> </div> </div> ~

rgb_to_cmyk();

PDF RGB to CMYK conversion, using Ghostscript.

ONO::Lib::PDF::ToolBox->rgb_to_cmyk( $source, $target, $switches );

stickers_grid();

Stickers: grid.

ONO::Lib::PDF::ToolBox->stickers_grid( $canvas, $pwidth, $pheight, $width, $height, $vars_ref );

stickers_logic();

Stickers: logic.

ONO::Lib::PDF::ToolBox->stickers_logic( $format, $vars_ref );
returns: ($total,$width,$height)

stickers_logic_complete();

Stickers: logic, complete.

ONO::Lib::PDF::ToolBox->stickers_logic_complete( $format, $vars_ref );
returns: ($canvas,$pwidth,$pheight,$total,$width,$height)

stickers_position();

Stickers: position.

ONO::Lib::PDF::ToolBox->stickers_position( $pdf_x, $pdf_y, $pwidth, $pheight, $width, $height, $vars_ref );
returns: ($pdf_x,$pdf_y)

stickers_sel();

Stickers: select.

-A alt button is selected
-J alt button kicks off javascript (_enable), default buttons kick off anti-javascript (_disable)
-L margin left 10
-s selector javascript

ONO::Lib::PDF::ToolBox->stickers_sel( $sel, $BLK_ref, $switches, $ALT );

stickers_setup();

Stickers: setup.

-h hide by default

ONO::Lib::PDF::ToolBox->stickers_setup( $lang, $BLK_ref, $vars_ref, $switches );

Sub-Modules

none

Dependencies

Optional CPAN Modules

The following modules may be optional, but they are probably required for all features to work properly.

PDF::API2