对二进制数据转pdf并打印(Spire)

 

将指定的 String(它将二进制数据编码为 base 64 数字)转换成等效的 8 位无符号整数数组,

然后使用FileStream 类存为PDF文件,

可以使用第三方库Spire.License.dll    Spire.Pdf.dll进行对pdf打印

 

        private void simpleButton3_Click(object sender, EventArgs e)
        {
            string val = "select report from hisbf..sdyb_settle_zy_response";
            DataTable nsb = SqlHelper.ExecuteDataTable(val);
            string tempPath = Path.Combine(Application.StartupPath, "Temp");
            foreach (DataRow item in nsb.Rows)
            {
                byte[] blob = Convert.FromBase64String(item[0].ToString());

                if (!Directory.Exists(tempPath))
                    Directory.CreateDirectory(tempPath);
                string fN = Guid.NewGuid().ToString() + ".pdf";
                string fileName = Path.Combine(tempPath, fN);
                FileStream stream = new FileStream(fileName, FileMode.CreateNew);
                stream.Write(blob, 0, blob.Length);
                stream.Close();
                // 加载PDF文档
                PdfDocument doc = new PdfDocument();
                doc.LoadFromFile(fileName);
                //SizeF size = doc.Pages[0].Size;
                //doc.PrintSettings.PaperSize= new PaperSize("Custom", (int)size.Width / 72 * 120, (int)size.Height / 72 * 100);
                #region 调整方向
                //for (int i = 0; i < doc.Pages.Count; i++)
                //{
                //    int rotation = (int)doc.Pages[i].Rotation;
                //    rotation += (int)PdfPageRotateAngle.RotateAngle90;
                //    doc.Pages[i].Rotation = (PdfPageRotateAngle)rotation;

                //    PdfPageBase page = doc.Pages[i];
                //    PdfDestination dest = new PdfDestination(page, new PointF(0f, 0f));
                //    dest.Zoom = 10f;
                //    doc.AfterOpenAction = new PdfGoToAction(dest);
                //    doc.SaveToFile(fileName,FileFormat.PDF);
                //    System.Diagnostics.Process.Start(fileName);//打开预览
                //}
                #endregion


                #region MyRegion
                创建一个新的PdfDocument实例
                //PdfDocument newPdf = new PdfDocument();
                遍历所有PDF?页面?????
                //foreach (PdfPageBase page in doc.Pages)
                //{
                //    //设置新页面大小为A2,?设置新的页边距
                //    PdfPageBase newPage = newPdf.Pages.Add(PdfPageSize.A4, new PdfMargins(10, 10));
                //    //将原PDF内容写入新页面??????????????
                //    page.CreateTemplate().Draw(newPage, new PointF(-10, -10));
                //}
                保存PDF
                //newPdf.SaveToFile(fileName, FileFormat.PDF);
                #endregion
                //doc.LoadFromFile(fileName);

                //静默打印PDF文档
                doc.PrintSettings.PrintController = new StandardPrintController();
                doc.Print();
                doc.Close();
                return;
            }
            //DirectoryInfo di = new DirectoryInfo(tempPath);
            //di.Delete(true);
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值