没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:胡涛|2024-09-26 10:29:36.590|阅读 45 次
概述:本节将向您展示一种通过C#、VB.NET 中的.NET PDF组件对 PDF 页面进行分页的解决方案,欢迎查阅~
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
PDF 分页不仅允许用户在 PDF 文件中添加页码,还可以将 PDF 文档分成几部分,以便添加一些附加信息,例如 PDF 文件封面、简介或参考资料。因此,PDF 分页为管理大型文件或组织书籍提供了极大的便利。本节将向您展示一种通过C#、VB.NET 中的.NET PDF组件对 PDF 页面进行分页的解决方案。
Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理,且无需安装 Adobe Acrobat。
E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式
Spire.PDF for .NET 是一个用于管理 PDF 文件的 PDF 组件,它使您可以使用 C#、VB.NET 快速分页 PDF 页面。在阐述主要代码之前,我想展示输出 PDF 文件的屏幕截图,如下所示:
您可以在此处下载适用于 .NET 的 Spire.PDF并将其安装在您的系统上。添加 Spire.Pdf dll 后,让我们一起开始对 PDF 文件进行分页。
在整个解决方案中,对 PDF 文件进行分页主要有三个步骤。一个是绘制页码;另一个是绘制内容;最后一个是绘制 PDF 封面,以便您可以添加其他信息。让我们一一看看它们。
绘制页码时,页面标签也在下面的方法中设置。通过调用此方法:DrawString(string s, PdfFontBase font, PdfBrush brush, float x, float y, PdfStringFormat format)。您不仅可以设置页面标签字体、颜色、位置和格式。请参阅下面的详细代码:
【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
封面始终是添加有关此 PDF 文件的附加信息的最佳位置。在下面的方法中,我忽略了添加参考内容和文档标题,您可以在 PDF 封面中添加封面图像类 PdfImage。请参阅以下代码:
【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)
欢迎下载|体验更多E-iceblue产品
获取更多信息请咨询慧都在线客服 ;技术交流Q群(767755948)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
Parasoft dotTEST凭借其即插即用的内置安全标准和直观的规则映射能力,为C#/VB.NET 开发者提供了强大的支持。它有效消除了理解复杂标准与配置规则的障碍,让开发者能够专注于编写高质量代码,而非耗费精力在标准解读与工具映射上。这不仅显著提升了开发效率,缩短了交付周期,更从源头系统性地降低了安全风险,确保了软件符合严苛的行业合规要求。
Parasoft Virtualize以智能复用和轻量存储为核心,不仅解决了传统测试数据管理的冗余与性能瓶颈,更通过技术创新释放了团队的生产力。它让开发者摆脱重复劳动的束缚,将精力聚焦于更复杂的业务逻辑与质量验证,从而在快节奏的开发周期中保持敏捷与精准。无论是应对高并发的性能挑战,还是满足数据合规的严苛要求,Virtualize都以优秀的解决方案为技术团队提供了坚实的支撑。
imScale近期与 西门子PLM软件公司 和Tech Soft 3D达成技术合作,将行业领先的几何建模内核Parasolid及多格式CAD数据解析引擎HOOPS Exchange深度集成至平台中,全面增强CAD数据处理与互操作能力。
今天为大家介绍Kotlin 开发者如何在 Android Studio 中使用 JetBrains AI Assistant ,欢迎下载工具体验!
Spire.PDF for .NET是独立的PDF控件,用于.NET程序中创建、编辑和操作PDF文档
Spire.PDF for WPFSpire.PDF for WPF 是一款让你的app能够读取、写入和操作PDF文档的完全独立的组件,不需要任何第三方组件库。
wPDF为Delphi 和C++Builder应用程序快速而方便的创建PDF文件的支持。
PDF4NETPDF4NET是一种.NET库,它能够对运行中的任意.NET应用程序进行创建、编辑和填充PDF文档。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号