好久沒寫博客了,今天給大家分享一個圖片轉(zhuǎn)PDF的相關(guān)操作,也算是一次總結(jié)吧。
首先需要準備動態(tài)庫itextsharp.dll,這個dll去網(wǎng)上下載,都可以下載到,C#對PDF的操作都是基于這個類庫來實現(xiàn)的。話不多說,直接上代碼。文章來源:http://www.zghlxwxcb.cn/news/detail-493812.html
/// <summary> /// 導出PDF /// </summary> /// <param name="FilePath">圖片的路勁</param> /// <param name="FileName">圖片的名稱</param> 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"); //調(diào)整圖片大小,使之適合A4 if (image.Height > rec.Height) { image.ScaleToFit(rec.Width, rec.Height); } else if (image.Width > rec.Width) { image.ScaleToFit(rec.Width, rec.Height); } //調(diào)整圖片位置,使之居中 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旋轉(zhuǎn) 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(); } } /// <summary> /// 生成水印圖片 /// </summary> /// <returns></returns> private iTextSharp.text.Image CreateWaterImage() { string WaterText = "水印文本"; Bitmap bitmap = new Bitmap(595, 842); using (Graphics g = Graphics.FromImage(bitmap)) { //重置圖像 g.ResetTransform(); //設(shè)置旋轉(zhuǎn)中心 g.TranslateTransform(bitmap.Width / 2, bitmap.Height / 2); //旋轉(zhuǎn)50度 順時針 g.RotateTransform(-50); //指定文本呈現(xiàn)的質(zhì)量 解決文字鋸齒問題 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)); //設(shè)置文字、字體、大小、顏色、起始位置 g.DrawString(WaterText, font, solidBrush, new Point(-240, -100)); g.DrawString(WaterText, font, solidBrush, new Point(-340, 100)); } //把水印圖片保存在系統(tǒng)指定位置 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; }
文章來源地址http://www.zghlxwxcb.cn/news/detail-493812.html
到了這里,關(guān)于C# 圖片轉(zhuǎn)PDF,PDF增加水印文字的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!