在服务器上保存PDF时的Flex问题

时间:2009-07-08 10:51:45

标签: php flex pdf adobe pdf-generation

我是一个灵活的新蜜蜂。 我想要做的是生成并保存布局设计,除了在服务器上以pdf格式画布。目前我能够在浏览器中显示pdf(参见下面的函数:)但无法将文件保存在服务器上。

  private function continueToPdf():void{
            myPDF = new PDF(  Orientation.LANDSCAPE, Unit.MM, Size.A4 );
            myPDF.setDisplayMode ( Display.FULL_WIDTH ); 
            myPDF.addPage();
            myPDF.addImage(layout_cnv);
            myPDF.save( Method.REMOTE, "http://flexindia.org/designtool/upload/create.php",Download.INLINE ,"drawing.pdf" );
     }

其中layout_cnv是一个canvas.Also我正在使用AlivePDF.swc lbrary。 服务器上的php文件是create.php

                   <?php
                 $method = $_GET['method'];
                 $name = $_GET['name'];

                 if ( isset ( $GLOBALS["HTTP_RAW_POST_DATA"] )) {

// get bytearray
$pdf = $GLOBALS["HTTP_RAW_POST_DATA"];

// add headers for download dialog-box
header('Content-Type: application/pdf');
header('Content-Length: '.strlen($pdf));
header('Content-disposition:'.$method.'; filename="'.$name.'"');
echo $pdf;

     }  else echo 'An error occured.';

           ?>

请有人帮助我。

2 个答案:

答案 0 :(得分:1)

我不熟悉AlivePDF库,但是WebORB PDF生成器非常适合这项任务(我与Midnight Coders或WebORB无关,只是提出建议。)

http://www.themidnightcoders.com/products/pdf-generator/overview.html

答案 1 :(得分:0)

最后几天后,我发现了解决上述问题的方法。 这里用于在服务器本地保存文件我只需要在以下函数中进行一些更改:

      private function continueToPdf():void{
                    myPDF = new PDF(  Orientation.LANDSCAPE, Unit.MM, Size.A4 );
                    myPDF.setDisplayMode ( Display.FULL_WIDTH ); 
                    myPDF.addPage();
                    myPDF.addImage(layout_cnv);
                    myPDF.save( Method.REMOTE, "create.php",Download.INLINE ,"drawing.pdf" );
                 }

其中create.php是服务器脚本,定义如下:

     <?php

      $fp = fopen( 'upload/drawing.pdf', 'wb' );
       fwrite( $fp, $GLOBALS['HTTP_RAW_POST_DATA' ] );
       fclose( $fp ); 
       ?>

    cheers :-) !!!