Sunday, 15 September 2013

flash - AlivePdf how to set font? -



flash - AlivePdf how to set font? -

i'm trying create pdf in flex, using alivepdf library.

i cannot set font, because illustration on site wrong , made alter code.

on http://code.google.com/p/alivepdf/wiki/apinotes there illustration like:

pdf.setfont( fontfamily.arial , "", 32);

but in documentation setfont take ifont first parameter.

well, how can set ifont?

i utilize embeded fonts in case independent of fonts on users pc.

you need *.ttf , generated *.afm files (in network there tools it).

if need text blocks charset can useful (here illustration how utilize cyrillic)

<?xml version="1.0" encoding="utf-8"?> <s:application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="500" height="500"> <fx:script> <![cdata[ import org.alivepdf.colors.rgbcolor; import org.alivepdf.display.display; import org.alivepdf.fonts.codepage; import org.alivepdf.fonts.embeddedfont; import org.alivepdf.layout.layout; import org.alivepdf.layout.orientation; import org.alivepdf.layout.unit; import org.alivepdf.pages.page; import org.alivepdf.pdf.pdf; import org.alivepdf.saving.method; private var mypdf:pdf; [embed( source="/assets/fonts/times2.ttf", mimetype="application/octet-stream" )] public var timesregularttf:class; [embed( source="/assets/fonts/times2.afm", mimetype="application/octet-stream" )] public var timesregularafm:class; private var timesregularfont:embeddedfont = new embeddedfont(new timesregularttf() bytearray, new timesregularafm() bytearray, codepage.cp1251); [embed( source="/assets/fonts/timesbd3.ttf", mimetype="application/octet-stream" )] public var timesboldttf:class; [embed( source="/assets/fonts/timesbd3.afm", mimetype="application/octet-stream" )] public var timesboldafm:class; private var timesboldfont:embeddedfont = new embeddedfont(new timesboldttf() bytearray, new timesboldafm() bytearray, codepage.cp1251); protected function savepdf(e:mouseevent):void { var mypdf:pdf = new pdf( orientation.portrait, unit.mm); mypdf.setdisplaymode( display.full_page, layout.single_page ); var newpage:page = new page ( orientation.portrait, unit.mm); mypdf.addpage(newpage); mypdf.textstyle ( new rgbcolor ( 0xff0000 ) ); mypdf.setfont(timesregularfont, 12); mypdf.setxy(10, 20); mypdf.writetext(1, "hello world!"); mypdf.textstyle ( new rgbcolor ( 0x0000ff ) ); mypdf.setfont(timesboldfont, 20); mypdf.setxy(10, 40); mypdf.writetext(1, "hello world!"); mypdf.textstyle ( new rgbcolor ( 0x00ff00 ) ); mypdf.setfont(timesboldfont, 24); mypdf.setxy(10, 60); mypdf.writetext(1, fromutf8tosomecode("Привет, Мир!", "windows-1251")); var f:filereference = new filereference(); var b:bytearray = mypdf.save(method.local); f.save(b, "test.pdf"); } private function fromutf8tosomecode(data:string, code:string):string { var b:bytearray = new bytearray(); if (data.length > 0) b.writemultibyte(data, code); homecoming b.tostring(); } ]]> </fx:script> <s:button label="save pdf" click="savepdf(event)"/> </s:application>

flash flex actionscript alivepdf

No comments:

Post a Comment