利用C#如何給PDF文檔添加文本與圖片頁眉
前言
下面這篇文章向大家分享如何使用了免費組件Free Spire.PDF給PDF文檔添加文本和圖片頁眉。這個組件提供了一些方法,可以幫助我們快速方便地實現(xiàn)此目的。
添加頁眉步驟:
首先,創(chuàng)建一個Visual C#控制臺項目,添加組件引用并使用以下命名空間。
using System; using System.Drawing; using Spire.Pdf; using Spire.Pdf.Graphics;
在下列代碼中,我們先定義一個SetDocumentTemplate()
方法來創(chuàng)建一個PDF文檔模板,這個模板只包含文本和圖片頁眉。然后,調(diào)用DrawString(string s, PdfFontBase font, PdfBrush brush, float x, float y, PdfStringFormat format)
方法和DrawImage(PdfImage image, float x, float y, float width, float height)
方法,插入自定義的文本和圖片頁眉。
static void SetDocumentTemplate(PdfDocument doc, SizeF pageSize, PdfMargins margin) { //創(chuàng)建PDF模板 PdfPageTemplateElement topSpace = new PdfPageTemplateElement(pageSize.Width, margin.Top); topSpace.Foreground = true; doc.Template.Top = topSpace; //添加文本頁眉 PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("宋體", 15f), true); PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right); String Text = "PDF文本頁眉"; float y = 0; float x = PdfPageSize.A4.Width; topSpace.Graphics.DrawString(Text, font1, PdfBrushes.PaleVioletRed, x, y, format); //添加圖片頁眉 PdfImage headerImage = PdfImage.FromFile(@"logo.png"); float width = headerImage.Width; float height = headerImage.Height; PointF pageLeftTop = new PointF(0 , 0); topSpace.Graphics.DrawImage(headerImage,0,0,width/2,height/2); }
接下來再創(chuàng)建一個PDF文檔,主函數(shù)內(nèi)調(diào)用SetDocumentTemplate()
方法將帶有文本和圖片頁眉的模板應用到新建的PDF文檔中。
具體步驟:
第一步:創(chuàng)建一個PDF文檔對象。
PdfDocument doc = new PdfDocument();
第二步:設(shè)置頁邊距。
PdfUnitConvertor unitCvtr = new PdfUnitConvertor(); PdfMargins margin = new PdfMargins(); margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Bottom = margin.Top; margin.Left = unitCvtr.ConvertUnits(4.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Right = margin.Left;
第三步:PDF文檔中應用模板。
SetDocumentTemplate(doc, PdfPageSize.A4, margin);
第四步:PDF文檔添加頁面。
PdfPageBase page = doc.Pages.Add(); doc.Pages.Add();
第五步:保存并打開文檔。
doc.SaveToFile("頁眉.pdf"); System.Diagnostics.Process.Start("頁眉.pdf");
添加頁眉后的效果圖:
全部代碼:
using System; using Spire.Pdf; using System.Drawing; using Spire.Pdf.Graphics; namespace PDF添加頁眉 { class Program { static void Main(string[] args) { PdfDocument doc = new PdfDocument(); PdfUnitConvertor unitCvtr = new PdfUnitConvertor(); PdfMargins margin = new PdfMargins(); margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Bottom = margin.Top; margin.Left = unitCvtr.ConvertUnits(4.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point); margin.Right = margin.Left; SetDocumentTemplate(doc, PdfPageSize.A4, margin); PdfPageBase page = doc.Pages.Add(); doc.Pages.Add(); doc.SaveToFile("頁眉.pdf"); System.Diagnostics.Process.Start("頁眉.pdf"); } static void SetDocumentTemplate(PdfDocument doc, SizeF pageSize, PdfMargins margin) { PdfPageTemplateElement topSpace = new PdfPageTemplateElement(pageSize.Width, margin.Top); topSpace.Foreground = true; doc.Template.Top = topSpace; PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("宋體", 15f), true); PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right); String Text = "PDF文本頁眉"; float y = 0; float x = PdfPageSize.A4.Width; topSpace.Graphics.DrawString(Text, font1, PdfBrushes.PaleVioletRed, x, y, format); PdfImage headerImage = PdfImage.FromFile(@"C:\Users\Administrator\Pictures\under_construction.jpg"); float width = headerImage.Width; float height = headerImage.Height; PointF pageLeftTop = new PointF(0, 0); topSpace.Graphics.DrawImage(headerImage, 0, 0, width / 2, height / 2); } } }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家學習或者使用C#能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
C#?webApi創(chuàng)建與發(fā)布、部署、api調(diào)用詳細教程
這篇文章主要給大家介紹了關(guān)于C#?webApi創(chuàng)建與發(fā)布、部署、api調(diào)用的相關(guān)資料,WebApi是微軟在VS2012?MVC4版本中綁定發(fā)行的,WebApi是完全基于Restful標準的框架,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2023-12-12C#簡單實現(xiàn)表達式目錄樹(Expression)
表達式目錄樹以數(shù)據(jù)形式表示語言級別代碼。數(shù)據(jù)存儲在樹形結(jié)構(gòu)中。表達式目錄樹中的每個節(jié)點都表示一個表達式。這篇文章給大家介紹C#簡單實現(xiàn)表達式目錄樹(Expression),需要的朋友參考下吧2017-11-11C#使用XSLT實現(xiàn)xsl、xml與html相互轉(zhuǎn)換
這篇文章介紹了C#使用XSLT實現(xiàn)xsl、xml與html相互轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06基于C#解決庫存扣減及訂單創(chuàng)建時防止并發(fā)死鎖的問題
這篇文章主要介紹了基于C#解決庫存扣減及訂單創(chuàng)建時防止并發(fā)死鎖的問題,很多開發(fā)人員對于這個問題的排查起來是比較困難的,而生產(chǎn)生的原因多種多樣,很多人認是因為表中的數(shù)據(jù)太多了同時操作的人多人才會產(chǎn)生這種錯誤,下面我們來還原一下死鎖的過程2022-05-05Unity3D Shader實現(xiàn)掃描顯示效果(2)
這篇文章主要為大家詳細介紹了Unity3D Shader實現(xiàn)掃描顯示效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-03-03