翻譯|行業(yè)資訊|編輯:胡濤|2024-09-26 10:29:36.590|閱讀 113 次
概述:本節(jié)將向您展示一種通過(guò)C#、VB.NET 中的.NET PDF組件對(duì) PDF 頁(yè)面進(jìn)行分頁(yè)的解決方案,歡迎查閱~
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
PDF 分頁(yè)不僅允許用戶在 PDF 文件中添加頁(yè)碼,還可以將 PDF 文檔分成幾部分,以便添加一些附加信息,例如 PDF 文件封面、簡(jiǎn)介或參考資料。因此,PDF 分頁(yè)為管理大型文件或組織書籍提供了極大的便利。本節(jié)將向您展示一種通過(guò)C#、VB.NET 中的.NET PDF組件對(duì) PDF 頁(yè)面進(jìn)行分頁(yè)的解決方案。
Spire.PDF for .NET 是一款獨(dú)立 PDF 控件,用于 .NET 程序中創(chuàng)建、編輯和操作 PDF 文檔。使用 Spire.PDF 類庫(kù),開發(fā)人員可以新建一個(gè) PDF 文檔或者對(duì)現(xiàn)有的 PDF 文檔進(jìn)行處理,且無(wú)需安裝 Adobe Acrobat。
E-iceblue 功能類庫(kù)Spire 系列文檔處理組件均由中國(guó)本土團(tuán)隊(duì)研發(fā),不依賴第三方軟件,不受其他國(guó)家的技術(shù)或法律法規(guī)限制,同時(shí)適配國(guó)產(chǎn)操作系統(tǒng)如中科方德、中標(biāo)麒麟等,兼容國(guó)產(chǎn)文檔處理軟件 WPS(如 .wps/.et/.dps 等格式
Spire.PDF for .NET 是一個(gè)用于管理 PDF 文件的 PDF 組件,它使您可以使用 C#、VB.NET 快速分頁(yè) PDF 頁(yè)面。在闡述主要代碼之前,我想展示輸出 PDF 文件的屏幕截圖,如下所示:
您可以在此處下載適用于 .NET 的 Spire.PDF并將其安裝在您的系統(tǒng)上。添加 Spire.Pdf dll 后,讓我們一起開始對(duì) PDF 文件進(jìn)行分頁(yè)。
在整個(gè)解決方案中,對(duì) PDF 文件進(jìn)行分頁(yè)主要有三個(gè)步驟。一個(gè)是繪制頁(yè)碼;另一個(gè)是繪制內(nèi)容;最后一個(gè)是繪制 PDF 封面,以便您可以添加其他信息。讓我們一一看看它們。
繪制頁(yè)碼時(shí),頁(yè)面標(biāo)簽也在下面的方法中設(shè)置。通過(guò)調(diào)用此方法:DrawString(string s, PdfFontBase font, PdfBrush brush, float x, float y, PdfStringFormat format)。您不僅可以設(shè)置頁(yè)面標(biāo)簽字體、顏色、位置和格式。請(qǐng)參閱下面的詳細(xì)代碼:
【C# 】
foreach (PdfPageBase page in section.Pages) { page.Canvas.SetTransparency(0.5f); PdfBrush brush = PdfBrushes.Black; PdfPen pen = new PdfPen(brush, 0.75f); PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 9f, FontStyle.Italic), true); PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Right); format.MeasureTrailingSpaces = true; float space = font.Height * 0.75f; float x = margin.Left; float width = page.Canvas.ClientSize.Width - margin.Left - margin.Right; float y = page.Canvas.ClientSize.Height - margin.Bottom + space; page.Canvas.DrawLine(pen, x, y, x + width, y); y = y + 1; String numberLabel = String.Format("{0} of {1}", startNumber++, pageCount); page.Canvas.DrawString(numberLabel, font, brush, x + width, y, format); page.Canvas.SetTransparency(1); }
【VB.NET 】
For Each page As PdfPageBase In section.Pages page.Canvas.SetTransparency(0.5!) Dim brush As PdfBrush = PdfBrushes.Black Dim pen As PdfPen = New PdfPen(brush, 0.75!) Dim font As PdfTrueTypeFont = New PdfTrueTypeFont(New Font("Arial", 9!, FontStyle.Italic), true) Dim format As PdfStringFormat = New PdfStringFormat(PdfTextAlignment.Right) format.MeasureTrailingSpaces = true Dim space As Single = (font.Height * 0.75!) Dim x As Single = margin.Left Dim width As Single = (page.Canvas.ClientSize.Width _ - (margin.Left - margin.Right)) Dim y As Single = ((page.Canvas.ClientSize.Height - margin.Bottom) _ + space) page.Canvas.DrawLine(pen, x, y, (x + width), y) y = (y + 1) Dim numberLabel As String = String.Format("{0} of {1}", startNumber++, pageCount) page.Canvas.DrawString(numberLabel, font, brush, (x + width), y, format) page.Canvas.SetTransparency(1) Next
封面始終是添加有關(guān)此 PDF 文件的附加信息的最佳位置。在下面的方法中,我忽略了添加參考內(nèi)容和文檔標(biāo)題,您可以在 PDF 封面中添加封面圖像類 PdfImage。請(qǐng)參閱以下代碼:
【C# 】
//cover PdfBrush brush3 = PdfBrushes.Black; PdfBrush brush4 = new PdfSolidBrush(new PdfRGBColor(0xf9, 0xf9, 0xf9)); PdfImage image = PdfImage.FromFile(@"..\potala palace1.jpg"); String text = paginate_PDF.Properties.Resources.ImageDescription; float r = image.PhysicalDimension.Height / image.Height; PdfPen pen = new PdfPen(brush1, r); SizeF size = font1.MeasureString(text, image.PhysicalDimension.Width - 2); PdfTemplate template = new PdfTemplate(image.PhysicalDimension.Width + 4 * r + 4, image.PhysicalDimension.Height + 4 * r + 7 + size.Height); template.Graphics.DrawRectangle(pen, brush4, 0, 0, template.Width, template.Height);
【VB.NET 】
'cover Dim brush3 As PdfBrush = PdfBrushes.Black Dim brush4 As PdfBrush = New PdfSolidBrush(New PdfRGBColor(249, 249, 249)) Dim image As PdfImage = PdfImage.FromFile("..\potala palace1.jpg") Dim text As String = paginate_PDF.Properties.Resources.ImageDescription Dim r As Single = (image.PhysicalDimension.Height / image.Height) Dim pen As PdfPen = New PdfPen(brush1, r) Dim size As SizeF = font1.MeasureString(text, (image.PhysicalDimension.Width - 2)) Dim template As PdfTemplate = New PdfTemplate((image.PhysicalDimension.Width _ + ((4 * r) _ + 4)), (image.PhysicalDimension.Height _ + ((4 * r) + (7 + size.Height)))) template.Graphics.DrawRectangle(pen, brush4, 0, 0, template.Width, template.Height)
歡迎下載|體驗(yàn)更多E-iceblue產(chǎn)品
獲取更多信息請(qǐng)咨詢 ;技術(shù)交流Q群(767755948)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn