Flex端使用alivepdf直接导出PDF文件:测试中文有乱码
import org.alivepdf.colors.RGBColor;
import org.alivepdf.data.Grid;
import org.alivepdf.data.GridColumn;
import org.alivepdf.display.Display;
import org.alivepdf.drawing.Joint;
import org.alivepdf.fonts.FontFamily;
import org.alivepdf.fonts.Style;
import org.alivepdf.layout.Align;
import org.alivepdf.layout.Orientation;
import org.alivepdf.layout.Size;
import org.alivepdf.layout.Unit;
import org.alivepdf.pages.Page;
import org.alivepdf.pdf.PDF;
import org.alivepdf.saving.Download;
import org.alivepdf.saving.Method;
protected var claimPDF:PDF;
protected function exportPdf():void
{
claimPDF = new PDF(Orientation.LANDSCAPE, Unit.MM, Size.A4);//创建PDF实例
claimPDF.setDisplayMode (Display.FULL_WIDTH);//设置整个页面
claimPDF.setTitle("这是一个标题");
claimPDF.addPage();//添加一页(默认第一页)
//添加图片流
claimPDF.textStyle(new RGBColor(0x0),1);
// claimPDF.setFont(FontFamily.ARIAL , 13);//设置字体样式、大小
var idCol:GridColumn=new GridColumn("碳排放","percent",20,Align.CENTER,Align.CENTER);
var nameCol:GridColumn=new GridColumn("NAME","name",50,Align.CENTER,Align.CENTER);
var ageCol:GridColumn=new GridColumn("AGE","data",40,Align.CENTER,Align.CENTER);
var columns:Array=new Array(idCol,nameCol,ageCol);
var grid:Grid = new Grid(treeSource.children.toArray(), 300, 300,
new RGBColor (0xCCCCCC), new RGBColor (0xCCCCCC),
false, new RGBColor ( 0x0 ),1, Joint.MITER);
grid.columns=columns;
claimPDF.addGrid(grid,10,160);
claimPDF.save(Method.REMOTE,"PDFServlet",Download.ATTACHMENT,"aaa.pdf");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
int i = 0;
int k = 0;
int maxLength = request.getContentLength();// 获取请求的内容
byte[] bytes = new byte[maxLength];// 转换byte数组
String method = request.getParameter("method");
String name = request.getParameter("name");// 请求的文件名,aaa.pdf
ServletInputStream si = request.getInputStream();
while (true) {// 循环读取文件流
k = si.read(bytes, i, maxLength);
i += k;
if (k <= 0)
break;
}
if (bytes != null) {
ServletOutputStream stream = response.getOutputStream();// 实例化
response.setContentType("application/pdf");// 内容类型
response.setCharacterEncoding("UTF-8");// 编码方式
response.setContentLength(bytes.length);// 设置内容长度
response.setHeader("Content-Disposition", method + ";filename="
+ name);
stream.write(bytes);// 写入
stream.flush();
stream.close();// 关闭流
} else {
response.setContentType("text");
response.getWriter().write("bytes is null");
}
}