pdf文件流生成pdf文件

protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Code.Login Starr_model = new Code.Login();
                Code.InsuranceModel.InsuranceSegment_Result result = new InsuranceModel.InsuranceSegment_Result();
                try
                {
                    //判断接口请求是否成功
                    result = Code.InsuranceDecodeJson.Starr_GetLoginDecodeJson();
                    if (result.Success == true)
                    {
                        string filepath = Server.MapPath("~") + "\\GoldenPalmInsurance\\Code\\Starr.pdf";
                        string[] RequestArr = { "http://dicc2.ins24.com/ah/pdf_printer/policies/" + policyid + "", "application/pdf" };
                        //获取PDF文件流
                        Stream str = Starr_model.Starr_PrinterPDF(RequestArr, result.UserCookie);
                        StreamReader reader = new StreamReader(str, Encoding.UTF8);
                        using (FileStream fileStream = new FileStream("" + filepath + "", FileMode.Create, FileAccess.Write))
                        {
                            byte[] data = Encoding.UTF8.GetBytes(reader.ToString());
                            while (true)
                            {
                                int size = str.Read(data, 0, data.Length);
                                if (size > 0)
                                {
                                    fileStream.Write(data, 0, size);
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
                        //这里是你文件在项目中的位置,根目录下就这么写
                        String FullFileName = filepath;
                        Response.Clear();
                        Response.ClearHeaders();
                        Response.Buffer = false;
                        Response.ContentType = "application/pdf";
                        Response.AddHeader("Content-Disposition", "attachment;filename=" + policyid + ".pdf");
                        Response.WriteFile(FullFileName);
                    }
                }
                catch (Exception ex)
                {
                    Response.Write(ex.Message);
                }
                finally
                {
                    System.Web.HttpContext.Current.Response.Flush();
                    System.Web.HttpContext.Current.Response.End();
                    Response.Close();
                }
            }
        }

请求返回的pdf文件流

 /// <summary>
        ///
        /// </summary>
        /// <param name="args"></param>
        /// <param name="UserCookie"></param>
        /// <returns></returns>
        public Stream Starr_PrinterPDF(String[] args, CookieCollection UserCookie)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(args[0]);//将host和参数直接拼接
            request.Method = "GET";
            request.ContentType = args[1];
            request.Accept = "*/*";
            request.CookieContainer = new CookieContainer();

            request.CookieContainer.Add(UserCookie);//设置req的cookie

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Console.WriteLine(((HttpWebResponse)response).StatusDescription);
            Stream dataStream = response.GetResponseStream();
            return dataStream;
        }

导出的PDF文件可以用Adrode reader和福熙阅读器查看,如果出现乱码问题,请下载最新版本的reader软件。

时间: 2024-10-05 05:01:59

pdf文件流生成pdf文件的相关文章

word和excel在网页上显示,文件流,虚拟目录,文件上传

1.如何在网页上显示word和excel a.可以使用aspose将word 和excel 转换为pdf 然后在网页上打开pdf,但是效果不是很好.比如说excel 多个工作薄不是按exce 格式显示出来,宽度大小,不好控制(?). b.可以使用aspose将文档转换为html,但是转换为html 会产生额外的XML和CSS和图片文件.在文件流中不好读取(文件在本地里面). c.可以使用其他转换,比如http://www.cutepdf.com/(?),或者用文件流读取再转换(没试过),或者是w

C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭

迄今为止,我们讨论的输入输出是以系统指定的标准设备(输入设备为键盘,输出设备为显示器)为对象的.在实际应用中,常以磁盘文件作为对象.即从磁盘文件读取数据,将数据输出到磁盘文件.磁盘是计算机的外部存储器,它能够长期保留信息,能读能写,可以刷新重写,方便携带,因而得到广泛使用. 文件(file)是程序设计中一个重要的概念.所谓“文件”,一般指存储在外部介质上数据的集合.一批数据是以文件的形式存放在外部介质(如磁盘.光盘和U盘)上的.操 作系统是以文件为单位对数据进行管理的,也就是说,如果想找存在外部

ASP.NET 实现Base64文件流下载PDF

因为业务需要调用接口获取的是 Base64文件流 需要提供给客户下载PDF文档 源码部分借鉴网上,具体地址忘记了. //Base64文件流 byte[] buffer = Convert.FromBase64String(decodedString); System.IO.Stream iStream = new System.IO.MemoryStream(buffer); try { int length; long dataToRead; string filename = sn + ".

C++文件流类与文件流对象具体介绍

文件流是以外存文件为输入输出对象的数据流.输出文件流是从内存流向外存文件的数据,输入文件流是从外存文件流向内存的数据.每一个文件流都有一个内存缓冲区与之对应. 请区分文件流与文件的概念,不用误以为文件流是由若干个文件组成的流.文件流本身不是文件,而只是以文件为输入输出对象的流.若要对磁盘文件输入输出,就必须通过文件流来实现. 在C++的I/O类库中定义了几种文件类,专门用于对磁盘文件的输入输出操作.在 图13.2(详情请查看:与C++输入输出有关的类和对象)中可以看到除了标准输入输出流类istr

eclipse上ndk环境的搭建&amp;&amp;so文件的生成&amp;&amp;jni文件的调用

JNI是java语言提供的Java和C/C++相互沟通的机制,Java可以通过JNI调用本地的C/C++代码,本地的C/C++的代码也可以调用java代码.JNI 是本地编程接口,Java和C/C++互相通过的接口.Java通过C/C++使用本地的代码的一个关键性原因在于C/C++代码的高效性. NDK是一系列工具的集合 .它提供了一些列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java应用一起打包成apk.它集成了交叉编译器,并提供了相应的mk文件隔离CPU,平台,ABI等

以文件流的方式 文件上传 下载

HTML: <div class="box-body">                                    <form id="upload_form" enctype="multipart/form-data"  action="/wjgl/fileSave" method="post">                                     

perl 脚本实现简单搜索修改文件并生成diff文件

在已有代码上修改代码一般要生成diff文件来生成patch,从而porting到相关baseline上. 修改文件较少时可以一个个来生成,但是当修改文件较多时就会很耗费工时,所以就想 写一个脚本来减少工时消耗.你只需要关注coding,而不必担心diff文件的生成. 实现的思想只要是:首先搜索以".orig"结尾的文件(这可以通过vim中设置来自动生成), 然后截断.orig来获得修改后的文件.从而生成已"*.diff"结尾的diff文件也可以成为patch. 当把

通过httpClient请求文件流(普通文件和压缩文件)示例

前言:通过浏览器请求文件流进行文件下载这里就不说了,网上有很多例子,这里主要是记录一下工作中的另一个场景,一个服务器通过HTTPClient向另一个服务请求文件流,在内存中进行业务逻辑处理,并不需要下载到本地,当然,如果你想要下载本地也是可以的,把文件流写到本地磁盘就可以了,也可以写到文件系统中.废话不多说. 一,服务器传输的是普通的文件流,没有经过压缩 服务器: @RequestMapping(value = "/getCommonFile", method = RequestMet

java文件如何生成Jar文件

C:\Documents and Settings\Administrator>h: H:\>cd text4 H:\text4>jar cvf dsdf.jar H:\text4\新建文件夹 到了文件所在的根目录下,然后执行jar命令既可 当然如果是在eclipse中,则更方便,百度..