using iTextSharp.text.pdf;
using iTextSharp.text;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Http;
using System.Net;
namespace 心电图绘制
{
internal class UniversalFun
{
///
/// base64转换成图片
///
///
///
public static System.Drawing.Image ConvertFromBase64String(string base64String)
{
string [] baseary= base64String.Split(',');
if(baseary.Length<2)
{
return null;
}
// 将Base64字符串转换为字节数组
byte[] imageBytes = Convert.FromBase64String(baseary[1]);
// 使用字节数组创建MemoryStream
using (MemoryStream ms = new MemoryStream(imageBytes))
{
// 从MemoryStream中创建Image对象
System.Drawing.Image image = System.Drawing.Image.FromStream(ms);
return image;
}
}
///
/// 图片转换成base64
///
///
///
///
public static string ConvertToBase64String(Bitmap bitmap, ImageFormat format)
{
// 将Bitmap保存到MemoryStream中
using (MemoryStream ms = new MemoryStream())
{
bitmap.Save(ms, format); // 可以根据需要选择不同的图片格式,例如ImageFormat.Png或ImageFormat.Jpeg
// 将流的位置重置到开始位置
ms.Position = 0;
// 将MemoryStream中的字节数组编码为Base64字符串
byte[] imageBytes = ms.ToArray();
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
///
/// 图片转换成PDF
///
///
///
public static void ConvertBitmapToPdf(Bitmap bitmap, string pdfPath)
{
string directoryPath = Path.GetDirectoryName(pdfPath);
if (directoryPath != null && !Directory.Exists(directoryPath))
{
Directory.CreateDirectory(directoryPath);
}
// 创建一个文档对象
Document document = new Document();
// 创建一个PdfWriter实例
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(pdfPath, FileMode.Create));
// 打开文档以便添加内容
document.Open();
// 设置页面尺寸与图像尺寸一致
iTextSharp.text.Rectangle pageSize = new iTextSharp.text.Rectangle(bitmap.Width, bitmap.Height+50);
document.SetPageSize(pageSize);
// 将Bitmap转换为iTextSharp的Image对象
iTextSharp.text.Image image = ConvertBitmapToImageSharp(bitmap);
// 将图像添加到文档
document.NewPage();
document.Add(image);
// 关闭文档
document.Close();
}
private static iTextSharp.text.Image ConvertBitmapToImageSharp(Bitmap bitmap)
{
using (MemoryStream ms = new MemoryStream())
{
// 将Bitmap保存到MemoryStream中,使用PNG格式
bitmap.Save(ms, ImageFormat.Png);
// 从MemoryStream中创建iTextSharp的Image对象
return iTextSharp.text.Image.GetInstance(new MemoryStream(ms.ToArray()));
}
}
///
/// 获取指定 URL 的文本文件内容
///
/// 文本文件的 URL
/// 返回文件内容的字符串,如果失败则返回 null
public static string GetTextFileContent(string url)
{
// 忽略 SSL 证书错误
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
using (WebClient client = new WebClient())
{
try
{
// 下载文件内容
return client.DownloadString(url);
}
catch (WebException e)
{
Console.WriteLine("请求错误: " + e.Message);
return null;
}
}
}
}
}