pdf

扫码查看

安装+引用iTextSharp插件

基于iTextSharp插件实现pdf生成操作;下载该组件并添加引用,使用NuGet来进行安装的,键项目选择管理NuGet程序包,搜索iTextSharp选择合适版本安装即可,安装完成会自动添加引用。

1.file_Path_Url路径下的图片删除不保留2.生成的pdf为单页,一个图片对应一个pdf,pdf大小是A4纸大小,已居中插入图片

```
using iTextSharp.text;
using iTextSharp.text.pdf;
using System;
using System.IO;
using System.Web;
using System.Web.Mvc;

public void Get_Files()
{
try
{
var files = Request.Files;//得到前台ajax传过来的formData;;是个数组,基本单位是文件,可以不同类型
for (int i = 0; i < files.Count; i++)
{
var file = files[i];//数组;用indexof取
string RealName = Path.GetFileNameWithoutExtension(file.FileName)+"_"+DateTime.Now.ToFileTime();//filetime+获取文件名;不带后缀
string file_path = Server.MapPath("Picture_File_Centre");//设置存放路径
if (!Directory.Exists(file_path))
{
Directory.CreateDirectory(file_path);
}
var file_Path_Url = Path.Combine(file_path, Path.GetFileName(file.FileName));
file.SaveAs(file_Path_Url);//上传后保存文件
//优点;实现多类型多文件上传
//缺点:file_path内覆盖性写入,即上传文件与已有文件同名同类型时会覆写
var IsOk= PicsToPdf(file_Path_Url, RealName);
if (IsOk==1)
{
System.IO.File.Delete(file_Path_Url);file_Path_Url路径下的图片删除不保留
Response.Write(RealName);
}
}
}
catch (Exception)
{
throw;
}

    }
    public int PicsToPdf(string file_Path_Url,string RealName)
    {
        try
        {
            Rectangle pageSize = new Rectangle(595, 842);
            Document document = new Document(pageSize, 0, 0, 0, 0);
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(Server.MapPath(@"\ToPdf\Pdf_File_Centre\" + RealName + ".pdf"), FileMode.Create));
            document.Open();
            Image img = Image.GetInstance(file_Path_Url);
            var h = img.Height;
            var w = img.Width;
            var R = 595 / w;//居中插入图片
            if (R * h > 842)//居中插入图片
            {
                R = 842 / h;//居中插入图片
            }
            var h_ = (float)(842 - (R - 0.03) * h) / 2;//居中插入图片
            var w_ = (float)(595 - (R - 0.03) * w) / 2;//居中插入图片
            img.SetAbsolutePosition(w_, h_);//居中插入图片
            img.ScalePercent(R * 100 - 3);//居中插入图片
            writer.DirectContent.AddImage(img);//居中插入图片
            document.Close();
            writer.Close();
            return 1;
        }
        catch (Exception)
        {
            return 0;
            throw;
        }
    }
01-13 21:27
查看更多