Reporting in your Oracle database
PL/PDF
Upgrade Guide from v2 to v4
V4.1.0
www.plpdf.com
[email protected]
Reporting in your Oracle database
Contents
1.
Introduction .............................................................................................................3
2.
Differences ..............................................................................................................3
3.
Migration steps.......................................................................................................4
4.
PL/SQL code details ..............................................................................................4
www.plpdf.com
[email protected]
Reporting in your Oracle database
1. Introduction
PL/PDF is a PL/SQL package collection that can be used to create PDF files. This guide
will help you migrate your PL/PDF Generator v2 to PL/PDF v4. PL/PDF v4 is our brand new
development, our team rewrote all PL/SQL codes for extended performance and
productivity. Main benefits and features of PL/PDF v4 are:
High performance - the PDF generation speed has increased to 10x since v2
DOCX template - The MS Word based layout designer increases productivity
New rich text formatting You can use MS Word like texts in PDF the creation
TrueType font The new font subset makes smaller PDF files
New Barcodes - QRCode, DataMatrix and AztecCode are new 2D barcodes in
PL/PDF v4
New Chart engine - MS Word like chart creation
New Cell and Row printing with rich text formatting
Header and Footer processing for better performance
2. Differences
We tried to preserve compatibility with our v2 product but we had to make some
modifications. Heres the full list of changes:
plpdf.row_print* procedures got removed, use plpdf_row_print package
plpdf.setRtoL got removed and plpdf_rtol is not supported anymore
plpdf_toc: moved TOC related procedures to the plpdf_toc package
plpdf.getPageNoAlter: new function
plpdf_acroform: moved the Acroform related procedures to plpdf_acroform
package
CurrentPageNumber was renamed to getCurrPageNum
plpdf_pattern: moved PATTERN related procedures to plpdf_pattern package
CertKeyCheck renamed to checkCertKey
plpdf.GetPrintFontKey new function
plpdf_annot: moved Annotation related procedures to the plpdf_annot
package
p_clipping number default 1: modified p_clipping boolean default to true
p_fill number default 0: modified p_fill boolean default to false
setCompress changed to setNOCompress
nopAlias: removed, use getCurrPageNum, getNumOfPages
setJS changed to addJavaScript
crInternalLinkDest new function
StartClipping: removed p_end_prev parameter
isInClipping: new function
DefaultTemplate renamed to setPageDefaultTemplate
useTemplate renamed to setPageTemplate
plpdf.linebreak and plpdf.newLine are not the same
www.plpdf.com
[email protected]
Reporting in your Oracle database
3. Migration steps
Migration from v2 to PL/PDF v4 is not only a PL/SQL package replacement, we
recommend the steps below:
1. Install PL/PDF v4 into a new separated user
2. Copy PL/PDF tables from v2 to v4. You can move the full v2 tables to v4 because
v4 tables are compatible with v2 ones. You can use the standard Oracle
export/import or any other third party tool.
3. Update v4 sequences: update start value of the PLPDF_TEMPLATE_S and
PLPDF_TTF_S to v2 next values, use the ALTER SEQUENCE command.
4. Copy the developed PL/PDF related PL/SQL codes and other objects to v4.
5. Change the required codes (see the differences in the previous section)
6. Test reports and PDF outputs
7. Switch reporting access from v2 to v4
4. PL/SQL code details
Here are the details of the required modifications.
Old code
plpdf.row_print*
plpdf.Row_Print(
plpdf.setRtoL
plpdf_toc
plpdf.getPageNoA
lter
plpdf_rtol.
plpdf.AddTOC(
v4 conform code
plpdf_row_print.Row_Print
(
plpdf_toc.AddTOC(
plpdf.getPageNoAlter
plpdf_acroform
plpdf.AcroForm_AddTextFie
ld(
plpdf_acroform.addTextFie
ld(
CurrentPageNum
ber
plpdf.CurrentPageNumber
plpdf. getCurrPageNum
plpdf_pattern
plpdf.SetDashPattern(
CertKeyCheck
plpdf.GetPrintFont
Key
plpdf_annot
plpdf.CertKeyCheck
plpdf_pattern.SetDashPatt
ern(
plpdf.checkCertKey
--
plpdf.GetPrintFontKey
plpdf.AddTextAnnot(
plpdf.PrintCell(
p_w => 70,
p_h => 10,
p_border => '1',
p_txt => text',
p_clipping => 0
);
plpdf.PrintCell(
p_w => 70,
p_h => 10,
p_txt => 'No fill',
p_fill => 0
);
plpdf.setCompress();
plpdf.nopAlias;
plpdf_annot.AddTextAnnot(
plpdf.PrintCell(
p_w => 70,
p_h => 10,
p_border => '1',
p_txt => text',
p_clipping => false
);
plpdf.PrintCell(
p_w => 70,
p_h => 10,
p_txt => 'No fill',
p_fill => false
);
plpdf.setNOCompress();
plpdf_cell.printCell(
p_clipping
p_fill
setCompress
nopAlias
www.plpdf.com
[email protected]
Reporting in your Oracle database
plpdf.PrintCell(
p_w => 0,
p_h => 10,
p_txt =>
to_char(plpdf.Current
PageNumber) ||
'/{nb}',
p_border => '0',
p_ln => '0',
p_align => 'C'
);
setJS
crInternalLinkDest
StartClipping
plpdf.setJS(
plpdf.StartClipping(
p_x => 20,
p_y => 15,
p_w => 45,
p_h => 60,
p_end_prev => true
);
isInClipping
p_width =>
plpdf.getPageAvailableWid
th,
p_height => null,
p_text =>
to_char(plpdf.getCurrPage
Num) ||
'/'||to_char(plpdf.getNum
OfPages()),
p_ln =>
plpdf_const.beside,
p_align =>
plpdf3.c_center
);
plpdf.addJavaScript(
plpdf.crInternalLinkDest
plpdf.StartClipping(
p_x => 20,
p_y => 15,
p_w => 45,
p_h => 60
);
DefaultTemplate
plpdf.DefaultTemplate(
useTemplate
plpdf.linebreak
and plpdf.newLine
are not the same
plpdf.useTemplate(
plpdf.isInClipping
plpdf.setPageDefaultTempl
ate(
plpdf.setPageTemplate(
www.plpdf.com
[email protected]