[Helma-user] Render PDF
Stefan Rinner
rist at mac.com
Tue Jul 24 09:12:59 CEST 2007
On Jul 24, 2007, at 8:57 AM, Julian Tree wrote:
> Has anyone done in Helma?
yes
> Is there a prepackaged javascript lib for this?
none that I know of
> or should I create one using something like iText?
> http://itextdocs.lowagie.com/tutorial/
>
> Any recommendation welcome. I am looking to create some read only
> documents with barcodes (png images).
here's an excerpt from some code I use for creating bills - it loads
a pdf with our letterhead, imports one of our CI fonts and places
some text:
var iText = Packages.com.lowagie.text;
var letterHeadReader = iText.pdf.PdfReader( getResourcesFolderPath()
+ "bill/letterhead.pdf" );
var mm2pt = function( mm ){ return ( 72 / 25.4 ) * mm; };
var pdfDoc = new iText.Document( iText.PageSize.A4, mm2pt( 26 ),
mm2pt( 26 ), mm2pt( 120 ), mm2pt( 30 ) );
var byteOutputStream = new Packages.java.io.ByteArrayOutputStream();
var pdfWriter = iText.pdf.PdfWriter.getInstance( pdfDoc,
byteOutputStream );
pdfDoc.open();
var letterHeadPage = pdfWriter.getImportedPage( letterHeadReader, 1 );
var pdfWriteContentBytes = pdfWriter.getDirectContent();
pdfWriteContentBytes.addTemplate( letterHeadPage, 0, 0 );
var page = pdfDoc.getPageSize();
var bembo11 = new iText.Font( iText.pdf.BaseFont.createFont
( getResourcesFolderPath() + "bill/fonts/BemboStd.ttf",
iText.pdf.BaseFont.IDENTITY_H, iText.pdf.BaseFont.EMBEDDED ), 11 );
var addressString = "some string";
var addressColumn = new iText.pdf.ColumnText( pdfWriteContentBytes );
addressColumn.setSimpleColumn( mm2pt( 26 ), page.height() - mm2pt
( 57 ), page.width() - mm2pt( 25 ), page.height() - mm2pt( 100 ), 15,
iText.Element.ALIGN_LEFT );
addressColumn.addText( new iText.Phrase( 15, addressString,
bembo11 ) );
addressColumn.go();
pdfDoc.close();
res.contentType = "application/pdf";
res.writeBinary( byteOutputStream.toByteArray() );
stefan
More information about the Helma-user
mailing list