好久没写博客了,今天给大家分享一个图片转PDF的相关操作,也算是一次
2023-06-21
博客园 2023-06-21 17:22:30
(相关资料图)
好久没写博客了,今天给大家分享一个图片转PDF的相关操作,也算是一次总结吧。
首先需要准备动态库itextsharp.dll,这个dll去网上下载,都可以下载到,C#对PDF的操作都是基于这个类库来实现的。话不多说,直接上代码。
////// 导出PDF /// /// 图片的路劲/// 图片的名称 private bool PrintToPdf(string FilePath,string FileName ) { iTextSharp.text.Rectangle rec = new iTextSharp.text.Rectangle(0, 0, iTextSharp.text.PageSize.A4.Width, iTextSharp.text.PageSize.A4.Height); iTextSharp.text.Image image; iTextSharp.text.Document document = null; FileStream fs = null; PdfWriter writer = null; try { //生成PDF document = new iTextSharp.text.Document(rec); fs = new FileStream(FilePath + FileName + ".pdf", FileMode.Create); PdfWriter.GetInstance(document, fs); document.Open(); image = iTextSharp.text.Image.GetInstance(FilePath + FileName + ".jpg"); //调整图片大小,使之适合A4 if (image.Height > rec.Height) { image.ScaleToFit(rec.Width, rec.Height); } else if (image.Width > rec.Width) { image.ScaleToFit(rec.Width, rec.Height); } //调整图片位置,使之居中 image.Alignment = iTextSharp.text.Image.ALIGN_MIDDLE; document.NewPage(); document.Add(image); } catch (Exception ex) { return false; } finally { if (document.IsOpen()) { document.Close(); } fs.Close(); //最后删除生成的图片 File.Delete(FilePath + FileName + ".jpg"); } try { //添加水印图片,水印图片采取的是先生成图片,再添加到PDF文件中 document = new iTextSharp.text.Document(rec); fs = new FileStream(FilePath + FileName + ".pdf", FileMode.Open); writer = PdfWriter.GetInstance(document, fs); iTextSharp.text.Image imgWater = CreateWaterImage(); PdfReader reader = new PdfReader(fs); document.Open(); PdfContentByte cb = writer.DirectContent; PdfImportedPage newPage; int iPageNum = reader.NumberOfPages; for (int j = 1; j <= iPageNum; j++) { document.NewPage(); newPage = writer.GetImportedPage(reader, j); //pdf旋转 if (newPage.Width > newPage.Height) { cb.AddTemplate(newPage, 0, -1f, 1f, 0, 0, newPage.Width); } else { cb.AddTemplate(newPage, 0, 0); } cb.AddImage(imgWater); } return true; } catch (Exception ex) { return false; } finally { if (document.IsOpen()) { document.Close(); } writer.Close(); fs.Close(); } } ////// 生成水印图片 /// ///private iTextSharp.text.Image CreateWaterImage() { string WaterText = "水印文本"; Bitmap bitmap = new Bitmap(595, 842); using (Graphics g = Graphics.FromImage(bitmap)) { //重置图像 g.ResetTransform(); //设置旋转中心 g.TranslateTransform(bitmap.Width / 2, bitmap.Height / 2); //旋转50度 顺时针 g.RotateTransform(-50); //指定文本呈现的质量 解决文字锯齿问题 g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; System.Drawing.Font font = new System.Drawing.Font("微软雅黑", 14); SolidBrush solidBrush = new SolidBrush(Color.FromArgb(100, 0, 0, 0)); //设置文字、字体、大小、颜色、起始位置 g.DrawString(WaterText, font, solidBrush, new Point(-240, -100)); g.DrawString(WaterText, font, solidBrush, new Point(-340, 100)); }//把水印图片保存在系统指定位置 bitmap.Save("C:\\WaterTemp.jpg"); iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance("C:\\WaterTemp.jpg"); //透明度,灰色填充 image.GrayFill = 20; image.SetAbsolutePosition(0, 0); return image; }
好久没写博客了,今天给大家分享一个图片转PDF的相关操作,也算是一次
财经网汽车6月21日讯,上汽通用汽车有限公司根据《缺陷汽车产品召回管
豪迈科技(SZ002595,收盘价:元)发布公告称,2023年6月20日,豪迈科
三星医疗公告,公司下属子公司奥克斯智能科技于近日收到华电招标有限公
6月21日电,欣旺达在互动平台上称,公司量产的280Ah电芯循环大于12000
平安绵阳官微消息,6月20日,为博人眼球赚取流量,不惜铤而走险编造虚
原标题:粽叶盈香家长要警惕蜜粽枣核“惹祸”又到了端午佳节,粽香情浓
2023年养老金上涨3 8%,这是继2005年以来的第19涨,虽然上涨幅度比去
1、夏季,藿香正气水是家庭的常用药。2、此药有解表利湿、止吐止泻的功
6月21日,深交所对昆仑万维(300418)下发关注函,要求公司说明是否存
留住青春模样!毕业季,青岛高校毕业生纷纷合影留念
伴随着绚烂的灯光,这一周,香港红磡体育馆闪耀着中国红。昨晚,中国女
金融界6月21日消息今日早间,A股市场低开后下探,创业板指跌超1%,沪
同道猎聘(06100)公布,2023年6月20日耗资约226 87万港元回购24
对于如何手动设置dns服务器地址这个问题感兴趣的朋友应该很多,这个也