将指定的 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);
}